From b16b9e4656e7199c2aec74a4c8ebc7a875d3ba73 Mon Sep 17 00:00:00 2001 From: Mike Gabriel Date: Mon, 2 Feb 2015 15:02:49 +0100 Subject: massive reduction of unneeded files --- nx-X11/extras/Mesa/Makefile | 451 - nx-X11/extras/Mesa/Makefile.DJ | 93 - nx-X11/extras/Mesa/Makefile.mgw | 88 - nx-X11/extras/Mesa/README.XF86 | 47 - nx-X11/extras/Mesa/XOrg-Xlist | 15 - nx-X11/extras/Mesa/bin/installmesa | 69 - nx-X11/extras/Mesa/bin/mklib | 698 - nx-X11/extras/Mesa/configs/aix | 28 - nx-X11/extras/Mesa/configs/aix-64 | 28 - nx-X11/extras/Mesa/configs/aix-gcc | 19 - nx-X11/extras/Mesa/configs/aix-static | 23 - nx-X11/extras/Mesa/configs/beos | 99 - nx-X11/extras/Mesa/configs/darwin | 29 - nx-X11/extras/Mesa/configs/darwin-static | 24 - nx-X11/extras/Mesa/configs/default | 74 - nx-X11/extras/Mesa/configs/freebsd | 16 - nx-X11/extras/Mesa/configs/freebsd-dri | 45 - nx-X11/extras/Mesa/configs/freebsd-dri-amd64 | 9 - nx-X11/extras/Mesa/configs/freebsd-dri-x86 | 12 - nx-X11/extras/Mesa/configs/hpux10 | 14 - nx-X11/extras/Mesa/configs/hpux10-gcc | 16 - nx-X11/extras/Mesa/configs/hpux10-static | 30 - nx-X11/extras/Mesa/configs/hpux11-32 | 26 - nx-X11/extras/Mesa/configs/hpux11-32-static | 26 - .../extras/Mesa/configs/hpux11-32-static-nothreads | 26 - nx-X11/extras/Mesa/configs/hpux11-64 | 27 - nx-X11/extras/Mesa/configs/hpux11-64-static | 27 - nx-X11/extras/Mesa/configs/hpux9 | 16 - nx-X11/extras/Mesa/configs/hpux9-gcc | 14 - nx-X11/extras/Mesa/configs/irix6-64 | 18 - nx-X11/extras/Mesa/configs/irix6-64-static | 25 - nx-X11/extras/Mesa/configs/irix6-n32 | 18 - nx-X11/extras/Mesa/configs/irix6-n32-static | 25 - nx-X11/extras/Mesa/configs/irix6-o32 | 19 - nx-X11/extras/Mesa/configs/irix6-o32-static | 25 - nx-X11/extras/Mesa/configs/linux | 33 - nx-X11/extras/Mesa/configs/linux-alpha | 18 - nx-X11/extras/Mesa/configs/linux-alpha-static | 27 - nx-X11/extras/Mesa/configs/linux-debug | 8 - nx-X11/extras/Mesa/configs/linux-directfb | 29 - nx-X11/extras/Mesa/configs/linux-dri | 68 - nx-X11/extras/Mesa/configs/linux-dri-ppc | 17 - nx-X11/extras/Mesa/configs/linux-dri-x86 | 16 - nx-X11/extras/Mesa/configs/linux-dri-x86-64 | 23 - nx-X11/extras/Mesa/configs/linux-fbdev | 10 - nx-X11/extras/Mesa/configs/linux-glide | 20 - nx-X11/extras/Mesa/configs/linux-icc | 21 - nx-X11/extras/Mesa/configs/linux-icc-static | 29 - nx-X11/extras/Mesa/configs/linux-indirect | 49 - nx-X11/extras/Mesa/configs/linux-osmesa16 | 27 - nx-X11/extras/Mesa/configs/linux-osmesa16-static | 28 - nx-X11/extras/Mesa/configs/linux-osmesa32 | 27 - nx-X11/extras/Mesa/configs/linux-ppc | 9 - nx-X11/extras/Mesa/configs/linux-ppc-static | 14 - nx-X11/extras/Mesa/configs/linux-profile | 29 - nx-X11/extras/Mesa/configs/linux-solo | 43 - nx-X11/extras/Mesa/configs/linux-solo-ia64 | 7 - nx-X11/extras/Mesa/configs/linux-solo-x86 | 12 - nx-X11/extras/Mesa/configs/linux-sparc | 30 - nx-X11/extras/Mesa/configs/linux-sparc5 | 17 - nx-X11/extras/Mesa/configs/linux-static | 21 - nx-X11/extras/Mesa/configs/linux-tcc | 22 - nx-X11/extras/Mesa/configs/linux-ultrasparc | 17 - nx-X11/extras/Mesa/configs/linux-x86 | 8 - nx-X11/extras/Mesa/configs/linux-x86-32 | 7 - nx-X11/extras/Mesa/configs/linux-x86-64 | 13 - nx-X11/extras/Mesa/configs/linux-x86-64-debug | 7 - nx-X11/extras/Mesa/configs/linux-x86-64-static | 21 - nx-X11/extras/Mesa/configs/linux-x86-debug | 9 - nx-X11/extras/Mesa/configs/linux-x86-glide | 24 - nx-X11/extras/Mesa/configs/linux-x86-static | 21 - nx-X11/extras/Mesa/configs/linux-x86-xcb | 24 - nx-X11/extras/Mesa/configs/netbsd | 14 - nx-X11/extras/Mesa/configs/openbsd | 18 - nx-X11/extras/Mesa/configs/osf1 | 16 - nx-X11/extras/Mesa/configs/solaris-x86 | 18 - nx-X11/extras/Mesa/configs/solaris-x86-gcc | 24 - nx-X11/extras/Mesa/configs/sunos4 | 12 - nx-X11/extras/Mesa/configs/sunos4-gcc | 15 - nx-X11/extras/Mesa/configs/sunos4-static | 25 - nx-X11/extras/Mesa/configs/sunos5 | 18 - nx-X11/extras/Mesa/configs/sunos5-gcc | 35 - nx-X11/extras/Mesa/configs/sunos5-smp | 19 - nx-X11/extras/Mesa/configs/ultrix-gcc | 21 - nx-X11/extras/Mesa/descrip.mms | 22 - nx-X11/extras/Mesa/docs/COPYING | 490 - nx-X11/extras/Mesa/docs/MESA_agp_offset.spec | 95 - nx-X11/extras/Mesa/docs/MESA_copy_sub_buffer.spec | 88 - nx-X11/extras/Mesa/docs/MESA_pack_invert.spec | 138 - .../Mesa/docs/MESA_packed_depth_stencil.spec | 231 - nx-X11/extras/Mesa/docs/MESA_pixmap_colormap.spec | 90 - nx-X11/extras/Mesa/docs/MESA_program_debug.spec | 357 - nx-X11/extras/Mesa/docs/MESA_release_buffers.spec | 85 - nx-X11/extras/Mesa/docs/MESA_resize_buffers.spec | 82 - nx-X11/extras/Mesa/docs/MESA_set_3dfx_mode.spec | 85 - nx-X11/extras/Mesa/docs/MESA_sprite_point.spec | 191 - nx-X11/extras/Mesa/docs/MESA_swap_control.spec | 132 - nx-X11/extras/Mesa/docs/MESA_swap_frame_usage.spec | 201 - nx-X11/extras/Mesa/docs/MESA_trace.spec | 360 - nx-X11/extras/Mesa/docs/MESA_window_pos.spec | 127 - nx-X11/extras/Mesa/docs/MESA_ycbcr_texture.spec | 204 - nx-X11/extras/Mesa/docs/MiniGLX.html | 547 - nx-X11/extras/Mesa/docs/README.3DFX | 830 - nx-X11/extras/Mesa/docs/README.AMIWIN | 181 - nx-X11/extras/Mesa/docs/README.BEOS | 137 - nx-X11/extras/Mesa/docs/README.CYGWIN | 256 - nx-X11/extras/Mesa/docs/README.D3D | 124 - nx-X11/extras/Mesa/docs/README.DJ | 275 - nx-X11/extras/Mesa/docs/README.GGI | 26 - nx-X11/extras/Mesa/docs/README.LYNXOS | 64 - nx-X11/extras/Mesa/docs/README.MINGW32 | 90 - nx-X11/extras/Mesa/docs/README.MITS | 102 - nx-X11/extras/Mesa/docs/README.NeXT | 6 - nx-X11/extras/Mesa/docs/README.OS2 | 96 - nx-X11/extras/Mesa/docs/README.OpenStep | 35 - nx-X11/extras/Mesa/docs/README.QUAKE | 208 - nx-X11/extras/Mesa/docs/README.THREADS | 52 - nx-X11/extras/Mesa/docs/README.VMS | 32 - nx-X11/extras/Mesa/docs/README.WIN32 | 139 - nx-X11/extras/Mesa/docs/README.WINDML | 146 - nx-X11/extras/Mesa/docs/README.X11 | 314 - nx-X11/extras/Mesa/docs/README.directfb | 28 - nx-X11/extras/Mesa/docs/RELNOTES-3.1 | 146 - nx-X11/extras/Mesa/docs/RELNOTES-3.2 | 12 - nx-X11/extras/Mesa/docs/RELNOTES-3.2.1 | 32 - nx-X11/extras/Mesa/docs/RELNOTES-3.3 | 271 - nx-X11/extras/Mesa/docs/RELNOTES-3.4 | 22 - nx-X11/extras/Mesa/docs/RELNOTES-3.4.1 | 22 - nx-X11/extras/Mesa/docs/RELNOTES-3.4.2 | 22 - nx-X11/extras/Mesa/docs/RELNOTES-3.5 | 228 - nx-X11/extras/Mesa/docs/RELNOTES-4.0 | 163 - nx-X11/extras/Mesa/docs/RELNOTES-4.0.1 | 22 - nx-X11/extras/Mesa/docs/RELNOTES-4.0.2 | 50 - nx-X11/extras/Mesa/docs/RELNOTES-4.0.3 | 52 - nx-X11/extras/Mesa/docs/RELNOTES-4.1 | 308 - nx-X11/extras/Mesa/docs/RELNOTES-5.0 | 85 - nx-X11/extras/Mesa/docs/RELNOTES-5.0.1 | 46 - nx-X11/extras/Mesa/docs/RELNOTES-5.0.2 | 46 - nx-X11/extras/Mesa/docs/RELNOTES-5.1 | 279 - nx-X11/extras/Mesa/docs/RELNOTES-6.0 | 87 - nx-X11/extras/Mesa/docs/RELNOTES-6.0.1 | 50 - nx-X11/extras/Mesa/docs/RELNOTES-6.1 | 112 - nx-X11/extras/Mesa/docs/RELNOTES-6.2 | 52 - nx-X11/extras/Mesa/docs/RELNOTES-6.2.1 | 50 - nx-X11/extras/Mesa/docs/RELNOTES-6.3 | 115 - nx-X11/extras/Mesa/docs/RELNOTES-6.3.1 | 49 - nx-X11/extras/Mesa/docs/RELNOTES-6.3.2 | 37 - nx-X11/extras/Mesa/docs/RELNOTES-6.4 | 50 - nx-X11/extras/Mesa/docs/RELNOTES-6.4.1 | 47 - nx-X11/extras/Mesa/docs/VERSIONS | 1423 - nx-X11/extras/Mesa/docs/banner.html | 27 - nx-X11/extras/Mesa/docs/bugs.html | 49 - nx-X11/extras/Mesa/docs/conform.html | 695 - nx-X11/extras/Mesa/docs/contents.html | 101 - nx-X11/extras/Mesa/docs/custom.html | 27 - nx-X11/extras/Mesa/docs/cvs_access.html | 106 - nx-X11/extras/Mesa/docs/cvs_branches.html | 80 - nx-X11/extras/Mesa/docs/debugging.html | 38 - nx-X11/extras/Mesa/docs/demos.html | 18 - nx-X11/extras/Mesa/docs/devinfo.html | 206 - nx-X11/extras/Mesa/docs/download.html | 130 - nx-X11/extras/Mesa/docs/enums.txt | 42 - nx-X11/extras/Mesa/docs/envvars.html | 44 - nx-X11/extras/Mesa/docs/extensions.html | 34 - nx-X11/extras/Mesa/docs/faq.html | 394 - nx-X11/extras/Mesa/docs/fbdev-dri.html | 315 - nx-X11/extras/Mesa/docs/games.html | 64 - nx-X11/extras/Mesa/docs/gears.png | Bin 1608 -> 0 bytes nx-X11/extras/Mesa/docs/glfbdev-driver.html | 90 - nx-X11/extras/Mesa/docs/glu.html | 45 - nx-X11/extras/Mesa/docs/helpwanted.html | 74 - nx-X11/extras/Mesa/docs/index.html | 29 - nx-X11/extras/Mesa/docs/install.html | 309 - nx-X11/extras/Mesa/docs/intro.html | 306 - nx-X11/extras/Mesa/docs/libraries.html | 57 - nx-X11/extras/Mesa/docs/license.html | 86 - nx-X11/extras/Mesa/docs/lists.html | 55 - nx-X11/extras/Mesa/docs/mangling.html | 28 - nx-X11/extras/Mesa/docs/mesa.css | 33 - nx-X11/extras/Mesa/docs/modelers.html | 70 - nx-X11/extras/Mesa/docs/news.html | 1136 - nx-X11/extras/Mesa/docs/osmesa.html | 77 - nx-X11/extras/Mesa/docs/pbuffers.html | 54 - nx-X11/extras/Mesa/docs/perf.html | 68 - nx-X11/extras/Mesa/docs/precompiled.html | 26 - nx-X11/extras/Mesa/docs/relnotes.html | 45 - nx-X11/extras/Mesa/docs/science.html | 72 - nx-X11/extras/Mesa/docs/sourcedocs.html | 26 - nx-X11/extras/Mesa/docs/subset-A.html | 3579 --- nx-X11/extras/Mesa/docs/subset.html | 33 - nx-X11/extras/Mesa/docs/systems.html | 56 - nx-X11/extras/Mesa/docs/thanks.html | 134 - nx-X11/extras/Mesa/docs/utilities.html | 26 - nx-X11/extras/Mesa/docs/utility.html | 44 - nx-X11/extras/Mesa/docs/webmaster.html | 24 - nx-X11/extras/Mesa/include/GL/Makefile.am | 43 - nx-X11/extras/Mesa/include/GL/amesa.h | 65 - nx-X11/extras/Mesa/include/GL/directfbgl.h | 89 - nx-X11/extras/Mesa/include/GL/dmesa.h | 160 - nx-X11/extras/Mesa/include/GL/foomesa.h | 76 - nx-X11/extras/Mesa/include/GL/fxmesa.h | 103 - nx-X11/extras/Mesa/include/GL/ggimesa.h | 85 - nx-X11/extras/Mesa/include/GL/gl_mangle.h | 1472 - nx-X11/extras/Mesa/include/GL/glfbdev.h | 148 - nx-X11/extras/Mesa/include/GL/glu.h | 340 - nx-X11/extras/Mesa/include/GL/glu_mangle.h | 86 - nx-X11/extras/Mesa/include/GL/glut.h | 748 - nx-X11/extras/Mesa/include/GL/glut_h.dja | 340 - nx-X11/extras/Mesa/include/GL/glutf90.h | 81 - nx-X11/extras/Mesa/include/GL/glx.h | 551 - nx-X11/extras/Mesa/include/GL/glx_mangle.h | 55 - .../Mesa/include/GL/internal/dri_interface.h | 477 - nx-X11/extras/Mesa/include/GL/internal/sarea.h | 94 - nx-X11/extras/Mesa/include/GL/mesa_wgl.h | 123 - nx-X11/extras/Mesa/include/GL/mglmesa.h | 79 - nx-X11/extras/Mesa/include/GL/miniglx.h | 482 - nx-X11/extras/Mesa/include/GL/svgamesa.h | 97 - nx-X11/extras/Mesa/include/GL/uglglutshapes.h | 45 - nx-X11/extras/Mesa/include/GL/uglmesa.h | 155 - nx-X11/extras/Mesa/include/GL/vms_x_fix.h | 880 - nx-X11/extras/Mesa/include/GL/wmesa.h | 142 - nx-X11/extras/Mesa/include/GL/xmesa_x.h | 84 - nx-X11/extras/Mesa/include/GLES/egl.h | 274 - nx-X11/extras/Mesa/include/GLES/egltypes.h | 45 - nx-X11/extras/Mesa/mms-config. | 23 - nx-X11/extras/Mesa/src/Makefile | 34 - nx-X11/extras/Mesa/src/descrip.mms | 43 - nx-X11/extras/Mesa/src/glw/GLwDrawA.c | 684 - nx-X11/extras/Mesa/src/glw/GLwDrawA.h | 195 - nx-X11/extras/Mesa/src/glw/GLwDrawAP.h | 130 - nx-X11/extras/Mesa/src/glw/GLwMDrawA.c | 41 - nx-X11/extras/Mesa/src/glw/GLwMDrawA.h | 41 - nx-X11/extras/Mesa/src/glw/GLwMDrawAP.h | 41 - nx-X11/extras/Mesa/src/glw/Makefile | 52 - nx-X11/extras/Mesa/src/glw/README | 56 - nx-X11/extras/Mesa/src/glx/Makefile | 12 - nx-X11/extras/Mesa/src/glx/mini/Makefile | 86 - nx-X11/extras/Mesa/src/glx/mini/NOTES | 115 - nx-X11/extras/Mesa/src/glx/mini/dispatch.c | 64 - nx-X11/extras/Mesa/src/glx/mini/driver.h | 169 - .../extras/Mesa/src/glx/mini/example.miniglx.conf | 36 - nx-X11/extras/Mesa/src/glx/mini/miniglx.c | 2563 -- nx-X11/extras/Mesa/src/glx/mini/miniglxP.h | 205 - nx-X11/extras/Mesa/src/glx/mini/miniglx_events.c | 978 - nx-X11/extras/Mesa/src/glx/x11/Makefile | 94 - nx-X11/extras/Mesa/src/glx/x11/XF86dri.c | 617 - nx-X11/extras/Mesa/src/glx/x11/clientattrib.c | 141 - nx-X11/extras/Mesa/src/glx/x11/dri_glx.c | 461 - nx-X11/extras/Mesa/src/glx/x11/dri_glx.h | 61 - nx-X11/extras/Mesa/src/glx/x11/eval.c | 132 - nx-X11/extras/Mesa/src/glx/x11/glx_pbuffer.c | 556 - nx-X11/extras/Mesa/src/glx/x11/glx_query.c | 102 - .../Mesa/src/glx/x11/glx_texture_compression.c | 347 - nx-X11/extras/Mesa/src/glx/x11/glxclient.h | 690 - nx-X11/extras/Mesa/src/glx/x11/glxcmds.c | 2969 -- nx-X11/extras/Mesa/src/glx/x11/glxext.c | 1864 -- nx-X11/extras/Mesa/src/glx/x11/glxextensions.c | 717 - nx-X11/extras/Mesa/src/glx/x11/glxextensions.h | 279 - nx-X11/extras/Mesa/src/glx/x11/indirect.c | 8472 ----- nx-X11/extras/Mesa/src/glx/x11/indirect.h | 707 - nx-X11/extras/Mesa/src/glx/x11/indirect_init.c | 779 - nx-X11/extras/Mesa/src/glx/x11/indirect_init.h | 42 - .../Mesa/src/glx/x11/indirect_transpose_matrix.c | 83 - .../extras/Mesa/src/glx/x11/indirect_va_private.h | 308 - .../Mesa/src/glx/x11/indirect_vertex_array.c | 1847 -- .../Mesa/src/glx/x11/indirect_vertex_array.h | 57 - .../Mesa/src/glx/x11/indirect_vertex_program.c | 276 - .../extras/Mesa/src/glx/x11/indirect_window_pos.c | 98 - nx-X11/extras/Mesa/src/glx/x11/packrender.h | 249 - nx-X11/extras/Mesa/src/glx/x11/packsingle.h | 219 - nx-X11/extras/Mesa/src/glx/x11/pixel.c | 443 - nx-X11/extras/Mesa/src/glx/x11/pixelstore.c | 341 - nx-X11/extras/Mesa/src/glx/x11/render2.c | 363 - nx-X11/extras/Mesa/src/glx/x11/renderpix.c | 215 - nx-X11/extras/Mesa/src/glx/x11/single2.c | 833 - nx-X11/extras/Mesa/src/glx/x11/singlepix.c | 105 - nx-X11/extras/Mesa/src/glx/x11/vertarr.c | 203 - nx-X11/extras/Mesa/src/glx/x11/xf86dri.h | 122 - nx-X11/extras/Mesa/src/glx/x11/xf86dristr.h | 343 - nx-X11/extras/Mesa/src/glx/x11/xfont.c | 377 - nx-X11/extras/Mesa/src/mesa/Makefile | 230 - nx-X11/extras/Mesa/src/mesa/Makefile.DJ | 168 - nx-X11/extras/Mesa/src/mesa/Makefile.mgw | 206 - .../extras/Mesa/src/mesa/array_cache/descrip.mms | 37 - nx-X11/extras/Mesa/src/mesa/descrip.mms | 26 - .../Mesa/src/mesa/drivers/common/descrip.mms | 37 - nx-X11/extras/Mesa/src/mesa/drivers/dri/Makefile | 34 - .../Mesa/src/mesa/drivers/dri/Makefile.template | 109 - .../Mesa/src/mesa/drivers/dri/common/depthtmp.h | 253 - .../Mesa/src/mesa/drivers/dri/common/dri_util.c | 1073 - .../Mesa/src/mesa/drivers/dri/common/dri_util.h | 555 - .../src/mesa/drivers/dri/common/drirenderbuffer.c | 98 - .../src/mesa/drivers/dri/common/drirenderbuffer.h | 39 - .../src/mesa/drivers/dri/common/extension_helper.h | 5887 ---- .../dri/common/glcontextmodes.c.NX.original | 497 - .../drivers/dri/common/glcontextmodes.c.X.original | 496 - .../Mesa/src/mesa/drivers/dri/common/memops.h | 17 - .../extras/Mesa/src/mesa/drivers/dri/common/mmio.h | 62 - .../extras/Mesa/src/mesa/drivers/dri/common/mmx.h | 560 - .../Mesa/src/mesa/drivers/dri/common/spantmp.h | 328 - .../Mesa/src/mesa/drivers/dri/common/spantmp2.h | 609 - .../src/mesa/drivers/dri/common/spantmp_common.h | 81 - .../Mesa/src/mesa/drivers/dri/common/stenciltmp.h | 182 - .../Mesa/src/mesa/drivers/dri/common/texmem.c | 1339 - .../Mesa/src/mesa/drivers/dri/common/texmem.h | 327 - .../Mesa/src/mesa/drivers/dri/common/utils.c | 695 - .../Mesa/src/mesa/drivers/dri/common/utils.h | 119 - .../Mesa/src/mesa/drivers/dri/common/vblank.c | 347 - .../Mesa/src/mesa/drivers/dri/common/vblank.h | 69 - .../Mesa/src/mesa/drivers/dri/common/xmlconfig.c | 1002 - .../Mesa/src/mesa/drivers/dri/common/xmlconfig.h | 124 - .../Mesa/src/mesa/drivers/dri/common/xmlpool.h | 94 - .../src/mesa/drivers/dri/common/xmlpool/Makefile | 96 - .../Mesa/src/mesa/drivers/dri/common/xmlpool/de.po | 231 - .../Mesa/src/mesa/drivers/dri/common/xmlpool/es.po | 219 - .../Mesa/src/mesa/drivers/dri/common/xmlpool/fr.po | 225 - .../mesa/drivers/dri/common/xmlpool/gen_xmlpool.py | 191 - .../Mesa/src/mesa/drivers/dri/common/xmlpool/nl.po | 230 - .../src/mesa/drivers/dri/common/xmlpool/options.h | 462 - .../mesa/drivers/dri/common/xmlpool/t_options.h | 230 - .../extras/Mesa/src/mesa/drivers/dri/fb/Doxyfile | 232 - .../extras/Mesa/src/mesa/drivers/dri/fb/Makefile | 21 - .../extras/Mesa/src/mesa/drivers/dri/fb/fb_dri.c | 786 - .../extras/Mesa/src/mesa/drivers/dri/fb/fb_egl.c | 881 - .../extras/Mesa/src/mesa/drivers/dri/ffb/Makefile | 36 - .../Mesa/src/mesa/drivers/dri/ffb/ffb_bitmap.c | 159 - .../Mesa/src/mesa/drivers/dri/ffb/ffb_bitmap.h | 8 - .../Mesa/src/mesa/drivers/dri/ffb/ffb_clear.c | 354 - .../Mesa/src/mesa/drivers/dri/ffb/ffb_clear.h | 9 - .../Mesa/src/mesa/drivers/dri/ffb/ffb_context.h | 306 - .../extras/Mesa/src/mesa/drivers/dri/ffb/ffb_dd.c | 119 - .../extras/Mesa/src/mesa/drivers/dri/ffb/ffb_dd.h | 36 - .../Mesa/src/mesa/drivers/dri/ffb/ffb_depth.c | 245 - .../Mesa/src/mesa/drivers/dri/ffb/ffb_depth.h | 8 - .../Mesa/src/mesa/drivers/dri/ffb/ffb_fifo.h | 28 - .../extras/Mesa/src/mesa/drivers/dri/ffb/ffb_fog.c | 73 - .../Mesa/src/mesa/drivers/dri/ffb/ffb_lines.c | 111 - .../Mesa/src/mesa/drivers/dri/ffb/ffb_lines.h | 18 - .../Mesa/src/mesa/drivers/dri/ffb/ffb_linetmp.h | 81 - .../Mesa/src/mesa/drivers/dri/ffb/ffb_lock.h | 37 - .../Mesa/src/mesa/drivers/dri/ffb/ffb_points.c | 93 - .../Mesa/src/mesa/drivers/dri/ffb/ffb_points.h | 15 - .../Mesa/src/mesa/drivers/dri/ffb/ffb_pointtmp.h | 55 - .../Mesa/src/mesa/drivers/dri/ffb/ffb_rendertmp.h | 646 - .../Mesa/src/mesa/drivers/dri/ffb/ffb_span.c | 135 - .../Mesa/src/mesa/drivers/dri/ffb/ffb_span.h | 10 - .../Mesa/src/mesa/drivers/dri/ffb/ffb_state.c | 1223 - .../Mesa/src/mesa/drivers/dri/ffb/ffb_state.h | 13 - .../Mesa/src/mesa/drivers/dri/ffb/ffb_stencil.c | 226 - .../Mesa/src/mesa/drivers/dri/ffb/ffb_stencil.h | 8 - .../extras/Mesa/src/mesa/drivers/dri/ffb/ffb_tex.c | 53 - .../extras/Mesa/src/mesa/drivers/dri/ffb/ffb_tex.h | 34 - .../Mesa/src/mesa/drivers/dri/ffb/ffb_tris.c | 945 - .../Mesa/src/mesa/drivers/dri/ffb/ffb_tris.h | 26 - .../Mesa/src/mesa/drivers/dri/ffb/ffb_tritmp.h | 239 - .../extras/Mesa/src/mesa/drivers/dri/ffb/ffb_vb.c | 209 - .../extras/Mesa/src/mesa/drivers/dri/ffb/ffb_vb.h | 45 - .../Mesa/src/mesa/drivers/dri/ffb/ffb_vbtmp.h | 151 - .../Mesa/src/mesa/drivers/dri/ffb/ffb_vtxfmt.c | 427 - .../Mesa/src/mesa/drivers/dri/ffb/ffb_vtxfmt.h | 8 - .../Mesa/src/mesa/drivers/dri/ffb/ffb_xmesa.c | 753 - .../Mesa/src/mesa/drivers/dri/ffb/ffb_xmesa.h | 26 - .../Mesa/src/mesa/drivers/dri/ffb/server/ffb_dac.h | 367 - .../src/mesa/drivers/dri/ffb/server/ffb_drishare.h | 48 - .../src/mesa/drivers/dri/ffb/server/ffb_regs.h | 509 - .../Mesa/src/mesa/drivers/dri/gamma/Makefile | 35 - .../Mesa/src/mesa/drivers/dri/gamma/gamma_client.h | 6185 ---- .../src/mesa/drivers/dri/gamma/gamma_context.c | 226 - .../src/mesa/drivers/dri/gamma/gamma_context.h | 403 - .../Mesa/src/mesa/drivers/dri/gamma/gamma_dd.c | 128 - .../Mesa/src/mesa/drivers/dri/gamma/gamma_inithw.c | 551 - .../Mesa/src/mesa/drivers/dri/gamma/gamma_lock.c | 59 - .../Mesa/src/mesa/drivers/dri/gamma/gamma_lock.h | 84 - .../Mesa/src/mesa/drivers/dri/gamma/gamma_macros.h | 324 - .../Mesa/src/mesa/drivers/dri/gamma/gamma_regs.h | 659 - .../Mesa/src/mesa/drivers/dri/gamma/gamma_render.c | 220 - .../Mesa/src/mesa/drivers/dri/gamma/gamma_screen.c | 147 - .../Mesa/src/mesa/drivers/dri/gamma/gamma_screen.h | 30 - .../Mesa/src/mesa/drivers/dri/gamma/gamma_span.c | 313 - .../Mesa/src/mesa/drivers/dri/gamma/gamma_state.c | 1730 -- .../Mesa/src/mesa/drivers/dri/gamma/gamma_tex.c | 433 - .../Mesa/src/mesa/drivers/dri/gamma/gamma_texmem.c | 535 - .../src/mesa/drivers/dri/gamma/gamma_texstate.c | 216 - .../Mesa/src/mesa/drivers/dri/gamma/gamma_tris.c | 659 - .../Mesa/src/mesa/drivers/dri/gamma/gamma_tris.h | 36 - .../Mesa/src/mesa/drivers/dri/gamma/gamma_tritmp.h | 497 - .../Mesa/src/mesa/drivers/dri/gamma/gamma_vb.c | 362 - .../Mesa/src/mesa/drivers/dri/gamma/gamma_vb.h | 60 - .../Mesa/src/mesa/drivers/dri/gamma/gamma_xmesa.c | 266 - .../mesa/drivers/dri/gamma/server/glint_common.h | 64 - .../src/mesa/drivers/dri/gamma/server/glint_dri.h | 123 - .../extras/Mesa/src/mesa/drivers/dri/i810/Makefile | 32 - .../Mesa/src/mesa/drivers/dri/i810/i810_3d_reg.h | 636 - .../Mesa/src/mesa/drivers/dri/i810/i810context.c | 572 - .../Mesa/src/mesa/drivers/dri/i810/i810context.h | 252 - .../Mesa/src/mesa/drivers/dri/i810/i810ioctl.c | 511 - .../Mesa/src/mesa/drivers/dri/i810/i810ioctl.h | 49 - .../Mesa/src/mesa/drivers/dri/i810/i810render.c | 173 - .../Mesa/src/mesa/drivers/dri/i810/i810screen.c | 471 - .../Mesa/src/mesa/drivers/dri/i810/i810screen.h | 99 - .../Mesa/src/mesa/drivers/dri/i810/i810span.c | 201 - .../Mesa/src/mesa/drivers/dri/i810/i810span.h | 14 - .../Mesa/src/mesa/drivers/dri/i810/i810state.c | 1025 - .../Mesa/src/mesa/drivers/dri/i810/i810state.h | 15 - .../Mesa/src/mesa/drivers/dri/i810/i810tex.c | 564 - .../Mesa/src/mesa/drivers/dri/i810/i810tex.h | 78 - .../Mesa/src/mesa/drivers/dri/i810/i810texmem.c | 183 - .../Mesa/src/mesa/drivers/dri/i810/i810texstate.c | 746 - .../Mesa/src/mesa/drivers/dri/i810/i810tris.c | 871 - .../Mesa/src/mesa/drivers/dri/i810/i810tris.h | 36 - .../extras/Mesa/src/mesa/drivers/dri/i810/i810vb.c | 489 - .../extras/Mesa/src/mesa/drivers/dri/i810/i810vb.h | 60 - .../src/mesa/drivers/dri/i810/server/i810_common.h | 192 - .../src/mesa/drivers/dri/i810/server/i810_dri.c | 975 - .../src/mesa/drivers/dri/i810/server/i810_dri.h | 128 - .../src/mesa/drivers/dri/i810/server/i810_reg.h | 992 - .../extras/Mesa/src/mesa/drivers/dri/i830/Makefile | 31 - .../Mesa/src/mesa/drivers/dri/i830/i830_3d_reg.h | 677 - .../Mesa/src/mesa/drivers/dri/i830/i830_context.c | 626 - .../Mesa/src/mesa/drivers/dri/i830/i830_context.h | 327 - .../Mesa/src/mesa/drivers/dri/i830/i830_debug.c | 415 - .../Mesa/src/mesa/drivers/dri/i830/i830_debug.h | 48 - .../Mesa/src/mesa/drivers/dri/i830/i830_ioctl.c | 841 - .../Mesa/src/mesa/drivers/dri/i830/i830_ioctl.h | 105 - .../Mesa/src/mesa/drivers/dri/i830/i830_render.c | 226 - .../Mesa/src/mesa/drivers/dri/i830/i830_screen.c | 557 - .../Mesa/src/mesa/drivers/dri/i830/i830_screen.h | 113 - .../Mesa/src/mesa/drivers/dri/i830/i830_span.c | 427 - .../Mesa/src/mesa/drivers/dri/i830/i830_span.h | 51 - .../Mesa/src/mesa/drivers/dri/i830/i830_state.c | 1707 - .../Mesa/src/mesa/drivers/dri/i830/i830_state.h | 68 - .../Mesa/src/mesa/drivers/dri/i830/i830_tex.c | 700 - .../Mesa/src/mesa/drivers/dri/i830/i830_tex.h | 70 - .../Mesa/src/mesa/drivers/dri/i830/i830_texmem.c | 237 - .../Mesa/src/mesa/drivers/dri/i830/i830_texstate.c | 716 - .../Mesa/src/mesa/drivers/dri/i830/i830_tris.c | 1056 - .../Mesa/src/mesa/drivers/dri/i830/i830_tris.h | 37 - .../src/mesa/drivers/dri/i830/server/i830_common.h | 288 - .../src/mesa/drivers/dri/i830/server/i830_dri.h | 140 - .../extras/Mesa/src/mesa/drivers/dri/i915/Makefile | 47 - .../Mesa/src/mesa/drivers/dri/i915/i830_context.c | 122 - .../Mesa/src/mesa/drivers/dri/i915/i830_context.h | 215 - .../Mesa/src/mesa/drivers/dri/i915/i830_metaops.c | 733 - .../Mesa/src/mesa/drivers/dri/i915/i830_reg.h | 641 - .../Mesa/src/mesa/drivers/dri/i915/i830_state.c | 1089 - .../Mesa/src/mesa/drivers/dri/i915/i830_tex.c | 345 - .../Mesa/src/mesa/drivers/dri/i915/i830_texblend.c | 465 - .../Mesa/src/mesa/drivers/dri/i915/i830_texstate.c | 483 - .../Mesa/src/mesa/drivers/dri/i915/i830_vtbl.c | 456 - .../Mesa/src/mesa/drivers/dri/i915/i915_context.c | 181 - .../Mesa/src/mesa/drivers/dri/i915/i915_context.h | 351 - .../Mesa/src/mesa/drivers/dri/i915/i915_debug.c | 299 - .../Mesa/src/mesa/drivers/dri/i915/i915_fragprog.c | 1065 - .../Mesa/src/mesa/drivers/dri/i915/i915_metaops.c | 516 - .../Mesa/src/mesa/drivers/dri/i915/i915_program.c | 466 - .../Mesa/src/mesa/drivers/dri/i915/i915_program.h | 163 - .../Mesa/src/mesa/drivers/dri/i915/i915_reg.h | 833 - .../Mesa/src/mesa/drivers/dri/i915/i915_state.c | 954 - .../Mesa/src/mesa/drivers/dri/i915/i915_tex.c | 182 - .../Mesa/src/mesa/drivers/dri/i915/i915_texprog.c | 668 - .../Mesa/src/mesa/drivers/dri/i915/i915_texstate.c | 922 - .../Mesa/src/mesa/drivers/dri/i915/i915_vtbl.c | 353 - .../src/mesa/drivers/dri/i915/intel_batchbuffer.c | 688 - .../src/mesa/drivers/dri/i915/intel_batchbuffer.h | 123 - .../Mesa/src/mesa/drivers/dri/i915/intel_context.c | 712 - .../Mesa/src/mesa/drivers/dri/i915/intel_context.h | 519 - .../Mesa/src/mesa/drivers/dri/i915/intel_ioctl.c | 607 - .../Mesa/src/mesa/drivers/dri/i915/intel_ioctl.h | 66 - .../Mesa/src/mesa/drivers/dri/i915/intel_pixel.c | 490 - .../Mesa/src/mesa/drivers/dri/i915/intel_reg.h | 84 - .../Mesa/src/mesa/drivers/dri/i915/intel_render.c | 240 - .../Mesa/src/mesa/drivers/dri/i915/intel_screen.c | 511 - .../Mesa/src/mesa/drivers/dri/i915/intel_screen.h | 101 - .../Mesa/src/mesa/drivers/dri/i915/intel_span.c | 379 - .../Mesa/src/mesa/drivers/dri/i915/intel_span.h | 41 - .../Mesa/src/mesa/drivers/dri/i915/intel_state.c | 285 - .../Mesa/src/mesa/drivers/dri/i915/intel_tex.c | 831 - .../Mesa/src/mesa/drivers/dri/i915/intel_tex.h | 42 - .../Mesa/src/mesa/drivers/dri/i915/intel_tris.c | 920 - .../Mesa/src/mesa/drivers/dri/i915/intel_tris.h | 46 - .../src/mesa/drivers/dri/i915/server/i830_common.h | 169 - .../src/mesa/drivers/dri/i915/server/i830_dri.h | 69 - .../Mesa/src/mesa/drivers/dri/mach64/Makefile | 33 - .../src/mesa/drivers/dri/mach64/mach64_context.c | 338 - .../src/mesa/drivers/dri/mach64/mach64_context.h | 405 - .../Mesa/src/mesa/drivers/dri/mach64/mach64_dd.c | 135 - .../Mesa/src/mesa/drivers/dri/mach64/mach64_dd.h | 36 - .../src/mesa/drivers/dri/mach64/mach64_ioctl.c | 912 - .../src/mesa/drivers/dri/mach64/mach64_ioctl.h | 148 - .../Mesa/src/mesa/drivers/dri/mach64/mach64_lock.c | 93 - .../Mesa/src/mesa/drivers/dri/mach64/mach64_lock.h | 104 - .../src/mesa/drivers/dri/mach64/mach64_native_vb.c | 257 - .../mesa/drivers/dri/mach64/mach64_native_vbtmp.h | 562 - .../Mesa/src/mesa/drivers/dri/mach64/mach64_reg.h | 406 - .../src/mesa/drivers/dri/mach64/mach64_screen.c | 553 - .../src/mesa/drivers/dri/mach64/mach64_screen.h | 78 - .../Mesa/src/mesa/drivers/dri/mach64/mach64_span.c | 231 - .../Mesa/src/mesa/drivers/dri/mach64/mach64_span.h | 41 - .../src/mesa/drivers/dri/mach64/mach64_state.c | 1216 - .../src/mesa/drivers/dri/mach64/mach64_state.h | 47 - .../Mesa/src/mesa/drivers/dri/mach64/mach64_tex.c | 610 - .../Mesa/src/mesa/drivers/dri/mach64/mach64_tex.h | 99 - .../src/mesa/drivers/dri/mach64/mach64_texmem.c | 867 - .../src/mesa/drivers/dri/mach64/mach64_texstate.c | 558 - .../Mesa/src/mesa/drivers/dri/mach64/mach64_tris.c | 1921 -- .../Mesa/src/mesa/drivers/dri/mach64/mach64_tris.h | 43 - .../Mesa/src/mesa/drivers/dri/mach64/mach64_vb.c | 642 - .../Mesa/src/mesa/drivers/dri/mach64/mach64_vb.h | 77 - .../src/mesa/drivers/dri/mach64/mach64_vbtmp.h | 770 - .../mesa/drivers/dri/mach64/server/mach64_dri.h | 126 - .../extras/Mesa/src/mesa/drivers/dri/mga/Doxyfile | 234 - .../extras/Mesa/src/mesa/drivers/dri/mga/Makefile | 34 - nx-X11/extras/Mesa/src/mesa/drivers/dri/mga/README | 26 - .../Mesa/src/mesa/drivers/dri/mga/mga_texcombine.c | 672 - .../Mesa/src/mesa/drivers/dri/mga/mga_texstate.c | 902 - .../Mesa/src/mesa/drivers/dri/mga/mga_xmesa.c | 1020 - .../Mesa/src/mesa/drivers/dri/mga/mga_xmesa.h | 155 - .../Mesa/src/mesa/drivers/dri/mga/mgacontext.h | 372 - .../extras/Mesa/src/mesa/drivers/dri/mga/mgadd.c | 98 - .../extras/Mesa/src/mesa/drivers/dri/mga/mgadd.h | 36 - .../Mesa/src/mesa/drivers/dri/mga/mgaioctl.c | 743 - .../Mesa/src/mesa/drivers/dri/mga/mgaioctl.h | 111 - .../Mesa/src/mesa/drivers/dri/mga/mgapixel.c | 664 - .../Mesa/src/mesa/drivers/dri/mga/mgapixel.h | 36 - .../extras/Mesa/src/mesa/drivers/dri/mga/mgaregs.h | 1395 - .../Mesa/src/mesa/drivers/dri/mga/mgarender.c | 172 - .../extras/Mesa/src/mesa/drivers/dri/mga/mgaspan.c | 312 - .../extras/Mesa/src/mesa/drivers/dri/mga/mgaspan.h | 40 - .../Mesa/src/mesa/drivers/dri/mga/mgastate.c | 1237 - .../Mesa/src/mesa/drivers/dri/mga/mgastate.h | 39 - .../extras/Mesa/src/mesa/drivers/dri/mga/mgatex.c | 538 - .../extras/Mesa/src/mesa/drivers/dri/mga/mgatex.h | 51 - .../Mesa/src/mesa/drivers/dri/mga/mgatexmem.c | 278 - .../extras/Mesa/src/mesa/drivers/dri/mga/mgatris.c | 912 - .../extras/Mesa/src/mesa/drivers/dri/mga/mgatris.h | 52 - .../extras/Mesa/src/mesa/drivers/dri/mga/mgavb.c | 480 - .../extras/Mesa/src/mesa/drivers/dri/mga/mgavb.h | 66 - .../Mesa/src/mesa/drivers/dri/mga/server/mga.h | 115 - .../src/mesa/drivers/dri/mga/server/mga_bios.h | 143 - .../Mesa/src/mesa/drivers/dri/mga/server/mga_dri.c | 1089 - .../Mesa/src/mesa/drivers/dri/mga/server/mga_dri.h | 113 - .../src/mesa/drivers/dri/mga/server/mga_macros.h | 118 - .../Mesa/src/mesa/drivers/dri/mga/server/mga_reg.h | 484 - .../extras/Mesa/src/mesa/drivers/dri/r128/Makefile | 32 - .../Mesa/src/mesa/drivers/dri/r128/r128_context.c | 364 - .../Mesa/src/mesa/drivers/dri/r128/r128_context.h | 269 - .../Mesa/src/mesa/drivers/dri/r128/r128_dd.c | 148 - .../Mesa/src/mesa/drivers/dri/r128/r128_dd.h | 41 - .../Mesa/src/mesa/drivers/dri/r128/r128_ioctl.c | 813 - .../Mesa/src/mesa/drivers/dri/r128/r128_ioctl.h | 144 - .../Mesa/src/mesa/drivers/dri/r128/r128_lock.c | 123 - .../Mesa/src/mesa/drivers/dri/r128/r128_lock.h | 108 - .../Mesa/src/mesa/drivers/dri/r128/r128_screen.c | 547 - .../Mesa/src/mesa/drivers/dri/r128/r128_screen.h | 84 - .../Mesa/src/mesa/drivers/dri/r128/r128_span.c | 368 - .../Mesa/src/mesa/drivers/dri/r128/r128_span.h | 46 - .../Mesa/src/mesa/drivers/dri/r128/r128_state.c | 1261 - .../Mesa/src/mesa/drivers/dri/r128/r128_state.h | 51 - .../Mesa/src/mesa/drivers/dri/r128/r128_tex.c | 617 - .../Mesa/src/mesa/drivers/dri/r128/r128_tex.h | 85 - .../Mesa/src/mesa/drivers/dri/r128/r128_texmem.c | 301 - .../Mesa/src/mesa/drivers/dri/r128/r128_texobj.h | 68 - .../Mesa/src/mesa/drivers/dri/r128/r128_texstate.c | 648 - .../Mesa/src/mesa/drivers/dri/r128/r128_tris.c | 769 - .../Mesa/src/mesa/drivers/dri/r128/r128_tris.h | 48 - .../src/mesa/drivers/dri/r128/server/pci_ids.h | 57 - .../Mesa/src/mesa/drivers/dri/r128/server/r128.h | 465 - .../src/mesa/drivers/dri/r128/server/r128_dri.c | 1113 - .../src/mesa/drivers/dri/r128/server/r128_dri.h | 103 - .../src/mesa/drivers/dri/r128/server/r128_macros.h | 135 - .../src/mesa/drivers/dri/r128/server/r128_reg.h | 1394 - .../mesa/drivers/dri/r128/server/r128_version.h | 60 - .../extras/Mesa/src/mesa/drivers/dri/r200/Doxyfile | 232 - .../extras/Mesa/src/mesa/drivers/dri/r200/Makefile | 62 - .../Mesa/src/mesa/drivers/dri/r200/r200_cmdbuf.c | 423 - .../Mesa/src/mesa/drivers/dri/r200/r200_context.c | 694 - .../Mesa/src/mesa/drivers/dri/r200/r200_context.h | 995 - .../Mesa/src/mesa/drivers/dri/r200/r200_ioctl.c | 966 - .../Mesa/src/mesa/drivers/dri/r200/r200_ioctl.h | 215 - .../Mesa/src/mesa/drivers/dri/r200/r200_lock.c | 127 - .../Mesa/src/mesa/drivers/dri/r200/r200_lock.h | 107 - .../Mesa/src/mesa/drivers/dri/r200/r200_maos.c | 15 - .../Mesa/src/mesa/drivers/dri/r200/r200_maos.h | 44 - .../src/mesa/drivers/dri/r200/r200_maos_arrays.c | 530 - .../Mesa/src/mesa/drivers/dri/r200/r200_pixel.c | 492 - .../Mesa/src/mesa/drivers/dri/r200/r200_pixel.h | 40 - .../Mesa/src/mesa/drivers/dri/r200/r200_reg.h | 1454 - .../Mesa/src/mesa/drivers/dri/r200/r200_sanity.c | 1341 - .../Mesa/src/mesa/drivers/dri/r200/r200_sanity.h | 8 - .../Mesa/src/mesa/drivers/dri/r200/r200_screen.c | 737 - .../Mesa/src/mesa/drivers/dri/r200/r200_screen.h | 106 - .../Mesa/src/mesa/drivers/dri/r200/r200_span.c | 367 - .../Mesa/src/mesa/drivers/dri/r200/r200_span.h | 46 - .../Mesa/src/mesa/drivers/dri/r200/r200_state.c | 2383 -- .../Mesa/src/mesa/drivers/dri/r200/r200_state.h | 67 - .../src/mesa/drivers/dri/r200/r200_state_init.c | 798 - .../Mesa/src/mesa/drivers/dri/r200/r200_swtcl.c | 957 - .../Mesa/src/mesa/drivers/dri/r200/r200_swtcl.h | 76 - .../Mesa/src/mesa/drivers/dri/r200/r200_tcl.c | 583 - .../Mesa/src/mesa/drivers/dri/r200/r200_tcl.h | 69 - .../Mesa/src/mesa/drivers/dri/r200/r200_tex.c | 1183 - .../Mesa/src/mesa/drivers/dri/r200/r200_tex.h | 47 - .../Mesa/src/mesa/drivers/dri/r200/r200_texmem.c | 526 - .../Mesa/src/mesa/drivers/dri/r200/r200_texstate.c | 1468 - .../Mesa/src/mesa/drivers/dri/r200/r200_vtxfmt.c | 1227 - .../Mesa/src/mesa/drivers/dri/r200/r200_vtxfmt.h | 123 - .../Mesa/src/mesa/drivers/dri/r200/r200_vtxfmt_c.c | 1002 - .../src/mesa/drivers/dri/r200/r200_vtxfmt_sse.c | 234 - .../src/mesa/drivers/dri/r200/r200_vtxfmt_x86.c | 440 - .../src/mesa/drivers/dri/r200/r200_vtxtmp_x86.S | 495 - .../extras/Mesa/src/mesa/drivers/dri/r300/Makefile | 83 - .../Mesa/src/mesa/drivers/dri/r300/pixel_shader.h | 103 - .../Mesa/src/mesa/drivers/dri/r300/r200_context.h | 822 - .../Mesa/src/mesa/drivers/dri/r300/r200_ioctl.h | 204 - .../Mesa/src/mesa/drivers/dri/r300/r200_reg.h | 1423 - .../Mesa/src/mesa/drivers/dri/r300/r200_sanity.h | 7 - .../Mesa/src/mesa/drivers/dri/r300/r200_state.h | 58 - .../Mesa/src/mesa/drivers/dri/r300/r200_tcl.h | 50 - .../Mesa/src/mesa/drivers/dri/r300/r200_tex.h | 51 - .../Mesa/src/mesa/drivers/dri/r300/r300_cmdbuf.c | 655 - .../Mesa/src/mesa/drivers/dri/r300/r300_cmdbuf.h | 118 - .../Mesa/src/mesa/drivers/dri/r300/r300_context.c | 453 - .../Mesa/src/mesa/drivers/dri/r300/r300_context.h | 844 - .../Mesa/src/mesa/drivers/dri/r300/r300_emit.h | 282 - .../mesa/drivers/dri/r300/r300_fixed_pipelines.h | 294 - .../Mesa/src/mesa/drivers/dri/r300/r300_fragprog.c | 1090 - .../Mesa/src/mesa/drivers/dri/r300/r300_fragprog.h | 49 - .../src/mesa/drivers/dri/r300/r300_fragprog_swz.c | 1343 - .../Mesa/src/mesa/drivers/dri/r300/r300_ioctl.c | 774 - .../Mesa/src/mesa/drivers/dri/r300/r300_ioctl.h | 62 - .../Mesa/src/mesa/drivers/dri/r300/r300_maos.c | 561 - .../Mesa/src/mesa/drivers/dri/r300/r300_maos.h | 49 - .../Mesa/src/mesa/drivers/dri/r300/r300_program.h | 151 - .../Mesa/src/mesa/drivers/dri/r300/r300_reg.h | 1387 - .../Mesa/src/mesa/drivers/dri/r300/r300_render.c | 726 - .../Mesa/src/mesa/drivers/dri/r300/r300_shader.c | 112 - .../Mesa/src/mesa/drivers/dri/r300/r300_state.c | 2321 -- .../Mesa/src/mesa/drivers/dri/r300/r300_state.h | 69 - .../Mesa/src/mesa/drivers/dri/r300/r300_tex.c | 1051 - .../Mesa/src/mesa/drivers/dri/r300/r300_tex.h | 51 - .../Mesa/src/mesa/drivers/dri/r300/r300_texmem.c | 514 - .../Mesa/src/mesa/drivers/dri/r300/r300_texprog.c | 270 - .../Mesa/src/mesa/drivers/dri/r300/r300_texprog.h | 9 - .../Mesa/src/mesa/drivers/dri/r300/r300_texstate.c | 1465 - .../src/mesa/drivers/dri/r300/r300_vertexprog.c | 952 - .../src/mesa/drivers/dri/r300/radeon_context.c | 312 - .../src/mesa/drivers/dri/r300/radeon_context.h | 249 - .../Mesa/src/mesa/drivers/dri/r300/radeon_ioctl.c | 372 - .../Mesa/src/mesa/drivers/dri/r300/radeon_ioctl.h | 53 - .../Mesa/src/mesa/drivers/dri/r300/radeon_lock.c | 166 - .../Mesa/src/mesa/drivers/dri/r300/radeon_lock.h | 122 - .../Mesa/src/mesa/drivers/dri/r300/radeon_screen.c | 879 - .../Mesa/src/mesa/drivers/dri/r300/radeon_screen.h | 112 - .../Mesa/src/mesa/drivers/dri/r300/radeon_span.c | 391 - .../Mesa/src/mesa/drivers/dri/r300/radeon_span.h | 46 - .../Mesa/src/mesa/drivers/dri/r300/radeon_state.c | 245 - .../Mesa/src/mesa/drivers/dri/r300/radeon_state.h | 45 - .../Mesa/src/mesa/drivers/dri/r300/vertex_shader.h | 91 - .../Mesa/src/mesa/drivers/dri/radeon/Makefile | 42 - .../src/mesa/drivers/dri/radeon/radeon_compat.c | 302 - .../src/mesa/drivers/dri/radeon/radeon_context.c | 630 - .../src/mesa/drivers/dri/radeon/radeon_context.h | 868 - .../src/mesa/drivers/dri/radeon/radeon_ioctl.c | 1283 - .../src/mesa/drivers/dri/radeon/radeon_ioctl.h | 217 - .../src/mesa/drivers/dri/radeon/radeon_lighting.c | 682 - .../Mesa/src/mesa/drivers/dri/radeon/radeon_lock.c | 135 - .../Mesa/src/mesa/drivers/dri/radeon/radeon_lock.h | 108 - .../Mesa/src/mesa/drivers/dri/radeon/radeon_maos.c | 12 - .../Mesa/src/mesa/drivers/dri/radeon/radeon_maos.h | 44 - .../mesa/drivers/dri/radeon/radeon_maos_arrays.c | 604 - .../mesa/drivers/dri/radeon/radeon_maos_vbtmp.h | 284 - .../mesa/drivers/dri/radeon/radeon_maos_verts.c | 367 - .../src/mesa/drivers/dri/radeon/radeon_sanity.c | 1070 - .../src/mesa/drivers/dri/radeon/radeon_sanity.h | 8 - .../src/mesa/drivers/dri/radeon/radeon_screen.c | 656 - .../src/mesa/drivers/dri/radeon/radeon_screen.h | 103 - .../Mesa/src/mesa/drivers/dri/radeon/radeon_span.c | 346 - .../Mesa/src/mesa/drivers/dri/radeon/radeon_span.h | 46 - .../src/mesa/drivers/dri/radeon/radeon_state.c | 2295 -- .../src/mesa/drivers/dri/radeon/radeon_state.h | 74 - .../mesa/drivers/dri/radeon/radeon_state_init.c | 572 - .../src/mesa/drivers/dri/radeon/radeon_swtcl.c | 983 - .../src/mesa/drivers/dri/radeon/radeon_swtcl.h | 69 - .../Mesa/src/mesa/drivers/dri/radeon/radeon_tcl.c | 489 - .../Mesa/src/mesa/drivers/dri/radeon/radeon_tcl.h | 66 - .../Mesa/src/mesa/drivers/dri/radeon/radeon_tex.c | 866 - .../Mesa/src/mesa/drivers/dri/radeon/radeon_tex.h | 50 - .../src/mesa/drivers/dri/radeon/radeon_texmem.c | 404 - .../src/mesa/drivers/dri/radeon/radeon_texstate.c | 1171 - .../src/mesa/drivers/dri/radeon/radeon_vtxfmt.c | 1093 - .../src/mesa/drivers/dri/radeon/radeon_vtxfmt.h | 120 - .../src/mesa/drivers/dri/radeon/radeon_vtxfmt_c.c | 922 - .../mesa/drivers/dri/radeon/radeon_vtxfmt_sse.c | 232 - .../mesa/drivers/dri/radeon/radeon_vtxfmt_x86.c | 437 - .../mesa/drivers/dri/radeon/radeon_vtxtmp_x86.S | 494 - .../src/mesa/drivers/dri/radeon/server/radeon.h | 202 - .../mesa/drivers/dri/radeon/server/radeon_dri.c | 1336 - .../mesa/drivers/dri/radeon/server/radeon_dri.h | 116 - .../mesa/drivers/dri/radeon/server/radeon_egl.c | 978 - .../mesa/drivers/dri/radeon/server/radeon_macros.h | 129 - .../mesa/drivers/dri/radeon/server/radeon_reg.h | 2142 -- .../extras/Mesa/src/mesa/drivers/dri/s3v/Makefile | 36 - .../Mesa/src/mesa/drivers/dri/s3v/s3v_common.h | 83 - .../Mesa/src/mesa/drivers/dri/s3v/s3v_context.c | 258 - .../Mesa/src/mesa/drivers/dri/s3v/s3v_context.h | 444 - .../extras/Mesa/src/mesa/drivers/dri/s3v/s3v_dd.c | 108 - .../extras/Mesa/src/mesa/drivers/dri/s3v/s3v_dri.h | 143 - .../Mesa/src/mesa/drivers/dri/s3v/s3v_inithw.c | 79 - .../Mesa/src/mesa/drivers/dri/s3v/s3v_lock.c | 62 - .../Mesa/src/mesa/drivers/dri/s3v/s3v_lock.h | 99 - .../Mesa/src/mesa/drivers/dri/s3v/s3v_macros.h | 229 - .../Mesa/src/mesa/drivers/dri/s3v/s3v_regs.h | 367 - .../Mesa/src/mesa/drivers/dri/s3v/s3v_render.c | 203 - .../Mesa/src/mesa/drivers/dri/s3v/s3v_screen.c | 99 - .../Mesa/src/mesa/drivers/dri/s3v/s3v_screen.h | 39 - .../Mesa/src/mesa/drivers/dri/s3v/s3v_span.c | 334 - .../Mesa/src/mesa/drivers/dri/s3v/s3v_state.c | 888 - .../extras/Mesa/src/mesa/drivers/dri/s3v/s3v_tex.c | 554 - .../extras/Mesa/src/mesa/drivers/dri/s3v/s3v_tex.h | 28 - .../Mesa/src/mesa/drivers/dri/s3v/s3v_texmem.c | 582 - .../Mesa/src/mesa/drivers/dri/s3v/s3v_texstate.c | 300 - .../Mesa/src/mesa/drivers/dri/s3v/s3v_tris.c | 850 - .../Mesa/src/mesa/drivers/dri/s3v/s3v_tris.h | 11 - .../Mesa/src/mesa/drivers/dri/s3v/s3v_tritmp.h | 958 - .../extras/Mesa/src/mesa/drivers/dri/s3v/s3v_vb.c | 339 - .../extras/Mesa/src/mesa/drivers/dri/s3v/s3v_vb.h | 39 - .../Mesa/src/mesa/drivers/dri/s3v/s3v_xmesa.c | 362 - .../Mesa/src/mesa/drivers/dri/s3v/s3virgetri.h | 383 - .../Mesa/src/mesa/drivers/dri/savage/Makefile | 30 - .../src/mesa/drivers/dri/savage/savage_3d_reg.h | 699 - .../Mesa/src/mesa/drivers/dri/savage/savage_bci.h | 612 - .../Mesa/src/mesa/drivers/dri/savage/savage_init.h | 168 - .../src/mesa/drivers/dri/savage/savage_xmesa.c | 1056 - .../src/mesa/drivers/dri/savage/savagecontext.h | 331 - .../Mesa/src/mesa/drivers/dri/savage/savagedd.c | 119 - .../Mesa/src/mesa/drivers/dri/savage/savagedd.h | 32 - .../Mesa/src/mesa/drivers/dri/savage/savageioctl.c | 657 - .../Mesa/src/mesa/drivers/dri/savage/savageioctl.h | 203 - .../src/mesa/drivers/dri/savage/savagerender.c | 370 - .../Mesa/src/mesa/drivers/dri/savage/savagespan.c | 343 - .../Mesa/src/mesa/drivers/dri/savage/savagespan.h | 137 - .../Mesa/src/mesa/drivers/dri/savage/savagestate.c | 1765 -- .../Mesa/src/mesa/drivers/dri/savage/savagestate.h | 41 - .../Mesa/src/mesa/drivers/dri/savage/savagetex.c | 2133 -- .../Mesa/src/mesa/drivers/dri/savage/savagetex.h | 83 - .../Mesa/src/mesa/drivers/dri/savage/savagetris.c | 1297 - .../Mesa/src/mesa/drivers/dri/savage/savagetris.h | 49 - .../mesa/drivers/dri/savage/server/savage_dri.h | 76 - .../extras/Mesa/src/mesa/drivers/dri/sis/Makefile | 35 - .../src/mesa/drivers/dri/sis/server/sis_common.h | 63 - .../Mesa/src/mesa/drivers/dri/sis/server/sis_dri.h | 85 - .../Mesa/src/mesa/drivers/dri/sis/sis_alloc.c | 243 - .../Mesa/src/mesa/drivers/dri/sis/sis_alloc.h | 44 - .../Mesa/src/mesa/drivers/dri/sis/sis_clear.c | 451 - .../Mesa/src/mesa/drivers/dri/sis/sis_common2.h | 140 - .../Mesa/src/mesa/drivers/dri/sis/sis_context.c | 523 - .../Mesa/src/mesa/drivers/dri/sis/sis_context.h | 440 - .../extras/Mesa/src/mesa/drivers/dri/sis/sis_dd.c | 181 - .../extras/Mesa/src/mesa/drivers/dri/sis/sis_dd.h | 39 - .../Mesa/src/mesa/drivers/dri/sis/sis_debug.c | 156 - .../Mesa/src/mesa/drivers/dri/sis/sis_debug.h | 45 - .../extras/Mesa/src/mesa/drivers/dri/sis/sis_fog.c | 190 - .../Mesa/src/mesa/drivers/dri/sis/sis_lock.c | 76 - .../Mesa/src/mesa/drivers/dri/sis/sis_lock.h | 87 - .../extras/Mesa/src/mesa/drivers/dri/sis/sis_reg.h | 868 - .../Mesa/src/mesa/drivers/dri/sis/sis_screen.c | 468 - .../Mesa/src/mesa/drivers/dri/sis/sis_screen.h | 62 - .../Mesa/src/mesa/drivers/dri/sis/sis_span.c | 237 - .../Mesa/src/mesa/drivers/dri/sis/sis_span.h | 46 - .../Mesa/src/mesa/drivers/dri/sis/sis_state.c | 853 - .../Mesa/src/mesa/drivers/dri/sis/sis_state.h | 54 - .../Mesa/src/mesa/drivers/dri/sis/sis_stencil.c | 185 - .../Mesa/src/mesa/drivers/dri/sis/sis_stencil.h | 37 - .../extras/Mesa/src/mesa/drivers/dri/sis/sis_tex.c | 484 - .../extras/Mesa/src/mesa/drivers/dri/sis/sis_tex.h | 38 - .../Mesa/src/mesa/drivers/dri/sis/sis_texstate.c | 672 - .../Mesa/src/mesa/drivers/dri/sis/sis_tris.c | 1071 - .../Mesa/src/mesa/drivers/dri/sis/sis_tris.h | 71 - .../Mesa/src/mesa/drivers/dri/sis/sis_tritmp.h | 70 - nx-X11/extras/Mesa/src/mesa/drivers/dri/tdfx/BUGS | 64 - .../extras/Mesa/src/mesa/drivers/dri/tdfx/Makefile | 37 - .../mesa/drivers/dri/tdfx/X86/fx_3dnow_fastpath.S | 84 - .../mesa/drivers/dri/tdfx/X86/fx_3dnow_fasttmp.h | 314 - .../Mesa/src/mesa/drivers/dri/tdfx/dri_glide.h | 60 - .../src/mesa/drivers/dri/tdfx/server/tdfx_dri.c | 471 - .../src/mesa/drivers/dri/tdfx/server/tdfx_dri.h | 28 - .../Mesa/src/mesa/drivers/dri/tdfx/tdfx_context.c | 1028 - .../Mesa/src/mesa/drivers/dri/tdfx/tdfx_context.h | 1007 - .../Mesa/src/mesa/drivers/dri/tdfx/tdfx_dd.c | 322 - .../Mesa/src/mesa/drivers/dri/tdfx/tdfx_dd.h | 45 - .../Mesa/src/mesa/drivers/dri/tdfx/tdfx_glide.h | 606 - .../Mesa/src/mesa/drivers/dri/tdfx/tdfx_lock.c | 90 - .../Mesa/src/mesa/drivers/dri/tdfx/tdfx_lock.h | 144 - .../Mesa/src/mesa/drivers/dri/tdfx/tdfx_pixels.c | 689 - .../Mesa/src/mesa/drivers/dri/tdfx/tdfx_pixels.h | 77 - .../Mesa/src/mesa/drivers/dri/tdfx/tdfx_render.c | 808 - .../Mesa/src/mesa/drivers/dri/tdfx/tdfx_render.h | 50 - .../Mesa/src/mesa/drivers/dri/tdfx/tdfx_screen.c | 492 - .../Mesa/src/mesa/drivers/dri/tdfx/tdfx_screen.h | 73 - .../Mesa/src/mesa/drivers/dri/tdfx/tdfx_span.c | 1427 - .../Mesa/src/mesa/drivers/dri/tdfx/tdfx_span.h | 49 - .../Mesa/src/mesa/drivers/dri/tdfx/tdfx_state.c | 1449 - .../Mesa/src/mesa/drivers/dri/tdfx/tdfx_state.h | 61 - .../Mesa/src/mesa/drivers/dri/tdfx/tdfx_tex.c | 1914 -- .../Mesa/src/mesa/drivers/dri/tdfx/tdfx_tex.h | 102 - .../Mesa/src/mesa/drivers/dri/tdfx/tdfx_texman.c | 994 - .../Mesa/src/mesa/drivers/dri/tdfx/tdfx_texman.h | 84 - .../Mesa/src/mesa/drivers/dri/tdfx/tdfx_texstate.c | 2209 -- .../Mesa/src/mesa/drivers/dri/tdfx/tdfx_texstate.h | 44 - .../Mesa/src/mesa/drivers/dri/tdfx/tdfx_tris.c | 1293 - .../Mesa/src/mesa/drivers/dri/tdfx/tdfx_tris.h | 42 - .../Mesa/src/mesa/drivers/dri/tdfx/tdfx_vb.c | 353 - .../Mesa/src/mesa/drivers/dri/tdfx/tdfx_vb.h | 69 - .../Mesa/src/mesa/drivers/dri/tdfx/tdfx_vbtmp.h | 266 - .../Mesa/src/mesa/drivers/dri/trident/Makefile | 26 - .../src/mesa/drivers/dri/trident/trident_context.c | 472 - .../src/mesa/drivers/dri/trident/trident_context.h | 242 - .../Mesa/src/mesa/drivers/dri/trident/trident_dd.c | 127 - .../src/mesa/drivers/dri/trident/trident_dri.h | 28 - .../src/mesa/drivers/dri/trident/trident_lock.h | 11 - .../src/mesa/drivers/dri/trident/trident_state.c | 555 - .../src/mesa/drivers/dri/trident/trident_tris.c | 1125 - .../Mesa/src/mesa/drivers/dri/trident/trident_vb.c | 434 - .../Mesa/src/mesa/drivers/dri/unichrome/Makefile | 32 - .../src/mesa/drivers/dri/unichrome/server/via.h | 11 - .../mesa/drivers/dri/unichrome/server/via_dri.c | 1252 - .../mesa/drivers/dri/unichrome/server/via_dri.h | 78 - .../mesa/drivers/dri/unichrome/server/via_driver.h | 309 - .../mesa/drivers/dri/unichrome/server/via_priv.h | 70 - .../mesa/drivers/dri/unichrome/server/via_regs.h | 197 - .../src/mesa/drivers/dri/unichrome/via_3d_reg.h | 1652 - .../src/mesa/drivers/dri/unichrome/via_context.c | 782 - .../src/mesa/drivers/dri/unichrome/via_context.h | 412 - .../src/mesa/drivers/dri/unichrome/via_drmclient.h | 29 - .../Mesa/src/mesa/drivers/dri/unichrome/via_fb.c | 243 - .../Mesa/src/mesa/drivers/dri/unichrome/via_fb.h | 42 - .../src/mesa/drivers/dri/unichrome/via_ioctl.c | 970 - .../src/mesa/drivers/dri/unichrome/via_ioctl.h | 135 - .../src/mesa/drivers/dri/unichrome/via_memcpy.c | 138 - .../src/mesa/drivers/dri/unichrome/via_render.c | 131 - .../src/mesa/drivers/dri/unichrome/via_screen.c | 491 - .../src/mesa/drivers/dri/unichrome/via_screen.h | 95 - .../Mesa/src/mesa/drivers/dri/unichrome/via_span.c | 289 - .../Mesa/src/mesa/drivers/dri/unichrome/via_span.h | 37 - .../src/mesa/drivers/dri/unichrome/via_state.c | 1550 - .../src/mesa/drivers/dri/unichrome/via_state.h | 39 - .../Mesa/src/mesa/drivers/dri/unichrome/via_tex.c | 970 - .../Mesa/src/mesa/drivers/dri/unichrome/via_tex.h | 41 - .../mesa/drivers/dri/unichrome/via_texcombine.c | 424 - .../Mesa/src/mesa/drivers/dri/unichrome/via_tris.c | 1190 - .../Mesa/src/mesa/drivers/dri/unichrome/via_tris.h | 35 - .../extras/Mesa/src/mesa/drivers/dri/x11/Makefile | 89 - .../extras/Mesa/src/mesa/drivers/dri/x11/x11_dri.c | 487 - .../extras/Mesa/src/mesa/drivers/dri/x11/x11_dri.h | 12 - .../extras/Mesa/src/mesa/drivers/fbdev/glfbdev.c | 861 - nx-X11/extras/Mesa/src/mesa/drivers/glide/fxapi.c | 951 - nx-X11/extras/Mesa/src/mesa/drivers/glide/fxdd.c | 2197 -- .../extras/Mesa/src/mesa/drivers/glide/fxddspan.c | 663 - .../extras/Mesa/src/mesa/drivers/glide/fxddtex.c | 1849 -- nx-X11/extras/Mesa/src/mesa/drivers/glide/fxdrv.h | 771 - nx-X11/extras/Mesa/src/mesa/drivers/glide/fxg.c | 2309 -- nx-X11/extras/Mesa/src/mesa/drivers/glide/fxg.h | 382 - .../extras/Mesa/src/mesa/drivers/glide/fxglidew.c | 269 - .../extras/Mesa/src/mesa/drivers/glide/fxglidew.h | 228 - .../extras/Mesa/src/mesa/drivers/glide/fxsetup.c | 2217 -- .../extras/Mesa/src/mesa/drivers/glide/fxsetup.h | 850 - .../extras/Mesa/src/mesa/drivers/glide/fxtexman.c | 874 - nx-X11/extras/Mesa/src/mesa/drivers/glide/fxtris.c | 1834 -- nx-X11/extras/Mesa/src/mesa/drivers/glide/fxvb.c | 838 - .../extras/Mesa/src/mesa/drivers/glide/fxvbtmp.h | 369 - .../Mesa/src/mesa/drivers/osmesa/Makefile.win | 39 - .../Mesa/src/mesa/drivers/osmesa/descrip.mms | 41 - .../extras/Mesa/src/mesa/drivers/osmesa/osmesa.c | 1333 - .../extras/Mesa/src/mesa/drivers/osmesa/osmesa.def | 13 - .../extras/Mesa/src/mesa/drivers/x11/descrip.mms | 51 - nx-X11/extras/Mesa/src/mesa/drivers/x11/fakeglx.c | 2886 -- nx-X11/extras/Mesa/src/mesa/drivers/x11/glxapi.c | 1348 - nx-X11/extras/Mesa/src/mesa/drivers/x11/glxapi.h | 223 - nx-X11/extras/Mesa/src/mesa/drivers/x11/realglx.c | 180 - nx-X11/extras/Mesa/src/mesa/drivers/x11/realglx.h | 326 - nx-X11/extras/Mesa/src/mesa/drivers/x11/xfonts.c | 377 - nx-X11/extras/Mesa/src/mesa/drivers/x11/xfonts.h | 41 - nx-X11/extras/Mesa/src/mesa/glapi/.cvsignore | 11 - .../Mesa/src/mesa/glapi/EXT_framebuffer_object.xml | 188 - nx-X11/extras/Mesa/src/mesa/glapi/Makefile | 70 - nx-X11/extras/Mesa/src/mesa/glapi/descrip.mms | 37 - .../extras/Mesa/src/mesa/glapi/extension_helper.py | 316 - nx-X11/extras/Mesa/src/mesa/glapi/glX_XML.py | 531 - nx-X11/extras/Mesa/src/mesa/glapi/glX_doc.py | 280 - .../extras/Mesa/src/mesa/glapi/glX_proto_common.py | 95 - .../extras/Mesa/src/mesa/glapi/glX_proto_send.py | 1044 - .../extras/Mesa/src/mesa/glapi/glX_proto_size.py | 705 - nx-X11/extras/Mesa/src/mesa/glapi/gl_API.dtd | 134 - nx-X11/extras/Mesa/src/mesa/glapi/gl_API.xml | 11485 ------- nx-X11/extras/Mesa/src/mesa/glapi/gl_SPARC_asm.py | 135 - nx-X11/extras/Mesa/src/mesa/glapi/gl_XML.py | 813 - nx-X11/extras/Mesa/src/mesa/glapi/gl_apitemp.py | 216 - nx-X11/extras/Mesa/src/mesa/glapi/gl_enums.py | 217 - nx-X11/extras/Mesa/src/mesa/glapi/gl_offsets.py | 105 - nx-X11/extras/Mesa/src/mesa/glapi/gl_procs.py | 155 - nx-X11/extras/Mesa/src/mesa/glapi/gl_table.py | 194 - nx-X11/extras/Mesa/src/mesa/glapi/gl_x86-64_asm.py | 316 - nx-X11/extras/Mesa/src/mesa/glapi/gl_x86_asm.py | 240 - nx-X11/extras/Mesa/src/mesa/glapi/license.py | 47 - nx-X11/extras/Mesa/src/mesa/glapi/mesadef.py | 223 - .../Mesa/src/mesa/glapi/next_available_offset.sh | 39 - nx-X11/extras/Mesa/src/mesa/glapi/typeexpr.py | 288 - nx-X11/extras/Mesa/src/mesa/main/Imakefile | 129 - nx-X11/extras/Mesa/src/mesa/main/KNOWN_BUGS | 21 - nx-X11/extras/Mesa/src/mesa/main/Makefile.ugl | 364 - nx-X11/extras/Mesa/src/mesa/main/Makefile.win | 208 - .../Mesa/src/mesa/main/WSDrawBuffer.h.NX.original | 24 - .../Mesa/src/mesa/main/context.c.NX.original | 1818 -- .../extras/Mesa/src/mesa/main/context.c.X.original | 1750 -- nx-X11/extras/Mesa/src/mesa/main/descrip.mms | 210 - nx-X11/extras/Mesa/src/mesa/main/get_gen.py | 1200 - nx-X11/extras/Mesa/src/mesa/main/mesa.def | 491 - nx-X11/extras/Mesa/src/mesa/main/vsnprintf.c | 165 - nx-X11/extras/Mesa/src/mesa/math/descrip.mms | 45 - nx-X11/extras/Mesa/src/mesa/ppc/common_ppc.c | 88 - .../extras/Mesa/src/mesa/ppc/common_ppc_features.h | 51 - nx-X11/extras/Mesa/src/mesa/shader/arbprogram.syn | 2786 -- nx-X11/extras/Mesa/src/mesa/shader/asmopcodes.reg | 78 - nx-X11/extras/Mesa/src/mesa/shader/descrip.mms | 83 - .../Mesa/src/mesa/shader/grammar/descrip.mms | 41 - .../Mesa/src/mesa/shader/grammar/grammar.syn | 567 - .../Mesa/src/mesa/shader/grammar/grammar_crt.c | 64 - .../Mesa/src/mesa/shader/grammar/grammar_crt.h | 20 - .../Mesa/src/mesa/shader/slang/Include/BaseTypes.h | 133 - .../Mesa/src/mesa/shader/slang/Include/Common.h | 288 - .../src/mesa/shader/slang/Include/ConstantUnion.h | 50 - .../Mesa/src/mesa/shader/slang/Include/InfoSink.h | 135 - .../mesa/shader/slang/Include/InitializeGlobals.h | 43 - .../shader/slang/Include/InitializeParseContext.h | 44 - .../Mesa/src/mesa/shader/slang/Include/PoolAlloc.h | 346 - .../src/mesa/shader/slang/Include/ResourceLimits.h | 61 - .../Mesa/src/mesa/shader/slang/Include/ShHandle.h | 177 - .../Mesa/src/mesa/shader/slang/Include/Types.h | 297 - .../src/mesa/shader/slang/Include/intermediate.h | 516 - .../slang/MachineIndependent/Gen_glslang.cpp | 2942 -- .../slang/MachineIndependent/Gen_glslang_tab.cpp | 4354 --- .../shader/slang/MachineIndependent/InfoSink.cpp | 107 - .../shader/slang/MachineIndependent/Initialize.cpp | 948 - .../shader/slang/MachineIndependent/Initialize.h | 58 - .../slang/MachineIndependent/IntermTraverse.cpp | 243 - .../slang/MachineIndependent/Intermediate.cpp | 2110 -- .../mesa/shader/slang/MachineIndependent/MMap.h | 84 - .../slang/MachineIndependent/ParseHelper.cpp | 1452 - .../shader/slang/MachineIndependent/ParseHelper.h | 143 - .../shader/slang/MachineIndependent/PoolAlloc.cpp | 349 - .../slang/MachineIndependent/QualifierAlive.cpp | 91 - .../slang/MachineIndependent/QualifierAlive.h | 35 - .../shader/slang/MachineIndependent/RemoveTree.cpp | 98 - .../shader/slang/MachineIndependent/RemoveTree.h | 35 - .../shader/slang/MachineIndependent/ShaderLang.cpp | 607 - .../slang/MachineIndependent/SymbolTable.cpp | 235 - .../shader/slang/MachineIndependent/SymbolTable.h | 320 - .../mesa/shader/slang/MachineIndependent/glslang.l | 614 - .../mesa/shader/slang/MachineIndependent/glslang.y | 2009 -- .../shader/slang/MachineIndependent/glslang_tab.h | 260 - .../shader/slang/MachineIndependent/intermOut.cpp | 496 - .../slang/MachineIndependent/localintermediate.h | 91 - .../shader/slang/MachineIndependent/parseConst.cpp | 344 - .../slang/MachineIndependent/preprocessor/atom.c | 768 - .../slang/MachineIndependent/preprocessor/atom.h | 96 - .../MachineIndependent/preprocessor/compile.h | 132 - .../slang/MachineIndependent/preprocessor/cpp.c | 1037 - .../slang/MachineIndependent/preprocessor/cpp.h | 119 - .../preprocessor/cpp_comment_fix.c | 76 - .../MachineIndependent/preprocessor/cppstruct.c | 185 - .../slang/MachineIndependent/preprocessor/memory.c | 191 - .../slang/MachineIndependent/preprocessor/memory.h | 89 - .../slang/MachineIndependent/preprocessor/parser.h | 126 - .../MachineIndependent/preprocessor/preprocess.h | 84 - .../MachineIndependent/preprocessor/scanner.c | 789 - .../MachineIndependent/preprocessor/scanner.h | 118 - .../MachineIndependent/preprocessor/slglobals.h | 115 - .../MachineIndependent/preprocessor/symbols.c | 318 - .../MachineIndependent/preprocessor/symbols.h | 145 - .../slang/MachineIndependent/preprocessor/tokens.c | 462 - .../slang/MachineIndependent/preprocessor/tokens.h | 122 - .../mesa/shader/slang/MachineIndependent/unistd.h | 1 - .../slang/OGLCompilersDLL/Initialisation.cpp | 151 - .../shader/slang/OGLCompilersDLL/Initialisation.h | 47 - .../shader/slang/OSDependent/Linux/osinclude.h | 78 - .../shader/slang/OSDependent/Linux/ossource.cpp | 140 - .../shader/slang/OSDependent/Windows/osinclude.h | 68 - .../shader/slang/OSDependent/Windows/ossource.cpp | 119 - .../Mesa/src/mesa/shader/slang/Public/ShaderLang.h | 212 - .../src/mesa/shader/slang/Public/ShaderLangExt.h | 57 - .../extras/Mesa/src/mesa/shader/slang/descrip.mms | 52 - .../Mesa/src/mesa/shader/slang/library/gc_to_bin.c | 79 - .../src/mesa/shader/slang/library/gc_to_string.py | 55 - .../shader/slang/library/slang_common_builtin.gc | 1410 - .../src/mesa/shader/slang/library/slang_core.gc | 1565 - .../shader/slang/library/slang_fragment_builtin.gc | 366 - .../src/mesa/shader/slang/library/slang_shader.syn | 1508 - .../mesa/shader/slang/library/slang_version.syn | 118 - .../shader/slang/library/slang_vertex_builtin.gc | 262 - .../Mesa/src/mesa/shader/slang/slang_mesa.cpp | 144 - .../extras/Mesa/src/mesa/shader/slang/slang_mesa.h | 36 - nx-X11/extras/Mesa/src/mesa/sources | 335 - nx-X11/extras/Mesa/src/mesa/sparc/clip.S | 243 - nx-X11/extras/Mesa/src/mesa/sparc/glapi_sparc.S | 1884 -- nx-X11/extras/Mesa/src/mesa/sparc/norm.S | 609 - nx-X11/extras/Mesa/src/mesa/sparc/sparc.c | 177 - nx-X11/extras/Mesa/src/mesa/sparc/sparc.h | 38 - nx-X11/extras/Mesa/src/mesa/sparc/sparc_matrix.h | 170 - nx-X11/extras/Mesa/src/mesa/sparc/xform.S | 1393 - nx-X11/extras/Mesa/src/mesa/swrast/NOTES | 55 - nx-X11/extras/Mesa/src/mesa/swrast/descrip.mms | 76 - .../extras/Mesa/src/mesa/swrast/s_fragprog_to_c.c | 822 - nx-X11/extras/Mesa/src/mesa/swrast/s_tcc.c | 189 - nx-X11/extras/Mesa/src/mesa/swrast_setup/NOTES | 65 - .../extras/Mesa/src/mesa/swrast_setup/descrip.mms | 39 - nx-X11/extras/Mesa/src/mesa/swrast_setup/ss_vb.h | 38 - nx-X11/extras/Mesa/src/mesa/tnl/NOTES | 102 - nx-X11/extras/Mesa/src/mesa/tnl/descrip.mms | 74 - nx-X11/extras/Mesa/src/mesa/tnl_dd/imm/NOTES.imm | 112 - .../Mesa/src/mesa/tnl_dd/imm/t_dd_imm_capi.h | 419 - .../Mesa/src/mesa/tnl_dd/imm/t_dd_imm_napi.h | 226 - .../Mesa/src/mesa/tnl_dd/imm/t_dd_imm_primtmp.h | 570 - .../Mesa/src/mesa/tnl_dd/imm/t_dd_imm_tapi.h | 75 - .../Mesa/src/mesa/tnl_dd/imm/t_dd_imm_vapi.h | 159 - .../extras/Mesa/src/mesa/tnl_dd/imm/t_dd_imm_vb.c | 204 - .../Mesa/src/mesa/tnl_dd/imm/t_dd_imm_vbtmp.h | 268 - nx-X11/extras/Mesa/src/mesa/tnl_dd/t_dd.c | 58 - nx-X11/extras/Mesa/src/mesa/tnl_dd/t_dd_dmatmp.h | 1254 - nx-X11/extras/Mesa/src/mesa/tnl_dd/t_dd_dmatmp2.h | 914 - .../extras/Mesa/src/mesa/tnl_dd/t_dd_rendertmp.h | 434 - nx-X11/extras/Mesa/src/mesa/tnl_dd/t_dd_triemit.h | 164 - nx-X11/extras/Mesa/src/mesa/tnl_dd/t_dd_tritmp.h | 833 - nx-X11/extras/Mesa/src/mesa/tnl_dd/t_dd_unfilled.h | 212 - nx-X11/extras/Mesa/src/mesa/tnl_dd/t_dd_vb.c | 344 - nx-X11/extras/Mesa/src/mesa/tnl_dd/t_dd_vbtmp.h | 675 - nx-X11/extras/Mesa/src/mesa/tnl_dd/t_dd_vertex.h | 78 - nx-X11/extras/Mesa/src/mesa/x86-64/Makefile | 29 - .../Mesa/src/mesa/x86-64/calling_convention.txt | 50 - nx-X11/extras/Mesa/src/mesa/x86-64/glapi_x86-64.S | 31002 ------------------- nx-X11/extras/Mesa/src/mesa/x86-64/x86-64.c | 115 - nx-X11/extras/Mesa/src/mesa/x86-64/x86-64.h | 32 - nx-X11/extras/Mesa/src/mesa/x86-64/xform4.S | 458 - nx-X11/extras/Mesa/src/mesa/x86/3dnow.c | 92 - nx-X11/extras/Mesa/src/mesa/x86/3dnow.h | 39 - nx-X11/extras/Mesa/src/mesa/x86/3dnow_normal.S | 848 - nx-X11/extras/Mesa/src/mesa/x86/3dnow_xform1.S | 433 - nx-X11/extras/Mesa/src/mesa/x86/3dnow_xform2.S | 473 - nx-X11/extras/Mesa/src/mesa/x86/3dnow_xform3.S | 557 - nx-X11/extras/Mesa/src/mesa/x86/3dnow_xform4.S | 566 - nx-X11/extras/Mesa/src/mesa/x86/Makefile | 46 - nx-X11/extras/Mesa/src/mesa/x86/assyntax.h | 1746 -- nx-X11/extras/Mesa/src/mesa/x86/clip_args.h | 60 - nx-X11/extras/Mesa/src/mesa/x86/common_x86.c | 448 - nx-X11/extras/Mesa/src/mesa/x86/common_x86_asm.S | 215 - nx-X11/extras/Mesa/src/mesa/x86/common_x86_asm.h | 60 - .../extras/Mesa/src/mesa/x86/common_x86_features.h | 68 - .../extras/Mesa/src/mesa/x86/common_x86_macros.h | 107 - nx-X11/extras/Mesa/src/mesa/x86/gen_matypes.c | 251 - nx-X11/extras/Mesa/src/mesa/x86/glapi_x86.S | 1155 - nx-X11/extras/Mesa/src/mesa/x86/mmx.h | 51 - nx-X11/extras/Mesa/src/mesa/x86/mmx_blend.S | 366 - nx-X11/extras/Mesa/src/mesa/x86/mmx_blendtmp.h | 114 - nx-X11/extras/Mesa/src/mesa/x86/norm_args.h | 58 - .../extras/Mesa/src/mesa/x86/read_rgba_span_x86.S | 689 - .../extras/Mesa/src/mesa/x86/read_rgba_span_x86.h | 56 - nx-X11/extras/Mesa/src/mesa/x86/rtasm/x86sse.c | 997 - nx-X11/extras/Mesa/src/mesa/x86/rtasm/x86sse.h | 223 - nx-X11/extras/Mesa/src/mesa/x86/sse.c | 123 - nx-X11/extras/Mesa/src/mesa/x86/sse.h | 39 - nx-X11/extras/Mesa/src/mesa/x86/sse_normal.S | 257 - nx-X11/extras/Mesa/src/mesa/x86/sse_xform1.S | 442 - nx-X11/extras/Mesa/src/mesa/x86/sse_xform2.S | 461 - nx-X11/extras/Mesa/src/mesa/x86/sse_xform3.S | 507 - nx-X11/extras/Mesa/src/mesa/x86/sse_xform4.S | 231 - nx-X11/extras/Mesa/src/mesa/x86/x86.c | 96 - nx-X11/extras/Mesa/src/mesa/x86/x86.h | 36 - nx-X11/extras/Mesa/src/mesa/x86/x86_cliptest.S | 403 - nx-X11/extras/Mesa/src/mesa/x86/x86_xform2.S | 570 - nx-X11/extras/Mesa/src/mesa/x86/x86_xform3.S | 640 - nx-X11/extras/Mesa/src/mesa/x86/x86_xform4.S | 673 - nx-X11/extras/Mesa/src/mesa/x86/xform_args.h | 52 - nx-X11/extras/Mesa/vms/analyze_map.com | 148 - nx-X11/extras/Mesa/vms/xlib.opt | 2 - nx-X11/extras/Mesa/vms/xlib_share.opt | 7 - nx-X11/extras/Mesa/windows/VC6/mesa/gdi/gdi.dsp | 141 - .../Mesa/windows/VC6/mesa/glu/compileDebug.txt | 82 - .../Mesa/windows/VC6/mesa/glu/compileRelease.txt | 82 - nx-X11/extras/Mesa/windows/VC6/mesa/glu/glu.dsp | 985 - .../Mesa/windows/VC6/mesa/glu/objectsDebug.txt | 73 - .../Mesa/windows/VC6/mesa/glu/objectsRelease.txt | 73 - nx-X11/extras/Mesa/windows/VC6/mesa/mesa.dsw | 74 - nx-X11/extras/Mesa/windows/VC6/mesa/mesa/mesa.dsp | 1350 - .../extras/Mesa/windows/VC6/mesa/osmesa/osmesa.dsp | 125 - .../extras/Mesa/windows/VC6/progs/demos/gears.dsp | 114 - nx-X11/extras/Mesa/windows/VC6/progs/glut/glut.dsp | 333 - nx-X11/extras/Mesa/windows/VC6/progs/progs.dsw | 41 - nx-X11/extras/Mesa/windows/VC7/mesa/gdi/gdi.vcproj | 181 - nx-X11/extras/Mesa/windows/VC7/mesa/glu/glu.vcproj | 752 - nx-X11/extras/Mesa/windows/VC7/mesa/mesa.sln | 41 - .../extras/Mesa/windows/VC7/mesa/mesa/mesa.vcproj | 1084 - .../Mesa/windows/VC7/mesa/osmesa/osmesa.vcproj | 168 - .../Mesa/windows/VC7/progs/demos/gears.vcproj | 154 - .../extras/Mesa/windows/VC7/progs/glut/glut.vcproj | 322 - nx-X11/extras/Mesa/windows/VC7/progs/progs.sln | 27 - 1104 files changed, 447615 deletions(-) delete mode 100644 nx-X11/extras/Mesa/Makefile delete mode 100644 nx-X11/extras/Mesa/Makefile.DJ delete mode 100644 nx-X11/extras/Mesa/Makefile.mgw delete mode 100644 nx-X11/extras/Mesa/README.XF86 delete mode 100644 nx-X11/extras/Mesa/XOrg-Xlist delete mode 100755 nx-X11/extras/Mesa/bin/installmesa delete mode 100755 nx-X11/extras/Mesa/bin/mklib delete mode 100644 nx-X11/extras/Mesa/configs/aix delete mode 100644 nx-X11/extras/Mesa/configs/aix-64 delete mode 100644 nx-X11/extras/Mesa/configs/aix-gcc delete mode 100644 nx-X11/extras/Mesa/configs/aix-static delete mode 100644 nx-X11/extras/Mesa/configs/beos delete mode 100644 nx-X11/extras/Mesa/configs/darwin delete mode 100644 nx-X11/extras/Mesa/configs/darwin-static delete mode 100644 nx-X11/extras/Mesa/configs/default delete mode 100644 nx-X11/extras/Mesa/configs/freebsd delete mode 100644 nx-X11/extras/Mesa/configs/freebsd-dri delete mode 100644 nx-X11/extras/Mesa/configs/freebsd-dri-amd64 delete mode 100644 nx-X11/extras/Mesa/configs/freebsd-dri-x86 delete mode 100644 nx-X11/extras/Mesa/configs/hpux10 delete mode 100644 nx-X11/extras/Mesa/configs/hpux10-gcc delete mode 100644 nx-X11/extras/Mesa/configs/hpux10-static delete mode 100644 nx-X11/extras/Mesa/configs/hpux11-32 delete mode 100644 nx-X11/extras/Mesa/configs/hpux11-32-static delete mode 100644 nx-X11/extras/Mesa/configs/hpux11-32-static-nothreads delete mode 100644 nx-X11/extras/Mesa/configs/hpux11-64 delete mode 100644 nx-X11/extras/Mesa/configs/hpux11-64-static delete mode 100644 nx-X11/extras/Mesa/configs/hpux9 delete mode 100644 nx-X11/extras/Mesa/configs/hpux9-gcc delete mode 100644 nx-X11/extras/Mesa/configs/irix6-64 delete mode 100644 nx-X11/extras/Mesa/configs/irix6-64-static delete mode 100644 nx-X11/extras/Mesa/configs/irix6-n32 delete mode 100644 nx-X11/extras/Mesa/configs/irix6-n32-static delete mode 100644 nx-X11/extras/Mesa/configs/irix6-o32 delete mode 100644 nx-X11/extras/Mesa/configs/irix6-o32-static delete mode 100644 nx-X11/extras/Mesa/configs/linux delete mode 100644 nx-X11/extras/Mesa/configs/linux-alpha delete mode 100644 nx-X11/extras/Mesa/configs/linux-alpha-static delete mode 100644 nx-X11/extras/Mesa/configs/linux-debug delete mode 100644 nx-X11/extras/Mesa/configs/linux-directfb delete mode 100644 nx-X11/extras/Mesa/configs/linux-dri delete mode 100644 nx-X11/extras/Mesa/configs/linux-dri-ppc delete mode 100644 nx-X11/extras/Mesa/configs/linux-dri-x86 delete mode 100644 nx-X11/extras/Mesa/configs/linux-dri-x86-64 delete mode 100644 nx-X11/extras/Mesa/configs/linux-fbdev delete mode 100644 nx-X11/extras/Mesa/configs/linux-glide delete mode 100644 nx-X11/extras/Mesa/configs/linux-icc delete mode 100644 nx-X11/extras/Mesa/configs/linux-icc-static delete mode 100644 nx-X11/extras/Mesa/configs/linux-indirect delete mode 100644 nx-X11/extras/Mesa/configs/linux-osmesa16 delete mode 100644 nx-X11/extras/Mesa/configs/linux-osmesa16-static delete mode 100644 nx-X11/extras/Mesa/configs/linux-osmesa32 delete mode 100644 nx-X11/extras/Mesa/configs/linux-ppc delete mode 100644 nx-X11/extras/Mesa/configs/linux-ppc-static delete mode 100644 nx-X11/extras/Mesa/configs/linux-profile delete mode 100644 nx-X11/extras/Mesa/configs/linux-solo delete mode 100644 nx-X11/extras/Mesa/configs/linux-solo-ia64 delete mode 100644 nx-X11/extras/Mesa/configs/linux-solo-x86 delete mode 100644 nx-X11/extras/Mesa/configs/linux-sparc delete mode 100644 nx-X11/extras/Mesa/configs/linux-sparc5 delete mode 100644 nx-X11/extras/Mesa/configs/linux-static delete mode 100644 nx-X11/extras/Mesa/configs/linux-tcc delete mode 100644 nx-X11/extras/Mesa/configs/linux-ultrasparc delete mode 100644 nx-X11/extras/Mesa/configs/linux-x86 delete mode 100644 nx-X11/extras/Mesa/configs/linux-x86-32 delete mode 100644 nx-X11/extras/Mesa/configs/linux-x86-64 delete mode 100644 nx-X11/extras/Mesa/configs/linux-x86-64-debug delete mode 100644 nx-X11/extras/Mesa/configs/linux-x86-64-static delete mode 100644 nx-X11/extras/Mesa/configs/linux-x86-debug delete mode 100644 nx-X11/extras/Mesa/configs/linux-x86-glide delete mode 100644 nx-X11/extras/Mesa/configs/linux-x86-static delete mode 100644 nx-X11/extras/Mesa/configs/linux-x86-xcb delete mode 100644 nx-X11/extras/Mesa/configs/netbsd delete mode 100644 nx-X11/extras/Mesa/configs/openbsd delete mode 100644 nx-X11/extras/Mesa/configs/osf1 delete mode 100644 nx-X11/extras/Mesa/configs/solaris-x86 delete mode 100644 nx-X11/extras/Mesa/configs/solaris-x86-gcc delete mode 100644 nx-X11/extras/Mesa/configs/sunos4 delete mode 100644 nx-X11/extras/Mesa/configs/sunos4-gcc delete mode 100644 nx-X11/extras/Mesa/configs/sunos4-static delete mode 100644 nx-X11/extras/Mesa/configs/sunos5 delete mode 100644 nx-X11/extras/Mesa/configs/sunos5-gcc delete mode 100644 nx-X11/extras/Mesa/configs/sunos5-smp delete mode 100644 nx-X11/extras/Mesa/configs/ultrix-gcc delete mode 100644 nx-X11/extras/Mesa/descrip.mms delete mode 100644 nx-X11/extras/Mesa/docs/COPYING delete mode 100644 nx-X11/extras/Mesa/docs/MESA_agp_offset.spec delete mode 100644 nx-X11/extras/Mesa/docs/MESA_copy_sub_buffer.spec delete mode 100644 nx-X11/extras/Mesa/docs/MESA_pack_invert.spec delete mode 100644 nx-X11/extras/Mesa/docs/MESA_packed_depth_stencil.spec delete mode 100644 nx-X11/extras/Mesa/docs/MESA_pixmap_colormap.spec delete mode 100644 nx-X11/extras/Mesa/docs/MESA_program_debug.spec delete mode 100644 nx-X11/extras/Mesa/docs/MESA_release_buffers.spec delete mode 100644 nx-X11/extras/Mesa/docs/MESA_resize_buffers.spec delete mode 100644 nx-X11/extras/Mesa/docs/MESA_set_3dfx_mode.spec delete mode 100644 nx-X11/extras/Mesa/docs/MESA_sprite_point.spec delete mode 100644 nx-X11/extras/Mesa/docs/MESA_swap_control.spec delete mode 100644 nx-X11/extras/Mesa/docs/MESA_swap_frame_usage.spec delete mode 100644 nx-X11/extras/Mesa/docs/MESA_trace.spec delete mode 100644 nx-X11/extras/Mesa/docs/MESA_window_pos.spec delete mode 100644 nx-X11/extras/Mesa/docs/MESA_ycbcr_texture.spec delete mode 100644 nx-X11/extras/Mesa/docs/MiniGLX.html delete mode 100644 nx-X11/extras/Mesa/docs/README.3DFX delete mode 100644 nx-X11/extras/Mesa/docs/README.AMIWIN delete mode 100644 nx-X11/extras/Mesa/docs/README.BEOS delete mode 100644 nx-X11/extras/Mesa/docs/README.CYGWIN delete mode 100644 nx-X11/extras/Mesa/docs/README.D3D delete mode 100644 nx-X11/extras/Mesa/docs/README.DJ delete mode 100644 nx-X11/extras/Mesa/docs/README.GGI delete mode 100644 nx-X11/extras/Mesa/docs/README.LYNXOS delete mode 100644 nx-X11/extras/Mesa/docs/README.MINGW32 delete mode 100644 nx-X11/extras/Mesa/docs/README.MITS delete mode 100644 nx-X11/extras/Mesa/docs/README.NeXT delete mode 100644 nx-X11/extras/Mesa/docs/README.OS2 delete mode 100644 nx-X11/extras/Mesa/docs/README.OpenStep delete mode 100644 nx-X11/extras/Mesa/docs/README.QUAKE delete mode 100644 nx-X11/extras/Mesa/docs/README.THREADS delete mode 100644 nx-X11/extras/Mesa/docs/README.VMS delete mode 100644 nx-X11/extras/Mesa/docs/README.WIN32 delete mode 100644 nx-X11/extras/Mesa/docs/README.WINDML delete mode 100644 nx-X11/extras/Mesa/docs/README.X11 delete mode 100644 nx-X11/extras/Mesa/docs/README.directfb delete mode 100644 nx-X11/extras/Mesa/docs/RELNOTES-3.1 delete mode 100644 nx-X11/extras/Mesa/docs/RELNOTES-3.2 delete mode 100644 nx-X11/extras/Mesa/docs/RELNOTES-3.2.1 delete mode 100644 nx-X11/extras/Mesa/docs/RELNOTES-3.3 delete mode 100644 nx-X11/extras/Mesa/docs/RELNOTES-3.4 delete mode 100644 nx-X11/extras/Mesa/docs/RELNOTES-3.4.1 delete mode 100644 nx-X11/extras/Mesa/docs/RELNOTES-3.4.2 delete mode 100644 nx-X11/extras/Mesa/docs/RELNOTES-3.5 delete mode 100644 nx-X11/extras/Mesa/docs/RELNOTES-4.0 delete mode 100644 nx-X11/extras/Mesa/docs/RELNOTES-4.0.1 delete mode 100644 nx-X11/extras/Mesa/docs/RELNOTES-4.0.2 delete mode 100644 nx-X11/extras/Mesa/docs/RELNOTES-4.0.3 delete mode 100644 nx-X11/extras/Mesa/docs/RELNOTES-4.1 delete mode 100644 nx-X11/extras/Mesa/docs/RELNOTES-5.0 delete mode 100644 nx-X11/extras/Mesa/docs/RELNOTES-5.0.1 delete mode 100644 nx-X11/extras/Mesa/docs/RELNOTES-5.0.2 delete mode 100644 nx-X11/extras/Mesa/docs/RELNOTES-5.1 delete mode 100644 nx-X11/extras/Mesa/docs/RELNOTES-6.0 delete mode 100644 nx-X11/extras/Mesa/docs/RELNOTES-6.0.1 delete mode 100644 nx-X11/extras/Mesa/docs/RELNOTES-6.1 delete mode 100644 nx-X11/extras/Mesa/docs/RELNOTES-6.2 delete mode 100644 nx-X11/extras/Mesa/docs/RELNOTES-6.2.1 delete mode 100644 nx-X11/extras/Mesa/docs/RELNOTES-6.3 delete mode 100644 nx-X11/extras/Mesa/docs/RELNOTES-6.3.1 delete mode 100644 nx-X11/extras/Mesa/docs/RELNOTES-6.3.2 delete mode 100644 nx-X11/extras/Mesa/docs/RELNOTES-6.4 delete mode 100644 nx-X11/extras/Mesa/docs/RELNOTES-6.4.1 delete mode 100644 nx-X11/extras/Mesa/docs/VERSIONS delete mode 100644 nx-X11/extras/Mesa/docs/banner.html delete mode 100644 nx-X11/extras/Mesa/docs/bugs.html delete mode 100644 nx-X11/extras/Mesa/docs/conform.html delete mode 100644 nx-X11/extras/Mesa/docs/contents.html delete mode 100644 nx-X11/extras/Mesa/docs/custom.html delete mode 100644 nx-X11/extras/Mesa/docs/cvs_access.html delete mode 100644 nx-X11/extras/Mesa/docs/cvs_branches.html delete mode 100644 nx-X11/extras/Mesa/docs/debugging.html delete mode 100644 nx-X11/extras/Mesa/docs/demos.html delete mode 100644 nx-X11/extras/Mesa/docs/devinfo.html delete mode 100644 nx-X11/extras/Mesa/docs/download.html delete mode 100644 nx-X11/extras/Mesa/docs/enums.txt delete mode 100644 nx-X11/extras/Mesa/docs/envvars.html delete mode 100644 nx-X11/extras/Mesa/docs/extensions.html delete mode 100644 nx-X11/extras/Mesa/docs/faq.html delete mode 100644 nx-X11/extras/Mesa/docs/fbdev-dri.html delete mode 100644 nx-X11/extras/Mesa/docs/games.html delete mode 100644 nx-X11/extras/Mesa/docs/gears.png delete mode 100644 nx-X11/extras/Mesa/docs/glfbdev-driver.html delete mode 100644 nx-X11/extras/Mesa/docs/glu.html delete mode 100644 nx-X11/extras/Mesa/docs/helpwanted.html delete mode 100644 nx-X11/extras/Mesa/docs/index.html delete mode 100644 nx-X11/extras/Mesa/docs/install.html delete mode 100644 nx-X11/extras/Mesa/docs/intro.html delete mode 100644 nx-X11/extras/Mesa/docs/libraries.html delete mode 100644 nx-X11/extras/Mesa/docs/license.html delete mode 100644 nx-X11/extras/Mesa/docs/lists.html delete mode 100644 nx-X11/extras/Mesa/docs/mangling.html delete mode 100644 nx-X11/extras/Mesa/docs/mesa.css delete mode 100644 nx-X11/extras/Mesa/docs/modelers.html delete mode 100644 nx-X11/extras/Mesa/docs/news.html delete mode 100644 nx-X11/extras/Mesa/docs/osmesa.html delete mode 100644 nx-X11/extras/Mesa/docs/pbuffers.html delete mode 100644 nx-X11/extras/Mesa/docs/perf.html delete mode 100644 nx-X11/extras/Mesa/docs/precompiled.html delete mode 100644 nx-X11/extras/Mesa/docs/relnotes.html delete mode 100644 nx-X11/extras/Mesa/docs/science.html delete mode 100644 nx-X11/extras/Mesa/docs/sourcedocs.html delete mode 100644 nx-X11/extras/Mesa/docs/subset-A.html delete mode 100644 nx-X11/extras/Mesa/docs/subset.html delete mode 100644 nx-X11/extras/Mesa/docs/systems.html delete mode 100644 nx-X11/extras/Mesa/docs/thanks.html delete mode 100644 nx-X11/extras/Mesa/docs/utilities.html delete mode 100644 nx-X11/extras/Mesa/docs/utility.html delete mode 100644 nx-X11/extras/Mesa/docs/webmaster.html delete mode 100644 nx-X11/extras/Mesa/include/GL/Makefile.am delete mode 100644 nx-X11/extras/Mesa/include/GL/amesa.h delete mode 100644 nx-X11/extras/Mesa/include/GL/directfbgl.h delete mode 100644 nx-X11/extras/Mesa/include/GL/dmesa.h delete mode 100644 nx-X11/extras/Mesa/include/GL/foomesa.h delete mode 100644 nx-X11/extras/Mesa/include/GL/fxmesa.h delete mode 100644 nx-X11/extras/Mesa/include/GL/ggimesa.h delete mode 100644 nx-X11/extras/Mesa/include/GL/gl_mangle.h delete mode 100644 nx-X11/extras/Mesa/include/GL/glfbdev.h delete mode 100644 nx-X11/extras/Mesa/include/GL/glu.h delete mode 100644 nx-X11/extras/Mesa/include/GL/glu_mangle.h delete mode 100644 nx-X11/extras/Mesa/include/GL/glut.h delete mode 100644 nx-X11/extras/Mesa/include/GL/glut_h.dja delete mode 100644 nx-X11/extras/Mesa/include/GL/glutf90.h delete mode 100644 nx-X11/extras/Mesa/include/GL/glx.h delete mode 100644 nx-X11/extras/Mesa/include/GL/glx_mangle.h delete mode 100644 nx-X11/extras/Mesa/include/GL/internal/dri_interface.h delete mode 100644 nx-X11/extras/Mesa/include/GL/internal/sarea.h delete mode 100644 nx-X11/extras/Mesa/include/GL/mesa_wgl.h delete mode 100644 nx-X11/extras/Mesa/include/GL/mglmesa.h delete mode 100644 nx-X11/extras/Mesa/include/GL/miniglx.h delete mode 100644 nx-X11/extras/Mesa/include/GL/svgamesa.h delete mode 100644 nx-X11/extras/Mesa/include/GL/uglglutshapes.h delete mode 100644 nx-X11/extras/Mesa/include/GL/uglmesa.h delete mode 100644 nx-X11/extras/Mesa/include/GL/vms_x_fix.h delete mode 100644 nx-X11/extras/Mesa/include/GL/wmesa.h delete mode 100644 nx-X11/extras/Mesa/include/GL/xmesa_x.h delete mode 100644 nx-X11/extras/Mesa/include/GLES/egl.h delete mode 100644 nx-X11/extras/Mesa/include/GLES/egltypes.h delete mode 100644 nx-X11/extras/Mesa/mms-config. delete mode 100644 nx-X11/extras/Mesa/src/Makefile delete mode 100644 nx-X11/extras/Mesa/src/descrip.mms delete mode 100644 nx-X11/extras/Mesa/src/glw/GLwDrawA.c delete mode 100644 nx-X11/extras/Mesa/src/glw/GLwDrawA.h delete mode 100644 nx-X11/extras/Mesa/src/glw/GLwDrawAP.h delete mode 100644 nx-X11/extras/Mesa/src/glw/GLwMDrawA.c delete mode 100644 nx-X11/extras/Mesa/src/glw/GLwMDrawA.h delete mode 100644 nx-X11/extras/Mesa/src/glw/GLwMDrawAP.h delete mode 100644 nx-X11/extras/Mesa/src/glw/Makefile delete mode 100644 nx-X11/extras/Mesa/src/glw/README delete mode 100644 nx-X11/extras/Mesa/src/glx/Makefile delete mode 100644 nx-X11/extras/Mesa/src/glx/mini/Makefile delete mode 100644 nx-X11/extras/Mesa/src/glx/mini/NOTES delete mode 100644 nx-X11/extras/Mesa/src/glx/mini/dispatch.c delete mode 100644 nx-X11/extras/Mesa/src/glx/mini/driver.h delete mode 100644 nx-X11/extras/Mesa/src/glx/mini/example.miniglx.conf delete mode 100644 nx-X11/extras/Mesa/src/glx/mini/miniglx.c delete mode 100644 nx-X11/extras/Mesa/src/glx/mini/miniglxP.h delete mode 100644 nx-X11/extras/Mesa/src/glx/mini/miniglx_events.c delete mode 100644 nx-X11/extras/Mesa/src/glx/x11/Makefile delete mode 100644 nx-X11/extras/Mesa/src/glx/x11/XF86dri.c delete mode 100644 nx-X11/extras/Mesa/src/glx/x11/clientattrib.c delete mode 100644 nx-X11/extras/Mesa/src/glx/x11/dri_glx.c delete mode 100644 nx-X11/extras/Mesa/src/glx/x11/dri_glx.h delete mode 100644 nx-X11/extras/Mesa/src/glx/x11/eval.c delete mode 100644 nx-X11/extras/Mesa/src/glx/x11/glx_pbuffer.c delete mode 100644 nx-X11/extras/Mesa/src/glx/x11/glx_query.c delete mode 100644 nx-X11/extras/Mesa/src/glx/x11/glx_texture_compression.c delete mode 100644 nx-X11/extras/Mesa/src/glx/x11/glxclient.h delete mode 100644 nx-X11/extras/Mesa/src/glx/x11/glxcmds.c delete mode 100644 nx-X11/extras/Mesa/src/glx/x11/glxext.c delete mode 100644 nx-X11/extras/Mesa/src/glx/x11/glxextensions.c delete mode 100644 nx-X11/extras/Mesa/src/glx/x11/glxextensions.h delete mode 100644 nx-X11/extras/Mesa/src/glx/x11/indirect.c delete mode 100644 nx-X11/extras/Mesa/src/glx/x11/indirect.h delete mode 100644 nx-X11/extras/Mesa/src/glx/x11/indirect_init.c delete mode 100644 nx-X11/extras/Mesa/src/glx/x11/indirect_init.h delete mode 100644 nx-X11/extras/Mesa/src/glx/x11/indirect_transpose_matrix.c delete mode 100644 nx-X11/extras/Mesa/src/glx/x11/indirect_va_private.h delete mode 100644 nx-X11/extras/Mesa/src/glx/x11/indirect_vertex_array.c delete mode 100644 nx-X11/extras/Mesa/src/glx/x11/indirect_vertex_array.h delete mode 100644 nx-X11/extras/Mesa/src/glx/x11/indirect_vertex_program.c delete mode 100644 nx-X11/extras/Mesa/src/glx/x11/indirect_window_pos.c delete mode 100644 nx-X11/extras/Mesa/src/glx/x11/packrender.h delete mode 100644 nx-X11/extras/Mesa/src/glx/x11/packsingle.h delete mode 100644 nx-X11/extras/Mesa/src/glx/x11/pixel.c delete mode 100644 nx-X11/extras/Mesa/src/glx/x11/pixelstore.c delete mode 100644 nx-X11/extras/Mesa/src/glx/x11/render2.c delete mode 100644 nx-X11/extras/Mesa/src/glx/x11/renderpix.c delete mode 100644 nx-X11/extras/Mesa/src/glx/x11/single2.c delete mode 100644 nx-X11/extras/Mesa/src/glx/x11/singlepix.c delete mode 100644 nx-X11/extras/Mesa/src/glx/x11/vertarr.c delete mode 100644 nx-X11/extras/Mesa/src/glx/x11/xf86dri.h delete mode 100644 nx-X11/extras/Mesa/src/glx/x11/xf86dristr.h delete mode 100644 nx-X11/extras/Mesa/src/glx/x11/xfont.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/Makefile delete mode 100644 nx-X11/extras/Mesa/src/mesa/Makefile.DJ delete mode 100644 nx-X11/extras/Mesa/src/mesa/Makefile.mgw delete mode 100644 nx-X11/extras/Mesa/src/mesa/array_cache/descrip.mms delete mode 100644 nx-X11/extras/Mesa/src/mesa/descrip.mms delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/common/descrip.mms delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/Makefile delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/Makefile.template delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/common/depthtmp.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/common/dri_util.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/common/dri_util.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/common/drirenderbuffer.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/common/drirenderbuffer.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/common/extension_helper.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/common/glcontextmodes.c.NX.original delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/common/glcontextmodes.c.X.original delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/common/memops.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/common/mmio.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/common/mmx.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/common/spantmp.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/common/spantmp2.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/common/spantmp_common.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/common/stenciltmp.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/common/texmem.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/common/texmem.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/common/utils.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/common/utils.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/common/vblank.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/common/vblank.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/common/xmlconfig.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/common/xmlconfig.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/common/xmlpool.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/common/xmlpool/Makefile delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/common/xmlpool/de.po delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/common/xmlpool/es.po delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/common/xmlpool/fr.po delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/common/xmlpool/gen_xmlpool.py delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/common/xmlpool/nl.po delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/common/xmlpool/options.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/common/xmlpool/t_options.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/fb/Doxyfile delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/fb/Makefile delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/fb/fb_dri.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/fb/fb_egl.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/ffb/Makefile delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/ffb/ffb_bitmap.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/ffb/ffb_bitmap.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/ffb/ffb_clear.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/ffb/ffb_clear.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/ffb/ffb_context.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/ffb/ffb_dd.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/ffb/ffb_dd.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/ffb/ffb_depth.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/ffb/ffb_depth.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/ffb/ffb_fifo.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/ffb/ffb_fog.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/ffb/ffb_lines.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/ffb/ffb_lines.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/ffb/ffb_linetmp.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/ffb/ffb_lock.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/ffb/ffb_points.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/ffb/ffb_points.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/ffb/ffb_pointtmp.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/ffb/ffb_rendertmp.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/ffb/ffb_span.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/ffb/ffb_span.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/ffb/ffb_state.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/ffb/ffb_state.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/ffb/ffb_stencil.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/ffb/ffb_stencil.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/ffb/ffb_tex.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/ffb/ffb_tex.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/ffb/ffb_tris.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/ffb/ffb_tris.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/ffb/ffb_tritmp.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/ffb/ffb_vb.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/ffb/ffb_vb.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/ffb/ffb_vbtmp.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/ffb/ffb_vtxfmt.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/ffb/ffb_vtxfmt.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/ffb/ffb_xmesa.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/ffb/ffb_xmesa.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/ffb/server/ffb_dac.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/ffb/server/ffb_drishare.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/ffb/server/ffb_regs.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/gamma/Makefile delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/gamma/gamma_client.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/gamma/gamma_context.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/gamma/gamma_context.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/gamma/gamma_dd.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/gamma/gamma_inithw.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/gamma/gamma_lock.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/gamma/gamma_lock.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/gamma/gamma_macros.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/gamma/gamma_regs.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/gamma/gamma_render.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/gamma/gamma_screen.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/gamma/gamma_screen.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/gamma/gamma_span.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/gamma/gamma_state.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/gamma/gamma_tex.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/gamma/gamma_texmem.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/gamma/gamma_texstate.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/gamma/gamma_tris.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/gamma/gamma_tris.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/gamma/gamma_tritmp.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/gamma/gamma_vb.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/gamma/gamma_vb.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/gamma/gamma_xmesa.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/gamma/server/glint_common.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/gamma/server/glint_dri.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i810/Makefile delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i810/i810_3d_reg.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i810/i810context.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i810/i810context.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i810/i810ioctl.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i810/i810ioctl.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i810/i810render.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i810/i810screen.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i810/i810screen.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i810/i810span.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i810/i810span.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i810/i810state.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i810/i810state.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i810/i810tex.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i810/i810tex.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i810/i810texmem.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i810/i810texstate.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i810/i810tris.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i810/i810tris.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i810/i810vb.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i810/i810vb.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i810/server/i810_common.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i810/server/i810_dri.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i810/server/i810_dri.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i810/server/i810_reg.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i830/Makefile delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i830/i830_3d_reg.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i830/i830_context.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i830/i830_context.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i830/i830_debug.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i830/i830_debug.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i830/i830_ioctl.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i830/i830_ioctl.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i830/i830_render.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i830/i830_screen.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i830/i830_screen.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i830/i830_span.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i830/i830_span.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i830/i830_state.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i830/i830_state.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i830/i830_tex.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i830/i830_tex.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i830/i830_texmem.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i830/i830_texstate.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i830/i830_tris.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i830/i830_tris.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i830/server/i830_common.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i830/server/i830_dri.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i915/Makefile delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i915/i830_context.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i915/i830_context.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i915/i830_metaops.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i915/i830_reg.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i915/i830_state.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i915/i830_tex.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i915/i830_texblend.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i915/i830_texstate.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i915/i830_vtbl.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i915/i915_context.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i915/i915_context.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i915/i915_debug.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i915/i915_fragprog.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i915/i915_metaops.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i915/i915_program.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i915/i915_program.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i915/i915_reg.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i915/i915_state.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i915/i915_tex.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i915/i915_texprog.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i915/i915_texstate.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i915/i915_vtbl.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i915/intel_batchbuffer.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i915/intel_batchbuffer.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i915/intel_context.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i915/intel_context.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i915/intel_ioctl.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i915/intel_ioctl.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i915/intel_pixel.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i915/intel_reg.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i915/intel_render.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i915/intel_screen.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i915/intel_screen.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i915/intel_span.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i915/intel_span.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i915/intel_state.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i915/intel_tex.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i915/intel_tex.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i915/intel_tris.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i915/intel_tris.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i915/server/i830_common.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/i915/server/i830_dri.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/mach64/Makefile delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/mach64/mach64_context.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/mach64/mach64_context.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/mach64/mach64_dd.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/mach64/mach64_dd.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/mach64/mach64_ioctl.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/mach64/mach64_ioctl.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/mach64/mach64_lock.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/mach64/mach64_lock.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/mach64/mach64_native_vb.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/mach64/mach64_native_vbtmp.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/mach64/mach64_reg.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/mach64/mach64_screen.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/mach64/mach64_screen.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/mach64/mach64_span.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/mach64/mach64_span.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/mach64/mach64_state.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/mach64/mach64_state.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/mach64/mach64_tex.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/mach64/mach64_tex.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/mach64/mach64_texmem.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/mach64/mach64_texstate.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/mach64/mach64_tris.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/mach64/mach64_tris.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/mach64/mach64_vb.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/mach64/mach64_vb.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/mach64/mach64_vbtmp.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/mach64/server/mach64_dri.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/mga/Doxyfile delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/mga/Makefile delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/mga/README delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/mga/mga_texcombine.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/mga/mga_texstate.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/mga/mga_xmesa.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/mga/mga_xmesa.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/mga/mgacontext.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/mga/mgadd.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/mga/mgadd.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/mga/mgaioctl.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/mga/mgaioctl.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/mga/mgapixel.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/mga/mgapixel.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/mga/mgaregs.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/mga/mgarender.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/mga/mgaspan.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/mga/mgaspan.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/mga/mgastate.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/mga/mgastate.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/mga/mgatex.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/mga/mgatex.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/mga/mgatexmem.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/mga/mgatris.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/mga/mgatris.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/mga/mgavb.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/mga/mgavb.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/mga/server/mga.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/mga/server/mga_bios.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/mga/server/mga_dri.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/mga/server/mga_dri.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/mga/server/mga_macros.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/mga/server/mga_reg.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r128/Makefile delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r128/r128_context.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r128/r128_context.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r128/r128_dd.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r128/r128_dd.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r128/r128_ioctl.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r128/r128_ioctl.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r128/r128_lock.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r128/r128_lock.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r128/r128_screen.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r128/r128_screen.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r128/r128_span.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r128/r128_span.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r128/r128_state.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r128/r128_state.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r128/r128_tex.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r128/r128_tex.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r128/r128_texmem.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r128/r128_texobj.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r128/r128_texstate.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r128/r128_tris.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r128/r128_tris.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r128/server/pci_ids.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r128/server/r128.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r128/server/r128_dri.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r128/server/r128_dri.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r128/server/r128_macros.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r128/server/r128_reg.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r128/server/r128_version.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r200/Doxyfile delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r200/Makefile delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r200/r200_cmdbuf.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r200/r200_context.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r200/r200_context.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r200/r200_ioctl.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r200/r200_ioctl.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r200/r200_lock.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r200/r200_lock.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r200/r200_maos.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r200/r200_maos.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r200/r200_maos_arrays.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r200/r200_pixel.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r200/r200_pixel.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r200/r200_reg.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r200/r200_sanity.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r200/r200_sanity.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r200/r200_screen.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r200/r200_screen.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r200/r200_span.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r200/r200_span.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r200/r200_state.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r200/r200_state.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r200/r200_state_init.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r200/r200_swtcl.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r200/r200_swtcl.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r200/r200_tcl.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r200/r200_tcl.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r200/r200_tex.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r200/r200_tex.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r200/r200_texmem.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r200/r200_texstate.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r200/r200_vtxfmt.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r200/r200_vtxfmt.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r200/r200_vtxfmt_c.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r200/r200_vtxfmt_sse.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r200/r200_vtxfmt_x86.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r200/r200_vtxtmp_x86.S delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r300/Makefile delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r300/pixel_shader.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r300/r200_context.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r300/r200_ioctl.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r300/r200_reg.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r300/r200_sanity.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r300/r200_state.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r300/r200_tcl.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r300/r200_tex.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r300/r300_cmdbuf.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r300/r300_cmdbuf.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r300/r300_context.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r300/r300_context.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r300/r300_emit.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r300/r300_fixed_pipelines.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r300/r300_fragprog.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r300/r300_fragprog.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r300/r300_fragprog_swz.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r300/r300_ioctl.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r300/r300_ioctl.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r300/r300_maos.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r300/r300_maos.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r300/r300_program.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r300/r300_reg.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r300/r300_render.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r300/r300_shader.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r300/r300_state.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r300/r300_state.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r300/r300_tex.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r300/r300_tex.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r300/r300_texmem.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r300/r300_texprog.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r300/r300_texprog.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r300/r300_texstate.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r300/r300_vertexprog.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r300/radeon_context.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r300/radeon_context.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r300/radeon_ioctl.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r300/radeon_ioctl.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r300/radeon_lock.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r300/radeon_lock.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r300/radeon_screen.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r300/radeon_screen.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r300/radeon_span.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r300/radeon_span.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r300/radeon_state.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r300/radeon_state.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/r300/vertex_shader.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/radeon/Makefile delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/radeon/radeon_compat.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/radeon/radeon_context.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/radeon/radeon_context.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/radeon/radeon_ioctl.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/radeon/radeon_ioctl.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/radeon/radeon_lighting.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/radeon/radeon_lock.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/radeon/radeon_lock.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/radeon/radeon_maos.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/radeon/radeon_maos.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/radeon/radeon_maos_arrays.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/radeon/radeon_maos_vbtmp.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/radeon/radeon_maos_verts.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/radeon/radeon_sanity.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/radeon/radeon_sanity.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/radeon/radeon_screen.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/radeon/radeon_screen.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/radeon/radeon_span.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/radeon/radeon_span.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/radeon/radeon_state.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/radeon/radeon_state.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/radeon/radeon_state_init.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/radeon/radeon_swtcl.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/radeon/radeon_swtcl.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/radeon/radeon_tcl.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/radeon/radeon_tcl.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/radeon/radeon_tex.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/radeon/radeon_tex.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/radeon/radeon_texmem.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/radeon/radeon_texstate.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/radeon/radeon_vtxfmt.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/radeon/radeon_vtxfmt.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/radeon/radeon_vtxfmt_c.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/radeon/radeon_vtxfmt_sse.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/radeon/radeon_vtxfmt_x86.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/radeon/radeon_vtxtmp_x86.S delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/radeon/server/radeon.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/radeon/server/radeon_dri.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/radeon/server/radeon_dri.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/radeon/server/radeon_egl.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/radeon/server/radeon_macros.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/radeon/server/radeon_reg.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/s3v/Makefile delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/s3v/s3v_common.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/s3v/s3v_context.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/s3v/s3v_context.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/s3v/s3v_dd.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/s3v/s3v_dri.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/s3v/s3v_inithw.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/s3v/s3v_lock.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/s3v/s3v_lock.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/s3v/s3v_macros.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/s3v/s3v_regs.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/s3v/s3v_render.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/s3v/s3v_screen.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/s3v/s3v_screen.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/s3v/s3v_span.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/s3v/s3v_state.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/s3v/s3v_tex.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/s3v/s3v_tex.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/s3v/s3v_texmem.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/s3v/s3v_texstate.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/s3v/s3v_tris.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/s3v/s3v_tris.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/s3v/s3v_tritmp.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/s3v/s3v_vb.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/s3v/s3v_vb.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/s3v/s3v_xmesa.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/s3v/s3virgetri.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/savage/Makefile delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/savage/savage_3d_reg.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/savage/savage_bci.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/savage/savage_init.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/savage/savage_xmesa.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/savage/savagecontext.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/savage/savagedd.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/savage/savagedd.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/savage/savageioctl.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/savage/savageioctl.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/savage/savagerender.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/savage/savagespan.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/savage/savagespan.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/savage/savagestate.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/savage/savagestate.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/savage/savagetex.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/savage/savagetex.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/savage/savagetris.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/savage/savagetris.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/savage/server/savage_dri.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/sis/Makefile delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/sis/server/sis_common.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/sis/server/sis_dri.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/sis/sis_alloc.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/sis/sis_alloc.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/sis/sis_clear.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/sis/sis_common2.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/sis/sis_context.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/sis/sis_context.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/sis/sis_dd.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/sis/sis_dd.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/sis/sis_debug.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/sis/sis_debug.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/sis/sis_fog.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/sis/sis_lock.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/sis/sis_lock.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/sis/sis_reg.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/sis/sis_screen.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/sis/sis_screen.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/sis/sis_span.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/sis/sis_span.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/sis/sis_state.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/sis/sis_state.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/sis/sis_stencil.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/sis/sis_stencil.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/sis/sis_tex.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/sis/sis_tex.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/sis/sis_texstate.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/sis/sis_tris.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/sis/sis_tris.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/sis/sis_tritmp.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/tdfx/BUGS delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/tdfx/Makefile delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/tdfx/X86/fx_3dnow_fastpath.S delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/tdfx/X86/fx_3dnow_fasttmp.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/tdfx/dri_glide.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/tdfx/server/tdfx_dri.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/tdfx/server/tdfx_dri.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/tdfx/tdfx_context.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/tdfx/tdfx_context.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/tdfx/tdfx_dd.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/tdfx/tdfx_dd.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/tdfx/tdfx_glide.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/tdfx/tdfx_lock.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/tdfx/tdfx_lock.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/tdfx/tdfx_pixels.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/tdfx/tdfx_pixels.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/tdfx/tdfx_render.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/tdfx/tdfx_render.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/tdfx/tdfx_screen.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/tdfx/tdfx_screen.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/tdfx/tdfx_span.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/tdfx/tdfx_span.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/tdfx/tdfx_state.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/tdfx/tdfx_state.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/tdfx/tdfx_tex.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/tdfx/tdfx_tex.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/tdfx/tdfx_texman.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/tdfx/tdfx_texman.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/tdfx/tdfx_texstate.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/tdfx/tdfx_texstate.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/tdfx/tdfx_tris.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/tdfx/tdfx_tris.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/tdfx/tdfx_vb.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/tdfx/tdfx_vb.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/tdfx/tdfx_vbtmp.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/trident/Makefile delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/trident/trident_context.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/trident/trident_context.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/trident/trident_dd.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/trident/trident_dri.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/trident/trident_lock.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/trident/trident_state.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/trident/trident_tris.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/trident/trident_vb.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/unichrome/Makefile delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/unichrome/server/via.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/unichrome/server/via_dri.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/unichrome/server/via_dri.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/unichrome/server/via_driver.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/unichrome/server/via_priv.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/unichrome/server/via_regs.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/unichrome/via_3d_reg.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/unichrome/via_context.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/unichrome/via_context.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/unichrome/via_drmclient.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/unichrome/via_fb.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/unichrome/via_fb.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/unichrome/via_ioctl.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/unichrome/via_ioctl.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/unichrome/via_memcpy.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/unichrome/via_render.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/unichrome/via_screen.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/unichrome/via_screen.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/unichrome/via_span.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/unichrome/via_span.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/unichrome/via_state.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/unichrome/via_state.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/unichrome/via_tex.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/unichrome/via_tex.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/unichrome/via_texcombine.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/unichrome/via_tris.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/unichrome/via_tris.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/x11/Makefile delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/x11/x11_dri.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/dri/x11/x11_dri.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/fbdev/glfbdev.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/glide/fxapi.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/glide/fxdd.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/glide/fxddspan.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/glide/fxddtex.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/glide/fxdrv.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/glide/fxg.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/glide/fxg.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/glide/fxglidew.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/glide/fxglidew.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/glide/fxsetup.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/glide/fxsetup.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/glide/fxtexman.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/glide/fxtris.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/glide/fxvb.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/glide/fxvbtmp.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/osmesa/Makefile.win delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/osmesa/descrip.mms delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/osmesa/osmesa.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/osmesa/osmesa.def delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/x11/descrip.mms delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/x11/fakeglx.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/x11/glxapi.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/x11/glxapi.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/x11/realglx.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/x11/realglx.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/x11/xfonts.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/drivers/x11/xfonts.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/glapi/.cvsignore delete mode 100644 nx-X11/extras/Mesa/src/mesa/glapi/EXT_framebuffer_object.xml delete mode 100644 nx-X11/extras/Mesa/src/mesa/glapi/Makefile delete mode 100644 nx-X11/extras/Mesa/src/mesa/glapi/descrip.mms delete mode 100644 nx-X11/extras/Mesa/src/mesa/glapi/extension_helper.py delete mode 100644 nx-X11/extras/Mesa/src/mesa/glapi/glX_XML.py delete mode 100644 nx-X11/extras/Mesa/src/mesa/glapi/glX_doc.py delete mode 100644 nx-X11/extras/Mesa/src/mesa/glapi/glX_proto_common.py delete mode 100644 nx-X11/extras/Mesa/src/mesa/glapi/glX_proto_send.py delete mode 100644 nx-X11/extras/Mesa/src/mesa/glapi/glX_proto_size.py delete mode 100644 nx-X11/extras/Mesa/src/mesa/glapi/gl_API.dtd delete mode 100644 nx-X11/extras/Mesa/src/mesa/glapi/gl_API.xml delete mode 100644 nx-X11/extras/Mesa/src/mesa/glapi/gl_SPARC_asm.py delete mode 100644 nx-X11/extras/Mesa/src/mesa/glapi/gl_XML.py delete mode 100644 nx-X11/extras/Mesa/src/mesa/glapi/gl_apitemp.py delete mode 100644 nx-X11/extras/Mesa/src/mesa/glapi/gl_enums.py delete mode 100644 nx-X11/extras/Mesa/src/mesa/glapi/gl_offsets.py delete mode 100644 nx-X11/extras/Mesa/src/mesa/glapi/gl_procs.py delete mode 100644 nx-X11/extras/Mesa/src/mesa/glapi/gl_table.py delete mode 100644 nx-X11/extras/Mesa/src/mesa/glapi/gl_x86-64_asm.py delete mode 100644 nx-X11/extras/Mesa/src/mesa/glapi/gl_x86_asm.py delete mode 100644 nx-X11/extras/Mesa/src/mesa/glapi/license.py delete mode 100644 nx-X11/extras/Mesa/src/mesa/glapi/mesadef.py delete mode 100755 nx-X11/extras/Mesa/src/mesa/glapi/next_available_offset.sh delete mode 100644 nx-X11/extras/Mesa/src/mesa/glapi/typeexpr.py delete mode 100644 nx-X11/extras/Mesa/src/mesa/main/Imakefile delete mode 100644 nx-X11/extras/Mesa/src/mesa/main/KNOWN_BUGS delete mode 100644 nx-X11/extras/Mesa/src/mesa/main/Makefile.ugl delete mode 100644 nx-X11/extras/Mesa/src/mesa/main/Makefile.win delete mode 100644 nx-X11/extras/Mesa/src/mesa/main/WSDrawBuffer.h.NX.original delete mode 100644 nx-X11/extras/Mesa/src/mesa/main/context.c.NX.original delete mode 100644 nx-X11/extras/Mesa/src/mesa/main/context.c.X.original delete mode 100644 nx-X11/extras/Mesa/src/mesa/main/descrip.mms delete mode 100644 nx-X11/extras/Mesa/src/mesa/main/get_gen.py delete mode 100644 nx-X11/extras/Mesa/src/mesa/main/mesa.def delete mode 100644 nx-X11/extras/Mesa/src/mesa/main/vsnprintf.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/math/descrip.mms delete mode 100644 nx-X11/extras/Mesa/src/mesa/ppc/common_ppc.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/ppc/common_ppc_features.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/shader/arbprogram.syn delete mode 100644 nx-X11/extras/Mesa/src/mesa/shader/asmopcodes.reg delete mode 100644 nx-X11/extras/Mesa/src/mesa/shader/descrip.mms delete mode 100644 nx-X11/extras/Mesa/src/mesa/shader/grammar/descrip.mms delete mode 100644 nx-X11/extras/Mesa/src/mesa/shader/grammar/grammar.syn delete mode 100755 nx-X11/extras/Mesa/src/mesa/shader/grammar/grammar_crt.c delete mode 100755 nx-X11/extras/Mesa/src/mesa/shader/grammar/grammar_crt.h delete mode 100755 nx-X11/extras/Mesa/src/mesa/shader/slang/Include/BaseTypes.h delete mode 100755 nx-X11/extras/Mesa/src/mesa/shader/slang/Include/Common.h delete mode 100755 nx-X11/extras/Mesa/src/mesa/shader/slang/Include/ConstantUnion.h delete mode 100755 nx-X11/extras/Mesa/src/mesa/shader/slang/Include/InfoSink.h delete mode 100755 nx-X11/extras/Mesa/src/mesa/shader/slang/Include/InitializeGlobals.h delete mode 100755 nx-X11/extras/Mesa/src/mesa/shader/slang/Include/InitializeParseContext.h delete mode 100755 nx-X11/extras/Mesa/src/mesa/shader/slang/Include/PoolAlloc.h delete mode 100755 nx-X11/extras/Mesa/src/mesa/shader/slang/Include/ResourceLimits.h delete mode 100755 nx-X11/extras/Mesa/src/mesa/shader/slang/Include/ShHandle.h delete mode 100755 nx-X11/extras/Mesa/src/mesa/shader/slang/Include/Types.h delete mode 100755 nx-X11/extras/Mesa/src/mesa/shader/slang/Include/intermediate.h delete mode 100755 nx-X11/extras/Mesa/src/mesa/shader/slang/MachineIndependent/Gen_glslang.cpp delete mode 100755 nx-X11/extras/Mesa/src/mesa/shader/slang/MachineIndependent/Gen_glslang_tab.cpp delete mode 100755 nx-X11/extras/Mesa/src/mesa/shader/slang/MachineIndependent/InfoSink.cpp delete mode 100755 nx-X11/extras/Mesa/src/mesa/shader/slang/MachineIndependent/Initialize.cpp delete mode 100755 nx-X11/extras/Mesa/src/mesa/shader/slang/MachineIndependent/Initialize.h delete mode 100755 nx-X11/extras/Mesa/src/mesa/shader/slang/MachineIndependent/IntermTraverse.cpp delete mode 100755 nx-X11/extras/Mesa/src/mesa/shader/slang/MachineIndependent/Intermediate.cpp delete mode 100755 nx-X11/extras/Mesa/src/mesa/shader/slang/MachineIndependent/MMap.h delete mode 100755 nx-X11/extras/Mesa/src/mesa/shader/slang/MachineIndependent/ParseHelper.cpp delete mode 100755 nx-X11/extras/Mesa/src/mesa/shader/slang/MachineIndependent/ParseHelper.h delete mode 100755 nx-X11/extras/Mesa/src/mesa/shader/slang/MachineIndependent/PoolAlloc.cpp delete mode 100755 nx-X11/extras/Mesa/src/mesa/shader/slang/MachineIndependent/QualifierAlive.cpp delete mode 100755 nx-X11/extras/Mesa/src/mesa/shader/slang/MachineIndependent/QualifierAlive.h delete mode 100755 nx-X11/extras/Mesa/src/mesa/shader/slang/MachineIndependent/RemoveTree.cpp delete mode 100755 nx-X11/extras/Mesa/src/mesa/shader/slang/MachineIndependent/RemoveTree.h delete mode 100755 nx-X11/extras/Mesa/src/mesa/shader/slang/MachineIndependent/ShaderLang.cpp delete mode 100755 nx-X11/extras/Mesa/src/mesa/shader/slang/MachineIndependent/SymbolTable.cpp delete mode 100755 nx-X11/extras/Mesa/src/mesa/shader/slang/MachineIndependent/SymbolTable.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/shader/slang/MachineIndependent/glslang.l delete mode 100644 nx-X11/extras/Mesa/src/mesa/shader/slang/MachineIndependent/glslang.y delete mode 100755 nx-X11/extras/Mesa/src/mesa/shader/slang/MachineIndependent/glslang_tab.h delete mode 100755 nx-X11/extras/Mesa/src/mesa/shader/slang/MachineIndependent/intermOut.cpp delete mode 100755 nx-X11/extras/Mesa/src/mesa/shader/slang/MachineIndependent/localintermediate.h delete mode 100755 nx-X11/extras/Mesa/src/mesa/shader/slang/MachineIndependent/parseConst.cpp delete mode 100755 nx-X11/extras/Mesa/src/mesa/shader/slang/MachineIndependent/preprocessor/atom.c delete mode 100755 nx-X11/extras/Mesa/src/mesa/shader/slang/MachineIndependent/preprocessor/atom.h delete mode 100755 nx-X11/extras/Mesa/src/mesa/shader/slang/MachineIndependent/preprocessor/compile.h delete mode 100755 nx-X11/extras/Mesa/src/mesa/shader/slang/MachineIndependent/preprocessor/cpp.c delete mode 100755 nx-X11/extras/Mesa/src/mesa/shader/slang/MachineIndependent/preprocessor/cpp.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/shader/slang/MachineIndependent/preprocessor/cpp_comment_fix.c delete mode 100755 nx-X11/extras/Mesa/src/mesa/shader/slang/MachineIndependent/preprocessor/cppstruct.c delete mode 100755 nx-X11/extras/Mesa/src/mesa/shader/slang/MachineIndependent/preprocessor/memory.c delete mode 100755 nx-X11/extras/Mesa/src/mesa/shader/slang/MachineIndependent/preprocessor/memory.h delete mode 100755 nx-X11/extras/Mesa/src/mesa/shader/slang/MachineIndependent/preprocessor/parser.h delete mode 100755 nx-X11/extras/Mesa/src/mesa/shader/slang/MachineIndependent/preprocessor/preprocess.h delete mode 100755 nx-X11/extras/Mesa/src/mesa/shader/slang/MachineIndependent/preprocessor/scanner.c delete mode 100755 nx-X11/extras/Mesa/src/mesa/shader/slang/MachineIndependent/preprocessor/scanner.h delete mode 100755 nx-X11/extras/Mesa/src/mesa/shader/slang/MachineIndependent/preprocessor/slglobals.h delete mode 100755 nx-X11/extras/Mesa/src/mesa/shader/slang/MachineIndependent/preprocessor/symbols.c delete mode 100755 nx-X11/extras/Mesa/src/mesa/shader/slang/MachineIndependent/preprocessor/symbols.h delete mode 100755 nx-X11/extras/Mesa/src/mesa/shader/slang/MachineIndependent/preprocessor/tokens.c delete mode 100755 nx-X11/extras/Mesa/src/mesa/shader/slang/MachineIndependent/preprocessor/tokens.h delete mode 100755 nx-X11/extras/Mesa/src/mesa/shader/slang/MachineIndependent/unistd.h delete mode 100755 nx-X11/extras/Mesa/src/mesa/shader/slang/OGLCompilersDLL/Initialisation.cpp delete mode 100755 nx-X11/extras/Mesa/src/mesa/shader/slang/OGLCompilersDLL/Initialisation.h delete mode 100755 nx-X11/extras/Mesa/src/mesa/shader/slang/OSDependent/Linux/osinclude.h delete mode 100755 nx-X11/extras/Mesa/src/mesa/shader/slang/OSDependent/Linux/ossource.cpp delete mode 100755 nx-X11/extras/Mesa/src/mesa/shader/slang/OSDependent/Windows/osinclude.h delete mode 100755 nx-X11/extras/Mesa/src/mesa/shader/slang/OSDependent/Windows/ossource.cpp delete mode 100755 nx-X11/extras/Mesa/src/mesa/shader/slang/Public/ShaderLang.h delete mode 100755 nx-X11/extras/Mesa/src/mesa/shader/slang/Public/ShaderLangExt.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/shader/slang/descrip.mms delete mode 100755 nx-X11/extras/Mesa/src/mesa/shader/slang/library/gc_to_bin.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/shader/slang/library/gc_to_string.py delete mode 100755 nx-X11/extras/Mesa/src/mesa/shader/slang/library/slang_common_builtin.gc delete mode 100755 nx-X11/extras/Mesa/src/mesa/shader/slang/library/slang_core.gc delete mode 100755 nx-X11/extras/Mesa/src/mesa/shader/slang/library/slang_fragment_builtin.gc delete mode 100644 nx-X11/extras/Mesa/src/mesa/shader/slang/library/slang_shader.syn delete mode 100755 nx-X11/extras/Mesa/src/mesa/shader/slang/library/slang_version.syn delete mode 100755 nx-X11/extras/Mesa/src/mesa/shader/slang/library/slang_vertex_builtin.gc delete mode 100755 nx-X11/extras/Mesa/src/mesa/shader/slang/slang_mesa.cpp delete mode 100755 nx-X11/extras/Mesa/src/mesa/shader/slang/slang_mesa.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/sources delete mode 100644 nx-X11/extras/Mesa/src/mesa/sparc/clip.S delete mode 100644 nx-X11/extras/Mesa/src/mesa/sparc/glapi_sparc.S delete mode 100644 nx-X11/extras/Mesa/src/mesa/sparc/norm.S delete mode 100644 nx-X11/extras/Mesa/src/mesa/sparc/sparc.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/sparc/sparc.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/sparc/sparc_matrix.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/sparc/xform.S delete mode 100644 nx-X11/extras/Mesa/src/mesa/swrast/NOTES delete mode 100644 nx-X11/extras/Mesa/src/mesa/swrast/descrip.mms delete mode 100644 nx-X11/extras/Mesa/src/mesa/swrast/s_fragprog_to_c.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/swrast/s_tcc.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/swrast_setup/NOTES delete mode 100644 nx-X11/extras/Mesa/src/mesa/swrast_setup/descrip.mms delete mode 100644 nx-X11/extras/Mesa/src/mesa/swrast_setup/ss_vb.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/tnl/NOTES delete mode 100644 nx-X11/extras/Mesa/src/mesa/tnl/descrip.mms delete mode 100644 nx-X11/extras/Mesa/src/mesa/tnl_dd/imm/NOTES.imm delete mode 100644 nx-X11/extras/Mesa/src/mesa/tnl_dd/imm/t_dd_imm_capi.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/tnl_dd/imm/t_dd_imm_napi.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/tnl_dd/imm/t_dd_imm_primtmp.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/tnl_dd/imm/t_dd_imm_tapi.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/tnl_dd/imm/t_dd_imm_vapi.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/tnl_dd/imm/t_dd_imm_vb.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/tnl_dd/imm/t_dd_imm_vbtmp.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/tnl_dd/t_dd.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/tnl_dd/t_dd_dmatmp.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/tnl_dd/t_dd_dmatmp2.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/tnl_dd/t_dd_rendertmp.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/tnl_dd/t_dd_triemit.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/tnl_dd/t_dd_tritmp.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/tnl_dd/t_dd_unfilled.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/tnl_dd/t_dd_vb.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/tnl_dd/t_dd_vbtmp.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/tnl_dd/t_dd_vertex.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/x86-64/Makefile delete mode 100644 nx-X11/extras/Mesa/src/mesa/x86-64/calling_convention.txt delete mode 100644 nx-X11/extras/Mesa/src/mesa/x86-64/glapi_x86-64.S delete mode 100644 nx-X11/extras/Mesa/src/mesa/x86-64/x86-64.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/x86-64/x86-64.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/x86-64/xform4.S delete mode 100644 nx-X11/extras/Mesa/src/mesa/x86/3dnow.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/x86/3dnow.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/x86/3dnow_normal.S delete mode 100644 nx-X11/extras/Mesa/src/mesa/x86/3dnow_xform1.S delete mode 100644 nx-X11/extras/Mesa/src/mesa/x86/3dnow_xform2.S delete mode 100644 nx-X11/extras/Mesa/src/mesa/x86/3dnow_xform3.S delete mode 100644 nx-X11/extras/Mesa/src/mesa/x86/3dnow_xform4.S delete mode 100644 nx-X11/extras/Mesa/src/mesa/x86/Makefile delete mode 100644 nx-X11/extras/Mesa/src/mesa/x86/assyntax.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/x86/clip_args.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/x86/common_x86.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/x86/common_x86_asm.S delete mode 100644 nx-X11/extras/Mesa/src/mesa/x86/common_x86_asm.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/x86/common_x86_features.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/x86/common_x86_macros.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/x86/gen_matypes.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/x86/glapi_x86.S delete mode 100644 nx-X11/extras/Mesa/src/mesa/x86/mmx.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/x86/mmx_blend.S delete mode 100644 nx-X11/extras/Mesa/src/mesa/x86/mmx_blendtmp.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/x86/norm_args.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/x86/read_rgba_span_x86.S delete mode 100644 nx-X11/extras/Mesa/src/mesa/x86/read_rgba_span_x86.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/x86/rtasm/x86sse.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/x86/rtasm/x86sse.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/x86/sse.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/x86/sse.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/x86/sse_normal.S delete mode 100644 nx-X11/extras/Mesa/src/mesa/x86/sse_xform1.S delete mode 100644 nx-X11/extras/Mesa/src/mesa/x86/sse_xform2.S delete mode 100644 nx-X11/extras/Mesa/src/mesa/x86/sse_xform3.S delete mode 100644 nx-X11/extras/Mesa/src/mesa/x86/sse_xform4.S delete mode 100644 nx-X11/extras/Mesa/src/mesa/x86/x86.c delete mode 100644 nx-X11/extras/Mesa/src/mesa/x86/x86.h delete mode 100644 nx-X11/extras/Mesa/src/mesa/x86/x86_cliptest.S delete mode 100644 nx-X11/extras/Mesa/src/mesa/x86/x86_xform2.S delete mode 100644 nx-X11/extras/Mesa/src/mesa/x86/x86_xform3.S delete mode 100644 nx-X11/extras/Mesa/src/mesa/x86/x86_xform4.S delete mode 100644 nx-X11/extras/Mesa/src/mesa/x86/xform_args.h delete mode 100644 nx-X11/extras/Mesa/vms/analyze_map.com delete mode 100644 nx-X11/extras/Mesa/vms/xlib.opt delete mode 100644 nx-X11/extras/Mesa/vms/xlib_share.opt delete mode 100644 nx-X11/extras/Mesa/windows/VC6/mesa/gdi/gdi.dsp delete mode 100644 nx-X11/extras/Mesa/windows/VC6/mesa/glu/compileDebug.txt delete mode 100644 nx-X11/extras/Mesa/windows/VC6/mesa/glu/compileRelease.txt delete mode 100644 nx-X11/extras/Mesa/windows/VC6/mesa/glu/glu.dsp delete mode 100644 nx-X11/extras/Mesa/windows/VC6/mesa/glu/objectsDebug.txt delete mode 100644 nx-X11/extras/Mesa/windows/VC6/mesa/glu/objectsRelease.txt delete mode 100644 nx-X11/extras/Mesa/windows/VC6/mesa/mesa.dsw delete mode 100644 nx-X11/extras/Mesa/windows/VC6/mesa/mesa/mesa.dsp delete mode 100644 nx-X11/extras/Mesa/windows/VC6/mesa/osmesa/osmesa.dsp delete mode 100644 nx-X11/extras/Mesa/windows/VC6/progs/demos/gears.dsp delete mode 100644 nx-X11/extras/Mesa/windows/VC6/progs/glut/glut.dsp delete mode 100644 nx-X11/extras/Mesa/windows/VC6/progs/progs.dsw delete mode 100644 nx-X11/extras/Mesa/windows/VC7/mesa/gdi/gdi.vcproj delete mode 100644 nx-X11/extras/Mesa/windows/VC7/mesa/glu/glu.vcproj delete mode 100644 nx-X11/extras/Mesa/windows/VC7/mesa/mesa.sln delete mode 100644 nx-X11/extras/Mesa/windows/VC7/mesa/mesa/mesa.vcproj delete mode 100644 nx-X11/extras/Mesa/windows/VC7/mesa/osmesa/osmesa.vcproj delete mode 100644 nx-X11/extras/Mesa/windows/VC7/progs/demos/gears.vcproj delete mode 100644 nx-X11/extras/Mesa/windows/VC7/progs/glut/glut.vcproj delete mode 100644 nx-X11/extras/Mesa/windows/VC7/progs/progs.sln (limited to 'nx-X11/extras/Mesa') diff --git a/nx-X11/extras/Mesa/Makefile b/nx-X11/extras/Mesa/Makefile deleted file mode 100644 index ea8d6fb98..000000000 --- a/nx-X11/extras/Mesa/Makefile +++ /dev/null @@ -1,451 +0,0 @@ -# Top-level Mesa makefile - -TOP = . - -SUBDIRS = src progs - - -default: $(TOP)/configs/current - @for dir in $(SUBDIRS) ; do \ - (cd $$dir ; $(MAKE)) || exit 1 ; \ - done - - -doxygen: - (cd doxygen ; make) ; \ - -clean: - @for dir in $(SUBDIRS) ; do \ - (cd $$dir ; $(MAKE) clean) ; \ - done - - -realclean: - touch $(TOP)/configs/current - $(MAKE) clean - -rm -rf lib* - -rm -f $(TOP)/configs/current - -rm -f `find . -name \*.o` - -rm -f `find . -name \*.a` - -rm -f `find . -name \*.so` - -rm -f `find . -name depend` - - - -install: - @echo "Installing" - $(TOP)/bin/installmesa $(DESTDIR) - -# DirectFBGL module installation -linux-directfb-install: - cd src/mesa/drivers/directfb && $(MAKE) install - -# If there's no current configuration file -$(TOP)/configs/current: - @echo - @echo - @echo "Please choose a configuration from the following list:" - @ls -1 $(TOP)/configs | grep -v "current\|default\|CVS" - @echo - @echo "Then type 'make ' (ex: 'make linux-x86')" - @echo "(ignore the following error message)" - @exit 1 - - -# Rules to set/install a specific build configuration -aix \ -aix-64 \ -aix-gcc \ -aix-static \ -beos \ -darwin \ -darwin-static \ -freebsd \ -freebsd-dri \ -freebsd-dri-amd64 \ -freebsd-dri-x86 \ -hpux10 \ -hpux10-gcc \ -hpux10-static \ -hpux11-32 \ -hpux11-32-static \ -hpux11-32-static-nothreads \ -hpux11-64 \ -hpux11-64-static \ -hpux9 \ -hpux9-gcc \ -irix6-64 \ -irix6-64-static \ -irix6-n32 \ -irix6-n32-static \ -irix6-o32 \ -irix6-o32-static \ -linux \ -linux-alpha \ -linux-alpha-static \ -linux-debug \ -linux-directfb \ -linux-dri \ -linux-dri-x86 \ -linux-dri-x86-64 \ -linux-dri-ppc \ -linux-indirect \ -linux-fbdev \ -linux-glide \ -linux-icc \ -linux-icc-static \ -linux-osmesa16 \ -linux-osmesa16-static \ -linux-osmesa32 \ -linux-ppc \ -linux-ppc-static \ -linux-solo \ -linux-solo-x86 \ -linux-solo-ia64 \ -linux-sparc \ -linux-sparc5 \ -linux-static \ -linux-ultrasparc \ -linux-tcc \ -linux-x86 \ -linux-x86-debug \ -linux-x86-32 \ -linux-x86-64 \ -linux-x86-64-debug \ -linux-x86-64-static \ -linux-x86-xcb \ -linux-x86-glide \ -linux-x86-static \ -netbsd \ -openbsd \ -osf1 \ -solaris-x86 \ -solaris-x86-gcc \ -sunos4 \ -sunos4-gcc \ -sunos4-static \ -sunos5 \ -sunos5-gcc \ -sunos5-smp \ -ultrix-gcc: - (cd configs && rm -f current && ln -s $@ current) - $(MAKE) default - - -# Rules for making release tarballs - -DIRECTORY = Mesa-6.4.1 -LIB_NAME = MesaLib-6.4.1 -DEMO_NAME = MesaDemos-6.4.1 -GLUT_NAME = MesaGLUT-6.4.1 - -MAIN_FILES = \ - $(DIRECTORY)/Makefile* \ - $(DIRECTORY)/descrip.mms \ - $(DIRECTORY)/mms-config. \ - $(DIRECTORY)/bin/mklib \ - $(DIRECTORY)/bin/installmesa \ - $(DIRECTORY)/configs/[a-z]* \ - $(DIRECTORY)/docs/*.html \ - $(DIRECTORY)/docs/COPYING \ - $(DIRECTORY)/docs/README.* \ - $(DIRECTORY)/docs/RELNOTES* \ - $(DIRECTORY)/docs/VERSIONS \ - $(DIRECTORY)/docs/*.spec \ - $(DIRECTORY)/include/GL/internal/glcore.h \ - $(DIRECTORY)/include/GL/amesa.h \ - $(DIRECTORY)/include/GL/dmesa.h \ - $(DIRECTORY)/include/GL/directfbgl.h \ - $(DIRECTORY)/include/GL/fxmesa.h \ - $(DIRECTORY)/include/GL/ggimesa.h \ - $(DIRECTORY)/include/GL/gl.h \ - $(DIRECTORY)/include/GL/glext.h \ - $(DIRECTORY)/include/GL/gl_mangle.h \ - $(DIRECTORY)/include/GL/glu.h \ - $(DIRECTORY)/include/GL/glu_mangle.h \ - $(DIRECTORY)/include/GL/glx.h \ - $(DIRECTORY)/include/GL/glxext.h \ - $(DIRECTORY)/include/GL/glx_mangle.h \ - $(DIRECTORY)/include/GL/mesa_wgl.h \ - $(DIRECTORY)/include/GL/mglmesa.h \ - $(DIRECTORY)/include/GL/osmesa.h \ - $(DIRECTORY)/include/GL/svgamesa.h \ - $(DIRECTORY)/include/GL/ugl*.h \ - $(DIRECTORY)/include/GL/vms_x_fix.h \ - $(DIRECTORY)/include/GL/wmesa.h \ - $(DIRECTORY)/include/GL/xmesa.h \ - $(DIRECTORY)/include/GL/xmesa_x.h \ - $(DIRECTORY)/include/GL/xmesa_xf86.h \ - $(DIRECTORY)/include/GLView.h \ - $(DIRECTORY)/src/Makefile \ - $(DIRECTORY)/src/descrip.mms \ - $(DIRECTORY)/src/mesa/Makefile* \ - $(DIRECTORY)/src/mesa/sources \ - $(DIRECTORY)/src/mesa/descrip.mms \ - $(DIRECTORY)/src/mesa/depend \ - $(DIRECTORY)/src/mesa/main/*.[chS] \ - $(DIRECTORY)/src/mesa/main/descrip.mms \ - $(DIRECTORY)/src/mesa/glapi/*.[chS] \ - $(DIRECTORY)/src/mesa/glapi/descrip.mms \ - $(DIRECTORY)/src/mesa/array_cache/*.[ch] \ - $(DIRECTORY)/src/mesa/array_cache/descrip.mms \ - $(DIRECTORY)/src/mesa/math/*.[ch] \ - $(DIRECTORY)/src/mesa/math/descrip.mms \ - $(DIRECTORY)/src/mesa/shader/*.[ch] \ - $(DIRECTORY)/src/mesa/shader/descrip.mms \ - $(DIRECTORY)/src/mesa/shader/grammar/*.[ch] \ - $(DIRECTORY)/src/mesa/shader/grammar/descrip.mms \ - $(DIRECTORY)/src/mesa/shader/slang/*.[ch] \ - $(DIRECTORY)/src/mesa/shader/slang/descrip.mms \ - $(DIRECTORY)/src/mesa/shader/slang/library/*.[ch] \ - $(DIRECTORY)/src/mesa/swrast/*.[ch] \ - $(DIRECTORY)/src/mesa/swrast/descrip.mms \ - $(DIRECTORY)/src/mesa/swrast_setup/*.[ch] \ - $(DIRECTORY)/src/mesa/swrast_setup/descrip.mms \ - $(DIRECTORY)/src/mesa/tnl/*.[chS] \ - $(DIRECTORY)/src/mesa/tnl/descrip.mms \ - $(DIRECTORY)/src/mesa/tnl_dd/*.[ch] \ - $(DIRECTORY)/src/mesa/tnl_dd/imm/*.[ch] \ - $(DIRECTORY)/src/mesa/tnl_dd/imm/NOTES.imm \ - $(DIRECTORY)/src/mesa/drivers/beos/*.cpp \ - $(DIRECTORY)/src/mesa/drivers/beos/Makefile \ - $(DIRECTORY)/src/mesa/drivers/common/*.[ch] \ - $(DIRECTORY)/src/mesa/drivers/common/descrip.mms \ - $(DIRECTORY)/src/mesa/drivers/directfb/*.[ch] \ - $(DIRECTORY)/src/mesa/drivers/directfb/Makefile \ - $(DIRECTORY)/src/mesa/drivers/dos/*.[chS] \ - $(DIRECTORY)/src/mesa/drivers/fbdev/glfbdev.c \ - $(DIRECTORY)/src/mesa/drivers/glide/*.[ch] \ - $(DIRECTORY)/src/mesa/drivers/ggi/*.[ch] \ - $(DIRECTORY)/src/mesa/drivers/ggi/ggimesa.conf.in \ - $(DIRECTORY)/src/mesa/drivers/ggi/default/*.c \ - $(DIRECTORY)/src/mesa/drivers/ggi/default/genkgi.conf.in \ - $(DIRECTORY)/src/mesa/drivers/ggi/display/*.c \ - $(DIRECTORY)/src/mesa/drivers/ggi/display/fbdev.conf.in \ - $(DIRECTORY)/src/mesa/drivers/ggi/include/ggi/mesa/*.h \ - $(DIRECTORY)/src/mesa/drivers/osmesa/Makefile.win \ - $(DIRECTORY)/src/mesa/drivers/osmesa/descrip.mms \ - $(DIRECTORY)/src/mesa/drivers/osmesa/osmesa.def \ - $(DIRECTORY)/src/mesa/drivers/osmesa/*.[ch] \ - $(DIRECTORY)/src/mesa/drivers/svga/*.[ch] \ - $(DIRECTORY)/src/mesa/drivers/windows/*/*.[ch] \ - $(DIRECTORY)/src/mesa/drivers/windows/*/*.def \ - $(DIRECTORY)/src/mesa/drivers/x11/descrip.mms \ - $(DIRECTORY)/src/mesa/drivers/x11/*.[ch] \ - $(DIRECTORY)/src/mesa/ppc/*.[ch] \ - $(DIRECTORY)/src/mesa/sparc/*.[chS] \ - $(DIRECTORY)/src/mesa/x86/Makefile \ - $(DIRECTORY)/src/mesa/x86/*.[ch] \ - $(DIRECTORY)/src/mesa/x86/*.S \ - $(DIRECTORY)/src/mesa/x86/rtasm/*.[ch] \ - $(DIRECTORY)/src/mesa/x86-64/*.[chS] \ - $(DIRECTORY)/src/mesa/x86-64/Makefile \ - $(DIRECTORY)/progs/Makefile \ - $(DIRECTORY)/progs/util/README \ - $(DIRECTORY)/progs/util/*.[ch] \ - $(DIRECTORY)/progs/util/sampleMakefile \ - $(DIRECTORY)/vms/analyze_map.com \ - $(DIRECTORY)/vms/xlib.opt \ - $(DIRECTORY)/vms/xlib_share.opt \ - $(DIRECTORY)/windows/VC6/mesa/gdi/gdi.dsp \ - $(DIRECTORY)/windows/VC6/mesa/glu/*.txt \ - $(DIRECTORY)/windows/VC6/mesa/glu/glu.dsp \ - $(DIRECTORY)/windows/VC6/mesa/mesa.dsw \ - $(DIRECTORY)/windows/VC6/mesa/mesa/mesa.dsp \ - $(DIRECTORY)/windows/VC6/mesa/osmesa/osmesa.dsp \ - $(DIRECTORY)/windows/VC7/mesa/gdi/gdi.vcproj \ - $(DIRECTORY)/windows/VC7/mesa/glu/glu.vcproj \ - $(DIRECTORY)/windows/VC7/mesa/mesa.sln \ - $(DIRECTORY)/windows/VC7/mesa/mesa/mesa.vcproj \ - $(DIRECTORY)/windows/VC7/mesa/osmesa/osmesa.vcproj - -DRI_FILES = \ - $(DIRECTORY)/include/GL/internal/dri_interface.h \ - $(DIRECTORY)/include/GL/internal/sarea.h \ - $(DIRECTORY)/src/glx/Makefile \ - $(DIRECTORY)/src/glx/x11/Makefile \ - $(DIRECTORY)/src/glx/x11/*.[ch] \ - $(DIRECTORY)/src/mesa/drivers/dri/Makefile \ - $(DIRECTORY)/src/mesa/drivers/dri/Makefile.template \ - $(DIRECTORY)/src/mesa/drivers/dri/common/xmlpool/*.[ch] \ - $(DIRECTORY)/src/mesa/drivers/dri/common/xmlpool/*.po \ - $(DIRECTORY)/src/mesa/drivers/dri/*/*.[chS] \ - $(DIRECTORY)/src/mesa/drivers/dri/*/Makefile \ - $(DIRECTORY)/src/mesa/drivers/dri/*/Doxyfile \ - $(DIRECTORY)/src/mesa/drivers/dri/*/server/*.[ch] - -SGI_GLU_FILES = \ - $(DIRECTORY)/src/glu/Makefile \ - $(DIRECTORY)/src/glu/descrip.mms \ - $(DIRECTORY)/src/glu/sgi/Makefile \ - $(DIRECTORY)/src/glu/sgi/Makefile.win \ - $(DIRECTORY)/src/glu/sgi/Makefile.DJ \ - $(DIRECTORY)/src/glu/sgi/glu.def \ - $(DIRECTORY)/src/glu/sgi/dummy.cc \ - $(DIRECTORY)/src/glu/sgi/descrip.mms \ - $(DIRECTORY)/src/glu/sgi/mesaglu.opt \ - $(DIRECTORY)/src/glu/sgi/include/gluos.h \ - $(DIRECTORY)/src/glu/sgi/libnurbs/interface/*.h \ - $(DIRECTORY)/src/glu/sgi/libnurbs/interface/*.cc \ - $(DIRECTORY)/src/glu/sgi/libnurbs/internals/*.h \ - $(DIRECTORY)/src/glu/sgi/libnurbs/internals/*.cc \ - $(DIRECTORY)/src/glu/sgi/libnurbs/nurbtess/*.h \ - $(DIRECTORY)/src/glu/sgi/libnurbs/nurbtess/*.cc \ - $(DIRECTORY)/src/glu/sgi/libtess/README \ - $(DIRECTORY)/src/glu/sgi/libtess/alg-outline \ - $(DIRECTORY)/src/glu/sgi/libtess/*.[ch] \ - $(DIRECTORY)/src/glu/sgi/libutil/*.[ch] - -MESA_GLU_FILES = \ - $(DIRECTORY)/src/glu/mesa/README[12] \ - $(DIRECTORY)/src/glu/mesa/Makefile* \ - $(DIRECTORY)/src/glu/mesa/descrip.mms \ - $(DIRECTORY)/src/glu/mesa/mms_depend \ - $(DIRECTORY)/src/glu/mesa/*.def \ - $(DIRECTORY)/src/glu/mesa/depend \ - $(DIRECTORY)/src/glu/mesa/*.[ch] - -GLW_FILES = \ - $(DIRECTORY)/src/glw/*.[ch] \ - $(DIRECTORY)/src/glw/Makefile* \ - $(DIRECTORY)/src/glw/README \ - $(DIRECTORY)/src/glw/depend - -DEMO_FILES = \ - $(DIRECTORY)/progs/beos/*.cpp \ - $(DIRECTORY)/progs/beos/Makefile \ - $(DIRECTORY)/progs/images/*.rgb \ - $(DIRECTORY)/progs/images/*.rgba \ - $(DIRECTORY)/progs/demos/Makefile* \ - $(DIRECTORY)/progs/demos/descrip.mms \ - $(DIRECTORY)/progs/demos/*.[ch] \ - $(DIRECTORY)/progs/demos/*.cxx \ - $(DIRECTORY)/progs/demos/*.dat \ - $(DIRECTORY)/progs/demos/README \ - $(DIRECTORY)/progs/osdemos/Makefile \ - $(DIRECTORY)/progs/osdemos/*.c \ - $(DIRECTORY)/progs/xdemos/Makefile* \ - $(DIRECTORY)/progs/xdemos/descrip.mms \ - $(DIRECTORY)/progs/xdemos/*.[chf] \ - $(DIRECTORY)/progs/redbook/Makefile* \ - $(DIRECTORY)/progs/redbook/README \ - $(DIRECTORY)/progs/redbook/*.[ch] \ - $(DIRECTORY)/progs/samples/Makefile* \ - $(DIRECTORY)/progs/samples/README \ - $(DIRECTORY)/progs/samples/*.c \ - $(DIRECTORY)/progs/windml/Makefile.ugl \ - $(DIRECTORY)/progs/windml/*.c \ - $(DIRECTORY)/progs/windml/*.bmp \ - $(DIRECTORY)/progs/ggi/*.c \ - $(DIRECTORY)/windows/VC6/progs/demos/*.dsp \ - $(DIRECTORY)/windows/VC6/progs/progs.dsw \ - $(DIRECTORY)/windows/VC7/progs/demos/*.vcproj \ - $(DIRECTORY)/windows/VC7/progs/progs.sln - -GLUT_FILES = \ - $(DIRECTORY)/include/GL/glut.h \ - $(DIRECTORY)/include/GL/glutf90.h \ - $(DIRECTORY)/src/glut/glx/Makefile* \ - $(DIRECTORY)/src/glut/glx/depend \ - $(DIRECTORY)/src/glut/glx/*def \ - $(DIRECTORY)/src/glut/glx/descrip.mms \ - $(DIRECTORY)/src/glut/glx/mms_depend \ - $(DIRECTORY)/src/glut/glx/*.[ch] \ - $(DIRECTORY)/src/glut/beos/*.[ch] \ - $(DIRECTORY)/src/glut/beos/*.cpp \ - $(DIRECTORY)/src/glut/beos/Makefile \ - $(DIRECTORY)/src/glut/dos/*.[ch] \ - $(DIRECTORY)/src/glut/dos/Makefile.DJ \ - $(DIRECTORY)/src/glut/dos/PC_HW/*.[chS] \ - $(DIRECTORY)/src/glut/ggi/*.[ch] \ - $(DIRECTORY)/src/glut/ggi/Makefile \ - $(DIRECTORY)/windows/VC6/progs/glut/glut.dsp \ - $(DIRECTORY)/windows/VC7/progs/glut/glut.vcproj - -DEPEND_FILES = \ - $(TOP)/src/mesa/depend \ - $(TOP)/src/glw/depend \ - $(TOP)/src/glut/glx/depend \ - $(TOP)/src/glu/sgi/depend - - -LIB_FILES = $(MAIN_FILES) $(DRI_FILES) $(SGI_GLU_FILES) $(GLW_FILES) - - -# Everything for new a Mesa release: -tarballs: rm_depend lib_gz demo_gz glut_gz lib_bz2 demo_bz2 glut_bz2 lib_zip demo_zip glut_zip md5 - - -rm_depend: - @for dep in $(DEPEND_FILES) ; do \ - rm -f $$dep ; \ - touch $$dep ; \ - done - -lib_gz: - rm -f configs/current ; \ - cd .. ; \ - tar -cf $(LIB_NAME).tar $(LIB_FILES) ; \ - gzip $(LIB_NAME).tar ; \ - mv $(LIB_NAME).tar.gz $(DIRECTORY) - -demo_gz: - cd .. ; \ - tar -cf $(DEMO_NAME).tar $(DEMO_FILES) ; \ - gzip $(DEMO_NAME).tar ; \ - mv $(DEMO_NAME).tar.gz $(DIRECTORY) - -glut_gz: - cd .. ; \ - tar -cf $(GLUT_NAME).tar $(GLUT_FILES) ; \ - gzip $(GLUT_NAME).tar ; \ - mv $(GLUT_NAME).tar.gz $(DIRECTORY) - -lib_bz2: - rm -f configs/current ; \ - cd .. ; \ - tar -cf $(LIB_NAME).tar $(LIB_FILES) ; \ - bzip2 $(LIB_NAME).tar ; \ - mv $(LIB_NAME).tar.bz2 $(DIRECTORY) - -demo_bz2: - cd .. ; \ - tar -cf $(DEMO_NAME).tar $(DEMO_FILES) ; \ - bzip2 $(DEMO_NAME).tar ; \ - mv $(DEMO_NAME).tar.bz2 $(DIRECTORY) - -glut_bz2: - cd .. ; \ - tar -cf $(GLUT_NAME).tar $(GLUT_FILES) ; \ - bzip2 $(GLUT_NAME).tar ; \ - mv $(GLUT_NAME).tar.bz2 $(DIRECTORY) - -lib_zip: - rm -f configs/current ; \ - rm -f $(LIB_NAME).zip ; \ - cd .. ; \ - zip -qr $(LIB_NAME).zip $(LIB_FILES) ; \ - mv $(LIB_NAME).zip $(DIRECTORY) - -demo_zip: - rm -f $(DEMO_NAME).zip ; \ - cd .. ; \ - zip -qr $(DEMO_NAME).zip $(DEMO_FILES) ; \ - mv $(DEMO_NAME).zip $(DIRECTORY) - -glut_zip: - rm -f $(GLUT_NAME).zip ; \ - cd .. ; \ - zip -qr $(GLUT_NAME).zip $(GLUT_FILES) ; \ - mv $(GLUT_NAME).zip $(DIRECTORY) - -md5: - @-md5sum $(LIB_NAME).tar.gz - @-md5sum $(LIB_NAME).tar.bz2 - @-md5sum $(LIB_NAME).zip - @-md5sum $(DEMO_NAME).tar.gz - @-md5sum $(DEMO_NAME).tar.bz2 - @-md5sum $(DEMO_NAME).zip - @-md5sum $(GLUT_NAME).tar.gz - @-md5sum $(GLUT_NAME).tar.bz2 - @-md5sum $(GLUT_NAME).zip diff --git a/nx-X11/extras/Mesa/Makefile.DJ b/nx-X11/extras/Mesa/Makefile.DJ deleted file mode 100644 index 78ebf43ef..000000000 --- a/nx-X11/extras/Mesa/Makefile.DJ +++ /dev/null @@ -1,93 +0,0 @@ -# Mesa 3-D graphics library -# Version: 4.0 -# -# Copyright (C) 1999 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. - -# DOS/DJGPP makefile v1.6 for Mesa -# -# Copyright (C) 2002 - Daniel Borca -# Email : dborca@users.sourceforge.net -# Web : http://www.geocities.com/dborca - - -# -# Available options: -# -# Environment variables: -# GLU=[mesa|sgi] specify GLU directory; can be `sgi' (requires GNU/C++) -# or `mesa'. -# default = mesa -# GLIDE path to Glide3 SDK; used with FX. -# default = $(TOP)/glide3 -# FX=1 build for 3dfx Glide3. Note that this disables -# compilation of most DMesa code and requires fxMesa. -# As a consequence, you'll need the DJGPP Glide3 -# library to build any application. -# default = no -# X86=1 optimize for x86 (if possible, use MMX, SSE, 3DNow). -# default = no -# -# Targets: -# all: build everything -# libgl: build GL -# libglu: build GLU -# libglut: build GLUT -# clean: remove object files -# realclean: remove all generated files -# - - - -.PHONY : all libgl libglu libglut clean realclean - -GLU ?= mesa - -CFLAGS = -Wall -W -pedantic -CFLAGS += -O2 -ffast-math - -export CFLAGS - -ifeq ($(wildcard $(addsuffix /rm.exe,$(subst ;, ,$(PATH)))),) -UNLINK = del $(subst /,\,$(1)) -else -UNLINK = $(RM) $(1) -endif - -all: libgl libglu libglut - -libgl: lib - $(MAKE) -f Makefile.DJ -C src/mesa -libglu: lib - $(MAKE) -f Makefile.DJ -C src/glu/$(GLU) -libglut: lib - $(MAKE) -f Makefile.DJ -C src/glut/dos - -lib: - mkdir lib - -clean: - $(MAKE) -f Makefile.DJ clean -C src/mesa - $(MAKE) -f Makefile.DJ clean -C src/glu/mesa - $(MAKE) -f Makefile.DJ clean -C src/glu/sgi - $(MAKE) -f Makefile.DJ clean -C src/glut/dos - -realclean: clean - -$(call UNLINK,lib/*.a) - -$(call UNLINK,lib/*.dxe) diff --git a/nx-X11/extras/Mesa/Makefile.mgw b/nx-X11/extras/Mesa/Makefile.mgw deleted file mode 100644 index 70c264a8d..000000000 --- a/nx-X11/extras/Mesa/Makefile.mgw +++ /dev/null @@ -1,88 +0,0 @@ -# Mesa 3-D graphics library -# Version: 4.0 -# -# Copyright (C) 1999 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. - -# MinGW makefile v1.2 for Mesa -# -# Copyright (C) 2002 - Daniel Borca -# Email : dborca@users.sourceforge.net -# Web : http://www.geocities.com/dborca - - -# -# Available options: -# -# Environment variables: -# GLIDE path to Glide3 SDK; used with FX. -# default = $(TOP)/glide3 -# FX=1 build for 3dfx Glide3. Note that this disables -# compilation of most WMesa code and requires fxMesa. -# As a consequence, you'll need the Win32 Glide3 -# library to build any application. -# default = no -# ICD=1 build the installable client driver interface -# (windows opengl driver interface) -# default = no -# X86=1 optimize for x86 (if possible, use MMX, SSE, 3DNow). -# default = no -# -# Targets: -# all: build everything -# libgl: build GL -# clean: remove object files -# realclean: remove all generated files -# - - - -.PHONY : all libgl clean realclean - -ifeq ($(ICD),1) - # when -std=c99 mingw will not define WIN32 - CFLAGS = -Wall -W -Werror -else - # I love c89 - CFLAGS = -Wall -W -pedantic -endif -CFLAGS += -O2 -ffast-math - -export CFLAGS - -ifeq ($(wildcard $(addsuffix /rm.exe,$(subst ;, ,$(PATH)))),) -UNLINK = del $(subst /,\,$(1)) -else -UNLINK = $(RM) $(1) -endif - -all: libgl - -libgl: lib - $(MAKE) -f Makefile.mgw -C src/mesa - -lib: - mkdir lib - -clean: - $(MAKE) -f Makefile.mgw clean -C src/mesa - -realclean: clean - -$(call UNLINK,lib/*.a) - -$(call UNLINK,lib/*.dll) diff --git a/nx-X11/extras/Mesa/README.XF86 b/nx-X11/extras/Mesa/README.XF86 deleted file mode 100644 index 7d2c1af31..000000000 --- a/nx-X11/extras/Mesa/README.XF86 +++ /dev/null @@ -1,47 +0,0 @@ -Importing Mesa. - -Mesa should be imported from a tree checked out from the Mesa CVS -repository (:pserver:anonymous@cvs.mesa3d.sourceforge.net:/cvsroot/mesa3d). - -Instructions for importing a tagged Mesa release X.Y. - -1. Check out the release version from the Mesa CVS repository: - - % cvs -d :pserver:anonymous@cvs.freedesktop.org:/cvsroot/mesa \ - co -r mesa_X_Y Mesa - -2. Remove the CVSROOT directory: - - % cd Mesa - % rm -fr CVSROOT - -3. Remove the CVS admin directories: - - % find . -name CVS -print | xargs rm -fr - -4. Import: - - % cvs import -m "Mesa version X.Y" xc/extras/Mesa MESA MESA-X_Y - -5. Merge: - - % cvs co -j MESA_PREV -j MESA-X_Y xc/extras/Mesa - - resolve conflicts, and commit. - -6. Check for new files that are GPL'd or which were in directories - previously removed. Remove them from the main branch. - - - - -When importing a snapshot of a Mesa (stable) branch, do everything as above, -except check out the branch with: - - % cvs -d :pserver:anonymous@cvs.freedesktop.org:/cvsroot/mesa \ - co -r mesa_X_Y_branch Mesa - -and import with the tag MESA-X_Y-yyyymmdd indicating the date of the snapshot. - - -$XFree86: xc/extras/Mesa/README.XF86,v 1.1 2000/11/30 15:46:25 dawes Exp $ diff --git a/nx-X11/extras/Mesa/XOrg-Xlist b/nx-X11/extras/Mesa/XOrg-Xlist deleted file mode 100644 index 76661f525..000000000 --- a/nx-X11/extras/Mesa/XOrg-Xlist +++ /dev/null @@ -1,15 +0,0 @@ -include/GLView.h -src/egl -src/glu -src/glut -src/glw/boilerplate.c -src/mesa/drivers/allegro -src/mesa/drivers/beos -src/mesa/drivers/d3d -src/mesa/drivers/directfb -src/mesa/drivers/dos -src/mesa/drivers/ggi -src/mesa/drivers/svga -src/mesa/drivers/windows -progs -doxygen diff --git a/nx-X11/extras/Mesa/bin/installmesa b/nx-X11/extras/Mesa/bin/installmesa deleted file mode 100755 index 0bfce33c7..000000000 --- a/nx-X11/extras/Mesa/bin/installmesa +++ /dev/null @@ -1,69 +0,0 @@ -#!/bin/sh - -# -# Simple shell script for installing Mesa's header and library files. -# If the copy commands below don't work on a particular system (i.e. the -# -f or -d flags), we may need to branch on `uname` to do the right thing. -# - - -TOP=. - -INCLUDE_DIR="/usr/local/include" -LIB_DIR="/usr/local/lib" - -if [ "x$#" = "x0" ] ; then -echo -echo "***** Mesa installation - You may need root privileges to do this *****" -echo -echo "Default directory for header files is:" ${INCLUDE_DIR} -echo "Enter new directory or press to accept this default." - -read INPUT -if [ "x${INPUT}" != "x" ] ; then - INCLUDE_DIR=${INPUT} -fi - -echo -echo "Default directory for library files is:" ${LIB_DIR} -echo "Enter new directory or press to accept this default." - -read INPUT -if [ "x${INPUT}" != "x" ] ; then - LIB_DIR=${INPUT} -fi - -echo -echo "About to install Mesa header files (GL/*.h) in: " ${INCLUDE_DIR}/GL -echo "and Mesa library files (libGL.*, etc) in: " ${LIB_DIR} -echo "Press to continue, or -C to abort." - -read INPUT - -else -INCLUDE_DIR=$1/include -LIB_DIR=$1/lib -fi - -# flags: -# -f = force -# -d = preserve symlinks (does not work on BSD) - -if [ `uname` = "FreeBSD" ] ; then - CP_FLAGS="-f" -else - CP_FLAGS="-fd" -fi - - -set -v - -mkdir ${INCLUDE_DIR} -mkdir ${INCLUDE_DIR}/GL -mkdir ${INCLUDE_DIR}/GLES -mkdir ${LIB_DIR} -cp -f ${TOP}/include/GL/*.h ${INCLUDE_DIR}/GL -# NOT YET: cp -f ${TOP}/include/GLES/*.h ${INCLUDE_DIR}/GLES -cp ${CP_FLAGS} ${TOP}/lib*/lib* ${LIB_DIR} - -echo "Done." diff --git a/nx-X11/extras/Mesa/bin/mklib b/nx-X11/extras/Mesa/bin/mklib deleted file mode 100755 index 58c4fa705..000000000 --- a/nx-X11/extras/Mesa/bin/mklib +++ /dev/null @@ -1,698 +0,0 @@ -#!/bin/sh - -# Make a shared library. -# This script should be useful for projects other than Mesa. -# Improvements/fixes are welcome. - - -# Copyright (C) 1999-2005 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. - - -# -# Option defaults -# -LIBNAME="" -MAJOR=1 -MINOR=0 -PATCH="" -DEPS="" -LINK="" -CPLUSPLUS=0 -STATIC=0 -INSTALLDIR="." -ARCH="auto" -ARCHOPT="" -NOPREFIX=0 -EXPORTS="" - - -# -# Parse arguments -# -while true -do - case $1 in - '-h' | '--help') - echo 'Usage: mklib [options] objects' - echo 'Create a shared library from object files.' - echo ' -o LIBRARY specifies the name of the resulting library, without' - echo ' the leading "lib" or any suffix.' - echo ' (eg: "-o GL" might result in "libGL.so" being made)' - echo ' -major N specifies major version number (default is 1)' - echo ' -minor N specifies minor version number (default is 0)' - echo ' -patch N specifies patch version number (default is 0)' - echo ' -lLIBRARY specifies a dependency on LIBRARY' - echo ' -LDIR search in DIR for library dependencies' - echo ' -linker L explicity specify the linker program to use (eg: gcc, g++)' - echo ' Not observed on all systems at this time.' - echo ' -cplusplus link with C++ runtime' - echo ' -static make a static library (default is dynamic/shared)' - echo ' -install DIR put resulting library file(s) in DIR' - echo ' -arch ARCH override using `uname` to determine host system' - echo ' -archopt OPT specify an extra achitecture-specific option OPT' - echo " -noprefix don't prefix library name with 'lib' nor add any suffix" - echo ' -exports FILE only export the symbols listed in FILE' - echo ' -h, --help display this information and exit' - exit 1 - ;; - '-o') - shift 1; - LIBNAME=$1 - ;; - '-major') - shift 1; - MAJOR=$1 - ;; - '-minor') - shift 1; - MINOR=$1 - ;; - '-patch') - shift 1; - PATCH=$1 - ;; - '-linker') - shift 1; - LINK=$1 - ;; - -l*) - DEPS="$DEPS $1" - ;; - -L*) - DEPS="$DEPS $1" - ;; - '-cplusplus') - CPLUSPLUS=1 - ;; - '-static') - STATIC=1 - ;; - '-install') - shift 1; - INSTALLDIR=$1 - ;; - '-arch') - shift 1; - ARCH=$1 - ;; - '-archopt') - shift 1; - ARCHOPT=$1 - ;; - '-noprefix') - NOPREFIX=1 - ;; - '-exports') - shift 1; - EXPORTS=$1 - ;; - -*) - echo "mklib: Unknown option: " $1 ; - exit 1 - ;; - *) - # This should be the first object file, stop parsing - break - esac - shift 1 -done -OBJECTS=$@ - - -if [ ${ARCH} = "auto" ] ; then - ARCH=`uname` -fi - - -# -# Error checking -# -if [ "x${LIBNAME}" = "x" ] ; then - echo "mklib: Error: no library name specified" - exit 1 -fi -if [ "x${OBJECTS}" = "x" ] ; then - echo "mklib: Error: no object files specified" - exit 1 -fi - - -# -# Debugging info -# -if [ ] ; then - echo "-----------------" - echo ARCH is $ARCH - echo LIBNAME is $LIBNAME - echo MAJOR is $MAJOR - echo MINOR is $MINOR - echo PATCH is $PATCH - echo DEPS are $DEPS - echo "EXPORTS in" $EXPORTS - echo "-----------------" -fi - - -# -# OK, make the library now -# -case $ARCH in - - 'Linux' | 'OpenBSD') - # we assume gcc - - if [ "x$LINK" = "x" ] ; then - # -linker was not specified so set default link command now - if [ $CPLUSPLUS = 1 ] ; then - LINK=g++ - else - LINK=gcc - fi - fi - - if [ $NOPREFIX = 1 ] ; then - # No "lib" or ".so" part - echo "mklib: Making" $ARCH "shared library: " ${LIBNAME} - #OPTS="-shared -Wl,-soname,${LIBNAME}" # soname??? - OPTS="-shared" - - # Check if objects are 32-bit and we're running in 64-bit - # environment. If so, pass -m32 flag to linker. - set ${OBJECTS} - ABI32=`file $1 | grep 32-bit` - if [ "${ABI32}" -a `uname -m` = "x86_64" ] ; then - OPTS="-m32 ${OPTS}" - fi - - rm -f ${LIBNAME} - # make lib - ${LINK} ${OPTS} -o ${LIBNAME} ${OBJECTS} ${DEPS} - # finish up - FINAL_LIBS="${LIBNAME}" - elif [ $STATIC = 1 ] ; then - LIBNAME="lib${LIBNAME}" # prefix with "lib" - echo "mklib: Making" $ARCH "static library: " ${LIBNAME}.a - LINK="ar" - OPTS="-ru" - # make lib - ${LINK} ${OPTS} ${LIBNAME}.a ${OBJECTS} - ranlib ${LIBNAME}.a - # finish up - FINAL_LIBS=${LIBNAME}.a - else - LIBNAME="lib${LIBNAME}" # prefix with "lib" - if [ $ARCH = 'Linux' ] ; then - OPTS="-Xlinker -Bsymbolic -shared -Wl,-soname,${LIBNAME}.so.${MAJOR}" - else - OPTS="-shared -Wl,-soname,${LIBNAME}.so.${MAJOR}" - fi - if [ $EXPORTS ] ; then - #OPTS="${OPTS} -Xlinker --retain-symbols-file ${EXPORTS}" - # Make the 'exptmp' file for --version-script option - echo "VERSION_${MAJOR}.${MINOR} {" > exptmp - echo "global:" >> exptmp - sed 's/$/;/' ${EXPORTS} >> exptmp - echo "local:" >> exptmp - echo "*;" >> exptmp - echo "};" >> exptmp - OPTS="${OPTS} -Xlinker --version-script=exptmp" - # exptmp is removed below - fi - - # Check if objects are 32-bit and we're running in 64-bit - # environment. If so, pass -m32 flag to linker. - set ${OBJECTS} - ABI32=`file $1 | grep 32-bit` - if [ "${ABI32}" -a `uname -m` = "x86_64" ] ; then - OPTS="-m32 ${OPTS}" - fi - - if [ x${PATCH} = "x" ] ; then - VERSION="${MAJOR}.${MINOR}" - else - VERSION="${MAJOR}.${MINOR}.${PATCH}" - fi - - echo "mklib: Making" $ARCH "shared library: " ${LIBNAME}.so.${VERSION} - - # rm any old libs - rm -f ${LIBNAME}.so.${VERSION} - rm -f ${LIBNAME}.so.${MAJOR} - rm -f ${LIBNAME}.so - - # make lib - ${LINK} ${OPTS} -o ${LIBNAME}.so.${VERSION} ${OBJECTS} ${DEPS} - # make usual symlinks - ln -s ${LIBNAME}.so.${VERSION} ${LIBNAME}.so.${MAJOR} - ln -s ${LIBNAME}.so.${MAJOR} ${LIBNAME}.so - # finish up - FINAL_LIBS="${LIBNAME}.so.${VERSION} ${LIBNAME}.so.${MAJOR} ${LIBNAME}.so" -# rm -f exptmp - fi - ;; - - 'SunOS') - if [ $STATIC = 1 ] ; then - LIBNAME="lib${LIBNAME}.a" - echo "mklib: Making SunOS static library: " ${LIBNAME} - rm -f ${LIBNAME} - ar -ruv ${LIBNAME} ${OBJECTS} - FINAL_LIBS=${LIBNAME} - else - LIBNAME="lib${LIBNAME}.so" - echo "mklib: Making SunOS shared library: " ${LIBNAME} - # XXX OPTS for gcc should be -shared, but that doesn't work. - # Using -G does work though. - OPTS="-G" - if [ "x$LINK" = "x" ] ; then - # -linker was not specified, choose default linker now - if [ $CPLUSPLUS = 1 ] ; then - # determine linker and options for C++ code - if [ `which c++` ] ; then - # use Sun c++ - LINK="c++" - elif [ `type g++` ] ; then - # use g++ - LINK="g++" - else - echo "mklib: warning: can't find C++ comiler, trying CC." - LINK="CC" - fi - else - # use native Sun linker for C code - LINK="ld" - fi - fi - echo "mklib: linker is" ${LINK} ${OPTS} - rm -f ${LIBNAME}.${MAJOR} ${LIBNAME} - ${LINK} ${OPTS} -o ${LIBNAME}.${MAJOR} ${OBJECTS} ${DEPS} - ln -s ${LIBNAME}.${MAJOR} ${LIBNAME} - FINAL_LIBS="${LIBNAME}.${MAJOR} ${LIBNAME}" - fi - ;; - - 'FreeBSD') - # we assume gcc - - if [ "x$LINK" = "x" ] ; then - # -linker was not specified so set default link command now - if [ $CPLUSPLUS = 1 ] ; then - LINK=g++ - else - LINK=gcc - fi - fi - - if [ $NOPREFIX = 1 ] ; then - # No "lib" or ".so" part - echo "mklib: Making FreeBSD shared library: " ${LIBNAME} - OPTS="-shared" - rm -f ${LIBNAME} - ${LINK} ${OPTS} -o ${LIBNAME} ${OBJECTS} ${DEPS} - FINAL_LIBS=${LIBNAME} - elif [ $STATIC = 1 ] ; then - STLIB="lib${LIBNAME}.a" - echo "mklib: Making FreeBSD static library: " ${STLIB} - rm -f ${STLIB} - ar cq ${STLIB} ${OBJECTS} - ranlib ${STLIB} - FINAL_LIBS=${STLIB} - else - SHLIB="lib${LIBNAME}.so.${MAJOR}" - OPTS="-shared -Wl,-soname,${SHLIB}" - echo "mklib: Making FreeBSD shared library: " ${SHLIB} - rm -f ${SHLIB} - ${LINK} ${OPTS} -o ${SHLIB} ${OBJECTS} ${DEPS} - ln -sf ${SHLIB} "lib${LIBNAME}.so" - FINAL_LIBS="${SHLIB} lib${LIBNAME}.so" - fi - ;; - - 'NetBSD') - if [ $STATIC = 1 ] ; then - LIBNAME="lib${LIBNAME}_pic.a" - echo "mklib: Making NetBSD PIC static library: " ${LIBNAME} - rm -f ${LIBNAME} - ar cq ${LIBNAME} ${OBJECTS} - ranlib ${LIBNAME} - FINAL_LIBS=${LIBNAME} - else - LIBNAME="lib${LIBNAME}.so.${MAJOR}.${MINOR}" - echo "mklib: Making NetBSD PIC shared library: " ${LIBNAME} - rm -f ${LIBNAME} - ld -x -Bshareable -Bforcearchive -o ${LIBNAME} ${OBJECTS} - FINAL_LIBS=${LIBNAME} - fi - ;; - - 'IRIX' | 'IRIX64') - if [ $STATIC = 1 ] ; then - LIBNAME="lib${LIBNAME}.a" - rm -f ${LIBNAME} - ar rc ${LIBNAME} ${OBJECTS} - FINAL_LIBS=${LIBNAME} - else - LIBNAME="lib${LIBNAME}.so" # prefix with "lib", suffix with ".so" - # XXX we should run 'file' on the first object file to determine - # if it's o32, n32 or 64 format, as we do for Linux above. - if [ $ARCHOPT = "64" ] ; then - # 64-bit ABI - OPTS="-64 -shared -all" - echo "mklib: Making IRIX 64-bit shared library: " ${LIBNAME} - elif [ $ARCHOPT = "o32" ] ; then - # old 32-bit ABI - OPTS="-32 -shared -all" - echo "mklib: Making IRIX o32-bit shared library: " ${LIBNAME} - else - # new 32-bit ABI - OPTS="-n32 -shared -all" - echo "mklib: Making IRIX n32-bit shared library: " ${LIBNAME} - fi - if [ $CPLUSPLUS = 1 ] ; then - LINK="CC" - else - LINK="ld" - fi - ${LINK} ${OPTS} -o ${LIBNAME} ${OBJECTS} ${DEPS} - FINAL_LIBS=${LIBNAME} - fi - ;; - - 'linux-cygwin') - LIBNAME="lib${LIBNAME}.a" - echo "mklib: Making linux-cygwin library: " ${LIBNAME} - rm -f ${LIBNAME} - gnuwin32ar ruv ${LIBNAME} ${OBJECTS} - FINAL_LIBS=${LIBNAME} - ;; - - 'HP-UX') - if [ $STATIC = 1 ] ; then - LIBNAME="lib${LIBNAME}.a" - echo "mklib: Making HP-UX static library: " ${LIBNAME} - rm -f ${LIBNAME} - ar -ruv ${LIBNAME} ${OBJECTS} - FINAL_LIBS=${LIBNAME} - else - RUNLIB="lib${LIBNAME}.${MAJOR}" - DEVLIB="lib${LIBNAME}.sl" - echo "mklib: Making HP-UX shared library: " ${RUNLIB} ${DEVLIB} - ld -b -o ${RUNLIB} +b ${RUNLIB} ${OBJECTS} ${DEPS} - ln -s ${RUNLIB} ${DEVLIB} - FINAL_LIBS="${RUNLIB} ${DEVLIB}" - fi - ;; - - 'AIX' | 'AIX64') - if [ $ARCH = "AIX64" ] ; then - X64="-X64" - fi - - if [ $STATIC = 1 ] ; then - LIBNAME="lib${LIBNAME}.a" - echo "mklib: Making AIX static library: " ${LIBNAME} - ar -ruv ${X64} ${LIBNAME} ${OBJECTS} - FINAL_LIBS=${LIBNAME} - else - EXPFILE="lib${LIBNAME}.exp" - OFILE=shr.o #Want to be consistent with the IBM libGL.a - LIBNAME="lib${LIBNAME}.a" # shared objects are still stored in the .a libraries - if [ $ARCH = "AIX64" ] ; then - OPTS="-bE:${EXPFILE} -bM:SRE -bnoentry -q64" - else - OPTS="-bE:${EXPFILE} -bM:SRE -bnoentry" - fi - rm -f ${EXPFILE} ${OFILE} - NM="/bin/nm -eC ${X64}" - echo "#! /usr/lib/${LIBNAME}" > ${EXPFILE} - ${NM} ${OBJECTS} | awk '{ - if ((($2 == "T") || ($2 == "D") || ($2 == "B")) \ - && ( substr($1,1,1) != ".")) { - if (substr ($1, 1, 7) != "__sinit" && - substr ($1, 1, 7) != "__sterm") { - if (substr ($1, 1, 5) == "__tf1") - print (substr ($1, 7)) - else if (substr ($1, 1, 5) == "__tf9") - print (substr ($1, 15)) - else - print $1 - } - } - }' | sort -u >> ${EXPFILE} - cc ${OPTS} -o ${OFILE} ${OBJECTS} ${DEPS} - ar ${X64} -r ${LIBNAME} ${OFILE} - FINAL_LIBS="${LIBNAME}" - fi - ;; - - 'OpenSTEP') - LIBNAME="lib${LIBNAME}.a" - echo "mklib: Making OpenSTEP static library: " ${LIBNAME} - libtool -static -o ${LIBNAME} - ${OBJECTS} - FINAL_LIBS=${LIBNAME} - ;; - - 'OSF1') - if [ $STATIC = 1 ] ; then - LIBNAME="lib${LIBNAME}.a" - echo "mklib: Making OSF/1 static library: " ${LIBNAME} - rm -f ${LIBNAME} - ar -ruv ${LIBNAME} ${OBJECTS} - FINAL_LIBS=${LIBNAME} - else - VERSION="${MAJOR}.${MINOR}" - LIBNAME="lib${LIBNAME}.so" - echo "mklib: Making OSF/1 shared library: " ${LIBNAME} - if [ "x$LINK" = "x" ] ; then - if [ $CPLUSPLUS = 1 ] ; then - LINK=cxx - else - LINK=cc - fi - fi - rm -f ${LIBNAME}.${VERSION} - ${LINK} -o ${LIBNAME}.${VERSION} -shared -set_version ${VERSION} -soname ${LIBNAME}.${VERSION} -expect_unresolved \* -all ${OBJECTS} ${DEPS} - ln -sf ${LIBNAME}.${VERSION} ${LIBNAME} - FINAL_LIBS="${LIBNAME} ${LIBNAME}.${VERSION}" - fi - ;; - - 'Darwin') - if [ $STATIC = 1 ] ; then - LIBNAME="lib${LIBNAME}.a" - echo "mklib: Making Darwin static library: " ${LIBNAME} - LINK="ar" - OPTS="-ruv" - ${LINK} ${OPTS} ${LIBNAME} ${OBJECTS} - FINAL_LIBS=${LIBNAME} - else - LIBNAME="lib${LIBNAME}.dylib" - echo "mklib: Making Darwin shared library: " ${LIBNAME} - FLAGS="-dynamiclib -multiply_defined suppress -current_version ${MAJOR}.${MINOR}.0 -compatibility_version ${MAJOR}.${MINOR}.0" - if [ $CPLUSPLUS = 1 ] ; then - LINK="g++" - else - LINK="cc" - fi - ${LINK} ${FLAGS} -o ${LIBNAME} ${OBJECTS} ${DEPS} - FINAL_LIBS=${LIBNAME} - fi - ;; - - 'LynxOS') - LIBNAME="lib${LIBNAME}.a" - echo "mklib: Making LynxOS static library: " ${LIBNAME} - rm -f ${LIBNAME} - ar ru ${LIBNAME} ${OBJECTS} - FINAL_LIBS=${LIBNAME} - ;; - - 'BeOS') - if [ $STATIC = 1 ] ; then - LIBNAME="lib${LIBNAME}.a" - echo "mklib: Making BeOS static library: " ${LIBNAME} - ar -cru "${LIBNAME}" ${OBJECTS} - else - LIBNAME="lib${LIBNAME}.so" - echo "mklib: Making BeOS shared library: " ${LIBNAME} - gcc -nostart -Xlinker "-soname=${LIBNAME}" -L/Be/develop/lib/x86 -lbe ${DEPS} ${OBJECTS} -o "${LIBNAME}" - mimeset -f "${LIBNAME}" - # XXX remove the Mesa3D stuff here since mklib isn't mesa-specific. - setversion "${LIBNAME}" -app ${MAJOR} ${MINOR} ${PATCH} -short "Powered by Mesa3D!" -long "Powered by Mesa3D!" - fi - FINAL_LIBS=${LIBNAME} - ;; - - 'QNX') - LIBNAME="lib${LIBNAME}.a" - echo "mklib: Making QNX library: " ${LIBNAME} - wlib ${LIBNAME} ${OBJECTS} - FINAL_LIBS=${LIBNAME} - ;; - - 'MorphOS') - LIBNAME="lib${LIBNAME}.a" - echo "mklib: Making MorphOS library: " ${LIBNAME} - ppc-morphos-ar rc ${LIBNAME} ${OBJECTS} - FINAL_LIBS="${LIBNAME}" - ;; - - 'icc') - # Intel C compiler - # This should get merged into the Linux code, above, since this isn't - # really a different architecture. - LIBNAME="lib${LIBNAME}" # prefix with "lib" - - if [ $STATIC = 1 ] ; then - echo "mklib: Making Intel ICC static library: " ${LIBNAME}.a - LINK="ar" - OPTS="-ruv" - # make lib - ${LINK} ${OPTS} ${LIBNAME}.a ${OBJECTS} - # finish up - FINAL_LIBS="${LIBNAME}.a" - else - OPTS="-shared" - VERSION="${MAJOR}.${MINOR}.${PATCH}" - echo "mklib: Making Intel ICC shared library: " ${LIBNAME}.so.${VERSION} - - if [ $CPLUSPLUS = 1 ] ; then - LINK="icc" - else - LINK="icc" - fi - # rm any old libs - rm -f ${LIBNAME}.so.${VERSION} - rm -f ${LIBNAME}.so.${MAJOR} - rm -f ${LIBNAME}.so - # make lib - ${LINK} ${OPTS} -o ${LIBNAME}.so.${VERSION} ${OBJECTS} ${DEPS} - # make usual symlinks - ln -s ${LIBNAME}.so.${VERSION} ${LIBNAME}.so.${MAJOR} - ln -s ${LIBNAME}.so.${MAJOR} ${LIBNAME}.so - # finish up - FINAL_LIBS="${LIBNAME}.so.${VERSION} ${LIBNAME}.so.${MAJOR} ${LIBNAME}.so" - fi - ;; - - 'aix-gcc') - # AIX with gcc - if [ $STATIC = 1 ] ; then - LIBNAME="lib${LIBNAME}.a" - echo "mklib: Making AIX GCC static library: " ${LIBNAME} - rm -f ${LIBNAME} - ar ru ${LIBNAME} ${OBJECTS} - FINAL_LIBS=${LIBNAME} - else - LIBNAME="lib${LIBNAME}.so" # prefix with "lib", suffix with ".so" - echo "mklib: Making AIX GCC shared library: " ${LIBNAME} - # remove old lib - rm -f ${LIBNAME} - # make the lib - gcc -shared -Wl,-G ${OBJECTS} ${DEPS} -o ${LIBNAME} - # NOTE: the application linking with this library must specify - # the -Wl,-brtl flags to gcc - FINAL_LIBS=${LIBNAME} - fi - ;; - - 'ultrix') - # XXX untested - if [ $STATIC = 0 ] ; then - echo "mklib: Warning shared libs not supported on Ultrix" - fi - LIBNAME="lib${LIBNAME}.a" - echo "mklib: Making static library for Ultrix: " ${LIBNAME} - rm -f ${LIBNAME} - ar ru ${LIBNAME} ${OBJECTS} - FINAL_LIBS="${LIBNAME}" - ;; - - CYGWIN*) - # GCC-based environment - CYGNAME="cyg${LIBNAME}" # prefix with "cyg" - LIBNAME="lib${LIBNAME}" # prefix with "lib" - - if [ $STATIC = 1 ] ; then - echo "mklib: Making" $ARCH "static library: " ${LIBNAME}.a - LINK="ar" - OPTS="-ru" - # make lib - ${LINK} ${OPTS} ${LIBNAME}.a ${OBJECTS} - ranlib ${LIBNAME}.a - # finish up - FINAL_LIBS=${LIBNAME}.a - else - OPTS="-shared -Wl,-export-all -Wl,--out-implib=${LIBNAME}-${MAJOR}.dll.a" - echo "mklib: Making" $ARCH "shared library: " ${LIBNAME}-${MAJOR}.dll - - if [ $CPLUSPLUS = 1 ] ; then - LINK="g++" - else - LINK="gcc" - fi - - # rm any old libs - rm -f ${LIBNAME}-${MAJOR}.dll - rm -f ${LIBNAME}.dll.a - rm -f ${LIBNAME}.a - - # make lib - ${LINK} ${OPTS} -o ${CYGNAME}-${MAJOR}.dll ${OBJECTS} ${DEPS} - # make usual symlinks - ln -s ${LIBNAME}-${MAJOR}.dll.a ${LIBNAME}.dll.a - # finish up - FINAL_LIBS="${LIBNAME}-${MAJOR}.dll.a ${LIBNAME}.dll.a" - # special case for installing in bin - FINAL_BINS="${CYGNAME}-${MAJOR}.dll" - fi - ;; - - 'example') - # If you're adding support for a new architecture, you can - # start with this: - if [ $STATIC = 1 ] ; then - LIBNAME="lib${LIBNAME}.a" - echo "mklib: Making static library for example arch: " ${LIBNAME} - rm -f ${LIBNAME} - ar rv ${LIBNAME} ${OBJECTS} - FINAL_LIBS="${LIBNAME}" - else - LIBNAME="lib${LIBNAME}.so" # prefix with "lib", suffix with ".so" - echo "mklib: Making shared library for example arch: " ${LIBNAME} - ld -o ${LIBNAME} ${OBJECTS} ${DEPS} - FINAL_LIBS="${LIBNAME}" - fi - ;; - - *) - echo "mklib: ERROR: Don't know how to make a static/shared library for" ${ARCH} - echo "mklib: Please add necessary commands to mklib script." - ;; -esac - - -# -# Put library files into installation directory if specified. -# -if [ ${INSTALLDIR} != "." ] ; then - echo "mklib: Installing" ${FINAL_LIBS} "in" ${INSTALLDIR} - mv ${FINAL_LIBS} ${INSTALLDIR}/ -fi diff --git a/nx-X11/extras/Mesa/configs/aix b/nx-X11/extras/Mesa/configs/aix deleted file mode 100644 index fe8e48cd6..000000000 --- a/nx-X11/extras/Mesa/configs/aix +++ /dev/null @@ -1,28 +0,0 @@ -# Configuration for AIX, dynamic libs - -include $(TOP)/configs/default - -CONFIG_NAME = aix - -# Compiler and flags -CC = cc -CXX = xlC - -CFLAGS = -O -DAIXV3 -CXXFLAGS = -O -DAIXV3 -MKLIB_OPTIONS = - -# Library names (actual file names) -GL_LIB_NAME = libGL.a -GLU_LIB_NAME = libGLU.a -GLUT_LIB_NAME = libglut.a -GLW_LIB_NAME = libGLw.a -OSMESA_LIB_NAME = libOSMesa.a - -GL_LIB_DEPS = -lX11 -lXext -lm -GLU_LIB_DEPS = -L$(TOP)/lib -l$(GL_LIB) -lm -lC -GLUT_LIB_DEPS = -L$(TOP)/lib -l$(GLU_LIB) -l$(GL_LIB) -lXi -lXmu -lX11 -lm -GLW_LIB_DEPS = -L$(TOP)/lib -l$(GL_LIB) -lXt -lX11 -OSMESA_LIB_DEPS = -L$(TOP)/lib -l$(GL_LIB) -APP_LIB_DEPS = -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lX11 -lXext -lXmu -lXi -lm -lC - diff --git a/nx-X11/extras/Mesa/configs/aix-64 b/nx-X11/extras/Mesa/configs/aix-64 deleted file mode 100644 index 0d9847529..000000000 --- a/nx-X11/extras/Mesa/configs/aix-64 +++ /dev/null @@ -1,28 +0,0 @@ -# Configuration for AIX 64-bit, dynamic libs - -include $(TOP)/configs/default - -CONFIG_NAME = aix-64 - -# Compiler and flags -CC = xlc -CXX = xlC - -CFLAGS = -q64 -qmaxmem=16384 -O -DAIXV3 -CXXFLAGS = -q64 -qmaxmem=16384 -O -DAIXV3 -MKLIB_OPTIONS = -arch AIX64 - -# Library names (actual file names) -GL_LIB_NAME = libGL.a -GLU_LIB_NAME = libGLU.a -GLUT_LIB_NAME = libglut.a -GLW_LIB_NAME = libGLw.a -OSMESA_LIB_NAME = libOSMesa.a - -GL_LIB_DEPS = -lX11 -lXext -lm -GLU_LIB_DEPS = -L$(TOP)/lib -l$(GL_LIB) -lm -lC -GLUT_LIB_DEPS = -L$(TOP)/lib -l$(GLU_LIB) -l$(GL_LIB) -lXi -lXmu -lX11 -lm -GLW_LIB_DEPS = -L$(TOP)/lib -l$(GL_LIB) -lXt -lX11 -OSMESA_LIB_DEPS = -L$(TOP)/lib -l$(GL_LIB) -APP_LIB_DEPS = -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lX11 -lXext -lXmu -lXi -lm -lC - diff --git a/nx-X11/extras/Mesa/configs/aix-gcc b/nx-X11/extras/Mesa/configs/aix-gcc deleted file mode 100644 index 5f10bf25d..000000000 --- a/nx-X11/extras/Mesa/configs/aix-gcc +++ /dev/null @@ -1,19 +0,0 @@ -# Configuration for AIX with gcc - -include $(TOP)/configs/default - -CONFIG_NAME = aix-gcc - -# Compiler and flags -CC = gcc -CXX = g++ - -CFLAGS = -O2 -DAIXV3 -CXXFLAGS = -O2 -DAIXV3 - -MKLIB_OPTIONS = -arch aix-gcc -GL_LIB_DEPS = -lX11 -lXext -lm -GLU_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) -lm -GLUT_LIB_DEPS = -L$(LIB_DIR -l$(GLU_LIB) -l$(GL_LIB) -lXi -lXmu -APP_LIB_DEPS = -L$(LIB_DIR) -Wl,-brtl -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lm -lX11 -lXext -lXmu -lXi - diff --git a/nx-X11/extras/Mesa/configs/aix-static b/nx-X11/extras/Mesa/configs/aix-static deleted file mode 100644 index f6f086edb..000000000 --- a/nx-X11/extras/Mesa/configs/aix-static +++ /dev/null @@ -1,23 +0,0 @@ -# Configuration for AIX, static libs - -include $(TOP)/configs/default - -CONFIG_NAME = aix-static - -# Compiler and flags -CC = cc -CXX = xlC - -CFLAGS = -O -DAIXV3 -CXXFLAGS = -O -DAIXV3 -MKLIB_OPTIONS = -static - -# Library names (actual file names) -GL_LIB_NAME = libGL.a -GLU_LIB_NAME = libGLU.a -GLUT_LIB_NAME = libglut.a -GLW_LIB_NAME = libGLw.a -OSMESA_LIB_NAME = libOSMesa.a - -APP_LIB_DEPS = -L$(LIB_DIR) -lX11 -lXext -lXmu -lXi -lm - diff --git a/nx-X11/extras/Mesa/configs/beos b/nx-X11/extras/Mesa/configs/beos deleted file mode 100644 index 1d2eaa959..000000000 --- a/nx-X11/extras/Mesa/configs/beos +++ /dev/null @@ -1,99 +0,0 @@ -# Configuration for BeOS -# Written by Philippe Houdoin - -include $(TOP)/configs/default - -CONFIG_NAME = beos - - -DEFINES = \ - -DBEOS_THREADS - -MACHINE=$(shell uname -m) -ifeq ($(MACHINE), BePC) - CPU = x86 -else - CPU = ppc -endif - -ifeq ($(CPU), x86) - # BeOS x86 settings - - DEFINES += \ - -DGNU_ASSEMBLER \ - -DUSE_X86_ASM \ - -DUSE_MMX_ASM \ - -DUSE_3DNOW_ASM \ - -DUSE_SSE_ASM - - ASM_SOURCES = $(X86_SOURCES) $(X86_API) - - CC = gcc - CXX = g++ - LD = gcc - - CFLAGS = \ - -Wall -Wno-multichar -Wno-ctor-dtor-privacy \ - $(DEFINES) - - CXXFLAGS = $(CFLAGS) - - LDFLAGS += -Xlinker - - ifdef DEBUG - CFLAGS += -g -O0 - LDFLAGS += -g - DEFINES += -DDEBUG - else - CFLAGS += -O3 - endif - - GLUT_CFLAGS = -fexceptions - -else - # BeOS PPC settings - - CC = mwcc - CXX = $(CC) - LD = mwldppc - - CFLAGS = \ - -w on -requireprotos \ - $(DEFINES) - - CXXFLAGS = $(CFLAGS) - - LDFLAGS += \ - -export pragma \ - -init _init_routine_ \ - -term _term_routine_ \ - -lroot \ - /boot/develop/lib/ppc/glue-noinit.a \ - /boot/develop/lib/ppc/init_term_dyn.o \ - /boot/develop/lib/ppc/start_dyn.o - - ifdef DEBUG - CFLAGS += -g -O0 - CXXFLAGS += -g -O0 - LDFLAGS += -g - else - CFLAGS += -O7 - CXXFLAGS += -O7 - endif - - GLUT_CFLAGS = -fexceptions -endif - -# Directories -SRC_DIRS = mesa glu glut/beos -GLU_DIRS = sgi -DRIVER_DIRS = beos -PROGRAM_DIRS = beos samples redbook demos tests - -# Library/program dependencies -GL_LIB_DEPS = -OSMESA_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) -GLU_LIB_DEPS = -GLUT_LIB_DEPS = -lgame -L$(LIB_DIR) -l$(GL_LIB) -APP_LIB_DEPS = -lbe -L$(LIB_DIR) -l$(GL_LIB) -l$(GLUT_LIB) - diff --git a/nx-X11/extras/Mesa/configs/darwin b/nx-X11/extras/Mesa/configs/darwin deleted file mode 100644 index 0c8a6ec47..000000000 --- a/nx-X11/extras/Mesa/configs/darwin +++ /dev/null @@ -1,29 +0,0 @@ -# Configuration for Darwin / MacOS X, making dynamic libs - -include $(TOP)/configs/default - -CONFIG_NAME = darwin - -# Compiler and flags -CC = cc -CXX = cc -CFLAGS = -I/usr/X11R6/include -O3 -fPIC -fno-common -ffast-math -funroll-loops -fexpensive-optimizations -no-cpp-precomp -dynamic -Ddarwin -CXXFLAGS = -I/usr/X11R6/include -O3 -fPIC -fno-common -ffast-math -funroll-loops -fexpensive-optimizations -no-cpp-precomp -dynamic -Ddarwin - -# Library names (actual file names) -GL_LIB_NAME = libGL.dylib -GLU_LIB_NAME = libGLU.dylib -GLUT_LIB_NAME = libglut.dylib -GLW_LIB_NAME = libGLw.dylib -OSMESA_LIB_NAME = libOSMesa.dylib - -GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -lpthread -OSMESA_LIB_DEPS = -L$(LIB_DIR) -lGL -GLU_LIB_DEPS = -L$(LIB_DIR) -lGL -GLUT_LIB_DEPS = -L$(LIB_DIR) -lGL -lGLU -L/usr/X11R6/lib -lX11 -lXmu -lXi -lXext -GLW_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXt $(TOP)/lib/GL.dylib -APP_LIB_DEPS = -L$(TOP)/lib -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm - -# omit glw lib for now: -SRC_DIRS = mesa glu glut/glx - diff --git a/nx-X11/extras/Mesa/configs/darwin-static b/nx-X11/extras/Mesa/configs/darwin-static deleted file mode 100644 index c7f9c5f06..000000000 --- a/nx-X11/extras/Mesa/configs/darwin-static +++ /dev/null @@ -1,24 +0,0 @@ -# Configuration for Darwin / MacOS X, making static libs - -include $(TOP)/configs/darwin - -CONFIG_NAME = darwin-static - -# Compiler and flags -CFLAGS = -I/usr/X11R6/include -O3 -fno-common -ffast-math -funroll-loops -fexpensive-optimizations -no-cpp-precomp -dynamic -Ddarwin -CXXFLAGS = -I/usr/X11R6/include -O3 -fno-common -ffast-math -funroll-loops -fexpensive-optimizations -no-cpp-precomp -dynamic -Ddarwin -MKLIB_OPTIONS = -static - -# Library names (actual file names) -GL_LIB_NAME = libGL.a -GLU_LIB_NAME = libGLU.a -GLUT_LIB_NAME = libglut.a -GLW_LIB_NAME = libGLw.a -OSMESA_LIB_NAME = libOSMesa.a - -GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -lpthread -OSMESA_LIB_DEPS = -GLU_LIB_DEPS = -GLUT_LIB_DEPS = -GLW_LIB_DEPS = -APP_LIB_DEPS = -L$(TOP)/lib -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm diff --git a/nx-X11/extras/Mesa/configs/default b/nx-X11/extras/Mesa/configs/default deleted file mode 100644 index e3b1bc0ec..000000000 --- a/nx-X11/extras/Mesa/configs/default +++ /dev/null @@ -1,74 +0,0 @@ -# Default/template configuration - -# This is included by other config files which may override some -# of these variables. - -CONFIG_NAME = default - -# Version info -MESA_MAJOR=6 -MESA_MINOR=4 -MESA_TINY=1 - -# external projects. This should be useless now that we use libdrm. -DRM_SOURCE_PATH=$(TOP)/../drm - -# Compiler and flags -CC = cc -CXX = CC -CFLAGS = -O -CXXFLAGS = -O -GLU_CFLAGS = - -# Misc tools and flags -MKLIB_OPTIONS = -MKDEP = makedepend -MKDEP_OPTIONS = -fdepend -MAKE = make - -# Python and flags (generally only needed by the developers) -PYTHON2 = python -PYTHON_FLAGS = -t -O -O - -# Library names (base name) -GL_LIB = GL -GLU_LIB = GLU -GLUT_LIB = glut -GLW_LIB = GLw -OSMESA_LIB = OSMesa - - -# Library names (actual file names) -GL_LIB_NAME = lib$(GL_LIB).so -GLU_LIB_NAME = lib$(GLU_LIB).so -GLUT_LIB_NAME = lib$(GLUT_LIB).so -GLW_LIB_NAME = lib$(GLW_LIB).so -OSMESA_LIB_NAME = lib$(OSMESA_LIB).so - - -# Optional assembly language optimization files for libGL -ASM_SOURCES = - -# GLw widget sources (Append "GLwMDrawA.c" here and add -lXm to GLW_LIB_DEPS in -# order to build the Motif widget too) -GLW_SOURCES = GLwDrawA.c - - -# Directories -LIB_DIR = $(TOP)/lib -INSTALL_PREFIX = /usr/local -SRC_DIRS = mesa glu glut/glx glw -GLU_DIRS = sgi -DRIVER_DIRS = x11 osmesa -# Which subdirs under $(TOP)/progs/ to enter: -PROGRAM_DIRS = demos redbook samples xdemos - - -# Library/program dependencies -EXTRA_LIB_PATH ?= -GL_LIB_DEPS = $(EXTRA_LIB_PATH) -lX11 -lXext -lm -lpthread -OSMESA_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) -GLU_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) -lm -GLUT_LIB_DEPS = -L$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) $(EXTRA_LIB_PATH) -lX11 -lXmu -lXt -lXi -lm -GLW_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) $(EXTRA_LIB_PATH) -lXt -lX11 -APP_LIB_DEPS = -L$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lm diff --git a/nx-X11/extras/Mesa/configs/freebsd b/nx-X11/extras/Mesa/configs/freebsd deleted file mode 100644 index 910352abd..000000000 --- a/nx-X11/extras/Mesa/configs/freebsd +++ /dev/null @@ -1,16 +0,0 @@ -# Configuration for FreeBSD - -include $(TOP)/configs/default - -CONFIG_NAME = FreeBSD - -# Compiler and flags -CC = gcc -CXX = g++ -MAKE = gmake - -CFLAGS = -O2 -fPIC -pedantic -I/usr/X11R6/include -DUSE_XSHM -DHZ=100 -CXXFLAGS = -O2 -fPIC -pedantic -GLUT_CFLAGS = -fexceptions - -APP_LIB_DEPS = -L$(LIB_DIR) -L/usr/X11R6/lib -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lXext -lXmu -lXi -lX11 -lm diff --git a/nx-X11/extras/Mesa/configs/freebsd-dri b/nx-X11/extras/Mesa/configs/freebsd-dri deleted file mode 100644 index fd07dbefe..000000000 --- a/nx-X11/extras/Mesa/configs/freebsd-dri +++ /dev/null @@ -1,45 +0,0 @@ -# -*-makefile-*- -# Configuration for freebsd-dri: FreeBSD DRI hardware drivers - -include $(TOP)/configs/freebsd - -CONFIG_NAME = freebsd-dri - -# Compiler and flags -CC = gcc -CXX = g++ -WARN_FLAGS = -Wall -OPT_FLAGS = -O - -EXPAT_INCLUDES = -I/usr/local/include -X11_INCLUDES = -I/usr/X11R6/include -DEFINES = -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER \ - -DGLX_DIRECT_RENDERING -DHAVE_ALIAS -CFLAGS = $(DEFINES) -Wmissing-prototypes -g -std=c99 -Wundef -fPIC \ - -ffast-math $(X11_INCLUDES) -CXXFLAGS = $(DEFINES) -Wall -g -ansi -pedantic -fPIC - -ASM_SOURCES = - -# Library/program dependencies -LIBDRM_LIB = `pkg-config --libs libdrm` -ldrm -DRI_LIB_DEPS = -L/usr/local/lib -lm -lpthread -lexpat $(LIBDRM_LIB) -GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -lpthread $(LIBDRM_LIB) - -GLUT_LIB_DEPS = -L$(LIB_DIR) -L/usr/X11R6/lib -lGLU -lGL -lX11 -lXmu -lXt -lXi -lm -GLW_LIB_DEPS = -L$(LIB_DIR) -L/usr/X11R6/lib -lGL -lXt -lXm -lX11 - - -# Directories -SRC_DIRS = glx/x11 mesa glu glut/glx glw -DRIVER_DIRS = dri -PROGRAM_DIRS = -WINDOW_SYSTEM=dri - -DRM_SOURCE_PATH=$(TOP)/../drm - -# ffb and gamma are missing because they have not been converted to use the new -# interface. -DRI_DIRS = i810 i830 i915 mach64 mga r128 r200 r300 radeon tdfx \ - unichrome savage sis - diff --git a/nx-X11/extras/Mesa/configs/freebsd-dri-amd64 b/nx-X11/extras/Mesa/configs/freebsd-dri-amd64 deleted file mode 100644 index ffddfd835..000000000 --- a/nx-X11/extras/Mesa/configs/freebsd-dri-amd64 +++ /dev/null @@ -1,9 +0,0 @@ -# -*-makefile-*- -# Configuration for freebsd-dri-amd64: FreeBSD DRI hardware drivers - -include $(TOP)/configs/freebsd-dri - -CONFIG_NAME = freebsd-dri-x86-64 - -ASM_FLAGS = -DUSE_X86_64_ASM -ASM_SOURCES = $(X86-64_SOURCES) $(X86-64_API) diff --git a/nx-X11/extras/Mesa/configs/freebsd-dri-x86 b/nx-X11/extras/Mesa/configs/freebsd-dri-x86 deleted file mode 100644 index 31316b1f7..000000000 --- a/nx-X11/extras/Mesa/configs/freebsd-dri-x86 +++ /dev/null @@ -1,12 +0,0 @@ -# -*-makefile-*- -# Configuration for freebsd-dri: FreeBSD DRI hardware drivers - -include $(TOP)/configs/freebsd-dri - -CONFIG_NAME = freebsd-dri-x86 - -# Unnecessary on x86, generally. -PIC_FLAGS = - -ASM_FLAGS = -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM -ASM_SOURCES = $(X86_SOURCES) diff --git a/nx-X11/extras/Mesa/configs/hpux10 b/nx-X11/extras/Mesa/configs/hpux10 deleted file mode 100644 index e17c8b681..000000000 --- a/nx-X11/extras/Mesa/configs/hpux10 +++ /dev/null @@ -1,14 +0,0 @@ -# Configuration for HPUX v10, shared libs - -include $(TOP)/configs/default - -CONFIG_NAME = hpux10 - -# Compiler and flags -CC = cc -CXX = aCC - -CFLAGS = +O3 +DAportable +z -Aa -D_HPUX_SOURCE -I/usr/include/X11R6 -I/usr/contrib/X11R6/include -DUSE_XSHM -CXXFLAGS = +O3 +DAportable +Z -Aa -D_HPUX_SOURCE - -APP_LIB_DEPS = -$(LIB_DIR) -L/usr/lib/X11R6 -L/usr/contrib/X11R6/lib -lXext -lXmu -lXi -lX11 -lm diff --git a/nx-X11/extras/Mesa/configs/hpux10-gcc b/nx-X11/extras/Mesa/configs/hpux10-gcc deleted file mode 100644 index 107a99a85..000000000 --- a/nx-X11/extras/Mesa/configs/hpux10-gcc +++ /dev/null @@ -1,16 +0,0 @@ -# Configuration for HPUX v10, with gcc - -include $(TOP)/configs/default - -CONFIG_NAME = hpux10-gcc - -# Compiler and flags -CC = gcc -CXX = g++ - -CFLAGS = -ansi -O3 -D_HPUX_SOURCE -I/usr/include/X11R6 -I/usr/contrib/X11R6/include -DUSE_XSHM -CXXFLAGS = -ansi -O3 -D_HPUX_SOURCE -GLUT_CFLAGS = -fexceptions - -APP_LIB_DEPS = -L$(LIB_DIR) -L/usr/lib/X11R6 -L/usr/contrib/X11R6/lib -lXext -lXmu -lXi -lX11 -lm - diff --git a/nx-X11/extras/Mesa/configs/hpux10-static b/nx-X11/extras/Mesa/configs/hpux10-static deleted file mode 100644 index 38a1313e6..000000000 --- a/nx-X11/extras/Mesa/configs/hpux10-static +++ /dev/null @@ -1,30 +0,0 @@ -# Configuration for HPUX v10, static libs - -include $(TOP)/configs/default - -CONFIG_NAME = hpux10-static - -# Compiler and flags -CC = cc -CXX = aCC - -CFLAGS = +O3 +DAportable +z -Aa -D_HPUX_SOURCE -I/usr/include/X11R6 -I/usr/contrib/X11R6/include -DUSE_XSHM -CXXFLAGS = +O3 +DAportable +Z -Aa -D_HPUX_SOURCE - -MKLIB_OPTIONS = -static - -# Library names (actual file names) -GL_LIB_NAME = libGL.a -GLU_LIB_NAME = libGLU.a -GLUT_LIB_NAME = libglut.a -GLW_LIB_NAME = libGLw.a -OSMESA_LIB_NAME = libOSMesa.a - -# Library/program dependencies (static libs don't have dependencies) -GL_LIB_DEPS = -OSMESA_LIB_DEPS = -GLU_LIB_DEPS = -GLUT_LIB_DEPS = -GLW_LIB_DEPS = -APP_LIB_DEPS = -L$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXext -lXmu -lXt -lXi -lpthread -lm -lstdc++ -APP_LIB_DEPS = -L$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/lib/X11R6 -L/usr/contrib/X11R6/lib -lXext -lXmu -lXi -lX11 -lm -lstdc++ diff --git a/nx-X11/extras/Mesa/configs/hpux11-32 b/nx-X11/extras/Mesa/configs/hpux11-32 deleted file mode 100644 index 9ff407bd5..000000000 --- a/nx-X11/extras/Mesa/configs/hpux11-32 +++ /dev/null @@ -1,26 +0,0 @@ -# Configuration for HPUX v11 - -include $(TOP)/configs/default - -CONFIG_NAME = hpux11-32 - -# Compiler and flags -CC = cc -CXX = aCC - -CFLAGS = +z -Ae +O2 +Onolimit +Oaggressive -D_HPUX_SOURCE -I/usr/include/X11R6 -I/usr/contrib/X11R6/include -DUSE_XSHM -DPTHREADS - -CXXFLAGS = +z -Aa +O2 +Onolimit +Oaggressive -D_HPUX_SOURCE -I/usr/include/X11R6 -I/usr/contrib/X11R6/include - -MKLIB_OPTIONS = - - -# Library names (actual file names) -GL_LIB_NAME = libGL.a -GLU_LIB_NAME = libGLU.a -GLUT_LIB_NAME = libglut.a -GLW_LIB_NAME = libGLw.a -OSMESA_LIB_NAME = libOSMesa.a - -# Library/program dependencies -APP_LIB_DEPS = -L/usr/lib/X11R6 -L/usr/contrib/X11R6/lib -lXext -lXmu -lXi -lX11 -lm diff --git a/nx-X11/extras/Mesa/configs/hpux11-32-static b/nx-X11/extras/Mesa/configs/hpux11-32-static deleted file mode 100644 index 7507ab0b0..000000000 --- a/nx-X11/extras/Mesa/configs/hpux11-32-static +++ /dev/null @@ -1,26 +0,0 @@ -# Configuration for HPUX v11, static libs - -include $(TOP)/configs/default - -CONFIG_NAME = hpux11-32-static - -# Compiler and flags -CC = cc -CXX = aCC - -CFLAGS = +O3 +DA2.0 -Aa -D_HPUX_SOURCE -I/usr/include/X11R6 -I/usr/contrib/X11R6/include -DUSE_XSHM -DPTHREADS - -CXXFLAGS = +O3 +DA2.0 -Aa -D_HPUX_SOURCE -I/usr/include/X11R6 -I/usr/contrib/X11R6/include - -MKLIB_OPTIONS = -static - - -# Library names (actual file names) -GL_LIB_NAME = libGL.a -GLU_LIB_NAME = libGLU.a -GLUT_LIB_NAME = libglut.a -GLW_LIB_NAME = libGLw.a -OSMESA_LIB_NAME = libOSMesa.a - -# Library/program dependencies -APP_LIB_DEPS = -L/usr/lib/X11R6 -L/usr/contrib/X11R6/lib -lXext -lXmu -lXi -lX11 -lm diff --git a/nx-X11/extras/Mesa/configs/hpux11-32-static-nothreads b/nx-X11/extras/Mesa/configs/hpux11-32-static-nothreads deleted file mode 100644 index 91b365408..000000000 --- a/nx-X11/extras/Mesa/configs/hpux11-32-static-nothreads +++ /dev/null @@ -1,26 +0,0 @@ -# Configuration for HPUX v11, static libs - -include $(TOP)/configs/default - -CONFIG_NAME = hpux11-32-static - -# Compiler and flags -CC = cc -CXX = aCC - -CFLAGS = +O3 +DA2.0 -Aa -D_HPUX_SOURCE -I/usr/include/X11R6 -I/usr/contrib/X11R6/include -DUSE_XSHM - -CXXFLAGS = +O3 +DA2.0 -Aa -D_HPUX_SOURCE -I/usr/include/X11R6 -I/usr/contrib/X11R6/include - -MKLIB_OPTIONS = -static - - -# Library names (actual file names) -GL_LIB_NAME = libGL.a -GLU_LIB_NAME = libGLU.a -GLUT_LIB_NAME = libglut.a -GLW_LIB_NAME = libGLw.a -OSMESA_LIB_NAME = libOSMesa.a - -# Library/program dependencies -APP_LIB_DEPS = -L/usr/lib/X11R6 -L/usr/contrib/X11R6/lib -lXext -lXmu -lXi -lX11 -lm diff --git a/nx-X11/extras/Mesa/configs/hpux11-64 b/nx-X11/extras/Mesa/configs/hpux11-64 deleted file mode 100644 index b0869cf81..000000000 --- a/nx-X11/extras/Mesa/configs/hpux11-64 +++ /dev/null @@ -1,27 +0,0 @@ -# Configuration for HPUX v11, 64-bit - -include $(TOP)/configs/default - -CONFIG_NAME = hpux11-64 - -# Compiler and flags -CC = cc -CXX = aCC - -CFLAGS = +z -Ae +DD64 +O2 +Onolimit +Oaggressive -D_HPUX_SOURCE -I/usr/include/X11R6 -I/usr/contrib/X11R6/include -DUSE_XSHM -DPTHREADS - -CXXFLAGS = +z -Aa +DD64 +O2 +Onolimit +Oaggressive -D_HPUX_SOURCE -I/usr/include/X11R6 -I/usr/contrib/X11R6/include - -MKLIB_OPTIONS = - -LIBDIR = $(TOP)/lib64 - -# Library names (actual file names) -GL_LIB_NAME = libGL.a -GLU_LIB_NAME = libGLU.a -GLUT_LIB_NAME = libglut.a -GLW_LIB_NAME = libGLw.a -OSMESA_LIB_NAME = libOSMesa.a - -# Library/program dependencies -APP_LIB_DEPS = -L/usr/lib/X11R6 -L/usr/contrib/X11R6/lib -lXext -lXmu -lXi -lX11 -lm diff --git a/nx-X11/extras/Mesa/configs/hpux11-64-static b/nx-X11/extras/Mesa/configs/hpux11-64-static deleted file mode 100644 index 451dc4208..000000000 --- a/nx-X11/extras/Mesa/configs/hpux11-64-static +++ /dev/null @@ -1,27 +0,0 @@ -# Configuration for HPUX v11, 64-bit, static libs - -include $(TOP)/configs/default - -CONFIG_NAME = hpux11-64-static - -# Compiler and flags -CC = cc -CXX = aCC - -CFLAGS = +O3 +DA2.0W -Aa -D_HPUX_SOURCE -I/usr/include/X11R6 -I/usr/contrib/X11R6/include -DUSE_XSHM -DPTHREADS - -CXXFLAGS = +O3 +DA2.0W -Aa -D_HPUX_SOURCE -I/usr/include/X11R6 -I/usr/contrib/X11R6/include - -MKLIB_OPTIONS = -static - -LIBDIR = $(TOP)/lib64 - -# Library names (actual file names) -GL_LIB_NAME = libGL.a -GLU_LIB_NAME = libGLU.a -GLUT_LIB_NAME = libglut.a -GLW_LIB_NAME = libGLw.a -OSMESA_LIB_NAME = libOSMesa.a - -# Library/program dependencies -APP_LIB_DEPS = -L/usr/lib/X11R6 -L/usr/contrib/X11R6/lib -lXext -lXmu -lXi -lX11 -lm diff --git a/nx-X11/extras/Mesa/configs/hpux9 b/nx-X11/extras/Mesa/configs/hpux9 deleted file mode 100644 index 037381757..000000000 --- a/nx-X11/extras/Mesa/configs/hpux9 +++ /dev/null @@ -1,16 +0,0 @@ -# Configuration for HPUX v9, shared libs - -include $(TOP)/configs/default - -CONFIG_NAME = hpux9 - -# Compiler and flags -CC = cc -# XXX fix this -CXX = c++ - -CFLAGS = +z +O3 +Olibcalls +ESlit -Aa +Onolimit -D_HPUX_SOURCE -I/usr/include/X11R5 -DUSE_XSHM -CXXFLAGS = +z +O3 +Olibcalls +ESlit -Aa +Onolimit -D_HPUX_SOURCE -I/usr/include/X11R5 - -APP_LIB_DEPS = -L$(LIB_DIR) -L/usr/lib/X11R5 -s -Wl,+s,-B,nonfatal,-B,immediate -lXext -lXmu -lXi -lX11 -lm - diff --git a/nx-X11/extras/Mesa/configs/hpux9-gcc b/nx-X11/extras/Mesa/configs/hpux9-gcc deleted file mode 100644 index 47d579ea5..000000000 --- a/nx-X11/extras/Mesa/configs/hpux9-gcc +++ /dev/null @@ -1,14 +0,0 @@ -# Configuration for HPUX v10, shared libs - -include $(TOP)/configs/default - -CONFIG_NAME = hpux9-gcc - -# Compiler and flags -CC = cc -CXX = aCC - -CFLAGS = +O3 +DAportable +z -Aa -D_HPUX_SOURCE -I/usr/include/X11R6 -I/usr/contrib/X11R6/include -DUSE_XSHM -CXXFLAGS = +O3 +DAportable +Z -Aa -D_HPUX_SOURCE - -APP_LIB_DEPS = -L$(LIB_DIR) -L/usr/lib/X11R6 -L/usr/contrib/X11R6/lib -lXext -lXmu -lXi -lX11 -lm diff --git a/nx-X11/extras/Mesa/configs/irix6-64 b/nx-X11/extras/Mesa/configs/irix6-64 deleted file mode 100644 index 6c33d33ba..000000000 --- a/nx-X11/extras/Mesa/configs/irix6-64 +++ /dev/null @@ -1,18 +0,0 @@ -# Configuration for IRIX 6.x, make n64 DSOs - -include $(TOP)/configs/default - -CONFIG_NAME = irix6-64 - -# Compiler and flags -CC = cc -CXX = CC -CFLAGS = -64 -O3 -ansi -woff 1068,1069,1174,1185,1209,1474,1552 -DUSE_XSHM -CXXFLAGS = -64 -O3 -ansi -woff 1174 -MKLIB_OPTIONS = -archopt 64 - -GLW_SOURCES = GLwDrawA.c GLwMDrawA.c - -LIB_DIR = $(TOP)/lib64 - -APP_LIB_DEPS = -L$(LIB_DIR) -64 -rpath $(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lX11 -lXmu -lXi -lm diff --git a/nx-X11/extras/Mesa/configs/irix6-64-static b/nx-X11/extras/Mesa/configs/irix6-64-static deleted file mode 100644 index d66af5be8..000000000 --- a/nx-X11/extras/Mesa/configs/irix6-64-static +++ /dev/null @@ -1,25 +0,0 @@ -# Configuration for IRIX 6.x, make n64 static libs - -include $(TOP)/configs/default - -CONFIG_NAME = irix6-64-static - -# Compiler and flags -CC = cc -CXX = CC -CFLAGS = -64 -O3 -ansi -woff 1068,1069,1174,1185,1209,1474,1552 -DUSE_XSHM -CXXFLAGS = -64 -O3 -ansi -woff 1174 -MKLIB_OPTIONS = -archopt 64 -static - -GLW_SOURCES = GLwDrawA.c GLwMDrawA.c - -LIB_DIR = $(TOP)/lib64 - -APP_LIB_DEPS = -L$(LIB_DIR) -64 -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lX11 -lXext -lXmu -lXi -lm - -GL_LIB_NAME = libGL.a -GLU_LIB_NAME = libGLU.a -GLUT_LIB_NAME = libglut.a -GLW_LIB_NAME = libGLw.a -OSMESA_LIB_NAME = libOSMesa.a - diff --git a/nx-X11/extras/Mesa/configs/irix6-n32 b/nx-X11/extras/Mesa/configs/irix6-n32 deleted file mode 100644 index 4bf296401..000000000 --- a/nx-X11/extras/Mesa/configs/irix6-n32 +++ /dev/null @@ -1,18 +0,0 @@ -# Configuration for IRIX 6.x, make n32 DSOs - -include $(TOP)/configs/default - -CONFIG_NAME = irix6-n32 - -# Compiler and flags -CC = cc -CXX = CC -CFLAGS = -n32 -mips3 -O3 -ansi -woff 1174,1521,1552 -DUSE_XSHM -CXXFLAGS = -n32 -mips3 -O3 -ansi -woff 1174,1552 -MKLIB_OPTIONS = -archopt n32 - -GLW_SOURCES = GLwDrawA.c GLwMDrawA.c - -LIB_DIR = $(TOP)/lib32 - -APP_LIB_DEPS = -L$(LIB_DIR) -n32 -rpath $(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lX11 -lXmu -lXi -lfpe -lm diff --git a/nx-X11/extras/Mesa/configs/irix6-n32-static b/nx-X11/extras/Mesa/configs/irix6-n32-static deleted file mode 100644 index b60de380c..000000000 --- a/nx-X11/extras/Mesa/configs/irix6-n32-static +++ /dev/null @@ -1,25 +0,0 @@ -# Configuration for IRIX 6.x, make n32 static libs - -include $(TOP)/configs/default - -CONFIG_NAME = irix6-n32-static - -# Compiler and flags -CC = cc -CXX = CC -CFLAGS = -n32 -mips2 -O2 -ansi -woff 1521,1552 -DUSE_XSHM -CXXFLAGS = -n32 -mips2 -O2 -ansi -woff 3262,3666 -MKLIB_OPTIONS = -archopt n32 -static - -GLW_SOURCES = GLwDrawA.c GLwMDrawA.c - -LIB_DIR = $(TOP)/lib32 - -APP_LIB_DEPS = -L$(LIB_DIR) -n32 -glut -l$(GLU_LIB) -l$(GL_LIB) -lX11 -lXext -lXmu -lXi -lm - -GL_LIB_NAME = libGL.a -GLU_LIB_NAME = libGLU.a -GLUT_LIB_NAME = libglut.a -GLW_LIB_NAME = libGLw.a -OSMESA_LIB_NAME = libOSMesa.a - diff --git a/nx-X11/extras/Mesa/configs/irix6-o32 b/nx-X11/extras/Mesa/configs/irix6-o32 deleted file mode 100644 index 56a197960..000000000 --- a/nx-X11/extras/Mesa/configs/irix6-o32 +++ /dev/null @@ -1,19 +0,0 @@ -# Configuration for IRIX 6.x, make o32 DSOs - -include $(TOP)/configs/default - -CONFIG_NAME = irix6-o32 - -# Compiler and flags -CC = cc -CXX = CC -CFLAGS = -32 -mips2 -O2 -ansi -woff 1521,1552 -DUSE_XSHM -CXXFLAGS = -32 -mips2 -O2 -ansi -woff 3262,3666 -MKLIB_OPTIONS = -archopt o32 - -GLW_SOURCES = GLwDrawA.c GLwMDrawA.c - -LIB_DIR = $(TOP)/lib32 - -APP_LIB_DEPS = -L$(LIB_DIR) -32 -rpath $(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lX11 -lXext -lXmu -lXi -lm - diff --git a/nx-X11/extras/Mesa/configs/irix6-o32-static b/nx-X11/extras/Mesa/configs/irix6-o32-static deleted file mode 100644 index ac3d6ee17..000000000 --- a/nx-X11/extras/Mesa/configs/irix6-o32-static +++ /dev/null @@ -1,25 +0,0 @@ -# Configuration for IRIX 6.x, make o32 static libs - -include $(TOP)/configs/default - -CONFIG_NAME = irix6-o32-static - -# Compiler and flags -CC = cc -CXX = CC -CFLAGS = -32 -mips2 -O2 -ansi -woff 1521,1552 -DUSE_XSHM -CXXFLAGS = -32 -mips2 -O2 -ansi -woff 3262,3666 -MKLIB_OPTIONS = -archopt o32 -static - -GLW_SOURCES = GLwDrawA.c GLwMDrawA.c - -LIB_DIR = $(TOP)/lib32 - -APP_LIB_DEPS = -L$(LIB_DIR) -32 -glut -l$(GLU_LIB) -l$(GL_LIB) -lX11 -lXext -lXmu -lXi -lm - -GL_LIB_NAME = libGL.a -GLU_LIB_NAME = libGLU.a -GLUT_LIB_NAME = libglut.a -GLW_LIB_NAME = libGLw.a -OSMESA_LIB_NAME = libOSMesa.a - diff --git a/nx-X11/extras/Mesa/configs/linux b/nx-X11/extras/Mesa/configs/linux deleted file mode 100644 index e3119ec5c..000000000 --- a/nx-X11/extras/Mesa/configs/linux +++ /dev/null @@ -1,33 +0,0 @@ -# Configuration for generic Linux - -include $(TOP)/configs/default - -CONFIG_NAME = linux - -# Compiler and flags -CC = gcc -CXX = g++ - -WARN_FLAGS = -Wall -OPT_FLAGS = -O3 -g -PIC_FLAGS = -fPIC - -# Add '-DGLX_USE_TLS' to ARCH_FLAGS to enable TLS support. Add -m32 -# to build properly on 64-bit platforms. - -ARCH_FLAGS ?= - -DEFINES = -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE \ - -D_BSD_SOURCE -DPTHREADS -DUSE_XSHM - -X11_INCLUDES = -I/usr/X11R6/include - -CFLAGS = $(WARN_FLAGS) $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(DEFINES) \ - $(ASM_FLAGS) $(X11_INCLUDES) -std=c99 -ffast-math - -CXXFLAGS = $(WARN_FLAGS) $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(DEFINES) \ - $(X11_INCLUDES) - -GLUT_CFLAGS = -fexceptions - -EXTRA_LIB_PATH = -L/usr/X11R6/lib diff --git a/nx-X11/extras/Mesa/configs/linux-alpha b/nx-X11/extras/Mesa/configs/linux-alpha deleted file mode 100644 index 507c80845..000000000 --- a/nx-X11/extras/Mesa/configs/linux-alpha +++ /dev/null @@ -1,18 +0,0 @@ -# Configuration for Linux on Alpha - -include $(TOP)/configs/default - -CONFIG_NAME = linux-alpha - -# Compiler and flags -CC = gcc -CXX = g++ -CFLAGS = -O3 -mcpu=ev5 -ansi -mieee -pedantic -fPIC -D_XOPEN_SOURCE -DUSE_XSHM -CXXFLAGS = -O3 -mcpu=ev5 -ansi -mieee -pedantic -fPIC -D_XOPEN_SOURCE -GLUT_CFLAGS = -fexceptions - -GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -lpthread -GLUT_LIB_DEPS = -L$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm -GLW_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) -L/usr/X11R6/lib -lXt -lX11 -APP_LIB_DEPS = -L$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lm - diff --git a/nx-X11/extras/Mesa/configs/linux-alpha-static b/nx-X11/extras/Mesa/configs/linux-alpha-static deleted file mode 100644 index 7b7ee07eb..000000000 --- a/nx-X11/extras/Mesa/configs/linux-alpha-static +++ /dev/null @@ -1,27 +0,0 @@ -# Configuration for Linux on Alpha, static libs - -include $(TOP)/configs/default - -CONFIG_NAME = linux-alpha-static - -# Compiler and flags -CC = gcc -CXX = g++ -CFLAGS = -O3 -mcpu=ev5 -ansi -mieee -pedantic -D_XOPEN_SOURCE -DUSE_XSHM -CXXFLAGS = -O3 -mcpu=ev5 -ansi -mieee -pedantic -D_XOPEN_SOURCE -GLUT_CFLAGS = -fexceptions -MKLIB_OPTIONS = -static - - -# Library names (actual file names) -GL_LIB_NAME = libGL.a -GLU_LIB_NAME = libGLU.a -GLUT_LIB_NAME = libglut.a -GLW_LIB_NAME = libGLw.a -OSMESA_LIB_NAME = libOSMesa.a - - -GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -lpthread -GLUT_LIB_DEPS = -L$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm -GLW_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) -L/usr/X11R6/lib -lXt -lX11 -APP_LIB_DEPS = -L$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lm -L/usr/X11R6/lib -lX11 -lm diff --git a/nx-X11/extras/Mesa/configs/linux-debug b/nx-X11/extras/Mesa/configs/linux-debug deleted file mode 100644 index ff4d1c33b..000000000 --- a/nx-X11/extras/Mesa/configs/linux-debug +++ /dev/null @@ -1,8 +0,0 @@ -# Configuration for debugging on Linux - -include $(TOP)/configs/linux - -CONFIG_NAME = linux-debug - -OPT_FLAGS = -g -DEFINES += -DDEBUG -DMESA_DEBUG -DRUN_DEBUG_BENCHMARK diff --git a/nx-X11/extras/Mesa/configs/linux-directfb b/nx-X11/extras/Mesa/configs/linux-directfb deleted file mode 100644 index f09c69dda..000000000 --- a/nx-X11/extras/Mesa/configs/linux-directfb +++ /dev/null @@ -1,29 +0,0 @@ -# Configuration for DirectFB - -include $(TOP)/configs/default - -CONFIG_NAME = linux-directfb - -# Compiler and flags -CC = gcc -CXX = g++ - -CFLAGS = -Wall -O3 -ffast-math -fPIC -std=c99 -D_GNU_SOURCE -D_POSIX_SOURCE -D_SVID_SOURCE \ - -D_POSIX_C_SOURCE=199309L -D_BSD_SOURCE -DPTHREADS - -CXXFLAGS = -Wall -O3 -fPIC -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE - -HAVE_X86 = $(shell uname -m | grep 'i[3-6]86' >/dev/null && echo yes) -ifeq ($(HAVE_X86), yes) - CFLAGS += -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM - CXXFLAGS += -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM - ASM_SOURCES = $(X86_SOURCES) $(X86_API) -endif - -# Directories -SRC_DIRS = mesa glu -DRIVER_DIRS = directfb -PROGRAM_DIRS = # disabled - -# Library/program dependencies -GL_LIB_DEPS = -lm -lpthread diff --git a/nx-X11/extras/Mesa/configs/linux-dri b/nx-X11/extras/Mesa/configs/linux-dri deleted file mode 100644 index 293f2e789..000000000 --- a/nx-X11/extras/Mesa/configs/linux-dri +++ /dev/null @@ -1,68 +0,0 @@ -# -*-makefile-*- -# Configuration for linux-dri: Linux DRI hardware drivers for XFree86 & others - -include $(TOP)/configs/default - -CONFIG_NAME = linux-dri - -# Compiler and flags -CC = gcc -CXX = g++ - -MKDEP = /usr/X11R6/bin/makedepend -#MKDEP = gcc -M -#MKDEP_OPTIONS = -MF depend - -WARN_FLAGS = -Wall -OPT_FLAGS = -O -g -PIC_FLAGS = -fPIC - -# Add '-DGLX_USE_TLS' to ARCH_FLAGS to enable TLS support. -ARCH_FLAGS ?= - -DEFINES = -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE \ - -D_BSD_SOURCE -D_GNU_SOURCE \ - -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER \ - -DGLX_DIRECT_RENDERING -DHAVE_ALIAS - -X11_INCLUDES = -I/usr/X11R6/include - -CFLAGS = $(WARN_FLAGS) $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(DEFINES) \ - $(ASM_FLAGS) -std=c99 -ffast-math - -CXXFLAGS = $(WARN_FLAGS) $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(DEFINES) - - -ASM_SOURCES = - -# Library/program dependencies -EXTRA_LIB_PATH=-L/usr/X11R6/lib - -LIBDRM_LIB = `pkg-config --libs libdrm` -ldrm -DRI_LIB_DEPS = $(EXTRA_LIB_PATH) -lm -lpthread -lexpat -ldl $(LIBDRM_LIB) -GL_LIB_DEPS = $(EXTRA_LIB_PATH) -lX11 -lXext -lXxf86vm -lm -lpthread -ldl \ - $(LIBDRM_LIB) - - -# This is now 0 by default since it seems to confuse the hell out of people -# and generate a lot of extra noise on bugzilla. If you need to build with -# EGL, do 'make linux-dri USING_EGL=1' - -USING_EGL=0 - -# Directories -ifeq ($(USING_EGL), 1) -SRC_DIRS = egl glx/x11 mesa glu glut/glx glw -PROGRAM_DIRS = egl -else -SRC_DIRS = glx/x11 mesa glu glut/glx glw -PROGRAM_DIRS = -endif - -DRIVER_DIRS = dri -WINDOW_SYSTEM=dri - -# gamma are missing because they have not been converted to use the new -# interface. -DRI_DIRS = i810 i830 i915 mach64 mga r128 r200 r300 radeon s3v \ - savage sis tdfx trident unichrome ffb diff --git a/nx-X11/extras/Mesa/configs/linux-dri-ppc b/nx-X11/extras/Mesa/configs/linux-dri-ppc deleted file mode 100644 index fb8768806..000000000 --- a/nx-X11/extras/Mesa/configs/linux-dri-ppc +++ /dev/null @@ -1,17 +0,0 @@ -# -*-makefile-*- -# Configuration for linux-dri: Linux DRI hardware drivers for XFree86 & others - -include $(TOP)/configs/linux-dri - -CONFIG_NAME = linux-dri-ppc - -OPT_FLAGS = -Os -mcpu=603 -PIC_FLAGS = -fPIC - -ASM_FLAGS = -DUSE_PPC_ASM -DUSE_VMX_ASM -ASM_SOURCES = $(PPC_SOURCES) - -# Build only the drivers for cards that exist on PowerPC. At some point MGA -# will be added, but not yet. -DRI_DIRS = mach64 r128 r200 r300 radeon tdfx - diff --git a/nx-X11/extras/Mesa/configs/linux-dri-x86 b/nx-X11/extras/Mesa/configs/linux-dri-x86 deleted file mode 100644 index bef24e059..000000000 --- a/nx-X11/extras/Mesa/configs/linux-dri-x86 +++ /dev/null @@ -1,16 +0,0 @@ -# -*-makefile-*- -# Configuration for linux-dri: Linux DRI hardware drivers for XFree86 & others - -include $(TOP)/configs/linux-dri - -CONFIG_NAME = linux-dri-x86 - -# Unnecessary on x86, generally. -PIC_FLAGS = - -# Add -m32 to CFLAGS: -ARCH_FLAGS = -m32 - -ASM_FLAGS = -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM -ASM_SOURCES = $(X86_SOURCES) - diff --git a/nx-X11/extras/Mesa/configs/linux-dri-x86-64 b/nx-X11/extras/Mesa/configs/linux-dri-x86-64 deleted file mode 100644 index affbe2bc6..000000000 --- a/nx-X11/extras/Mesa/configs/linux-dri-x86-64 +++ /dev/null @@ -1,23 +0,0 @@ -# -*-makefile-*- -# Configuration for linux-dri: Linux DRI hardware drivers for XFree86 & others - -include $(TOP)/configs/linux-dri - -CONFIG_NAME = linux-dri-x86-64 - -ARCH_FLAGS = -m64 - -ASM_FLAGS = -DUSE_X86_64_ASM -ASM_SOURCES = $(X86-64_SOURCES) $(X86-64_API) - -LIB_DIR = $(TOP)/lib64 - -# Library/program dependencies -EXTRA_LIB_PATH=-L/usr/X11R6/lib64 - -# ffb, gamma, and sis are missing because they have not be converted to use -# the new interface. i810 and i830 are missing because there is no x86-64 -# system where they could *ever* be used. -# -DRI_DIRS = i915 mach64 mga r128 r200 radeon tdfx unichrome savage r300 - diff --git a/nx-X11/extras/Mesa/configs/linux-fbdev b/nx-X11/extras/Mesa/configs/linux-fbdev deleted file mode 100644 index c357485ea..000000000 --- a/nx-X11/extras/Mesa/configs/linux-fbdev +++ /dev/null @@ -1,10 +0,0 @@ -# Configuration for Linux fbdev interface - -include $(TOP)/configs/linux - -CONFIG_NAME = linux-fbdev -DRIVER_DIRS = fbdev - -CFLAGS = -O3 -ansi -pedantic -fPIC -ffast-math -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_XSHM -DPTHREADS -DUSE_GLFBDEV_DRIVER - -PROGRAM_DIRS = fbdev diff --git a/nx-X11/extras/Mesa/configs/linux-glide b/nx-X11/extras/Mesa/configs/linux-glide deleted file mode 100644 index d3e0dc32d..000000000 --- a/nx-X11/extras/Mesa/configs/linux-glide +++ /dev/null @@ -1,20 +0,0 @@ -# Configuration for generic Linux with 3Dfx Glide driver - -include $(TOP)/configs/default - -CONFIG_NAME = linux-glide - -# Compiler and flags -CC = gcc -CXX = g++ - -CFLAGS = -O3 -ansi -pedantic -fPIC -ffast-math -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_XSHM -DPTHREADS -I/usr/X11R6/include -DFX -I/usr/include/glide -I/usr/local/glide/include -CXXFLAGS = -O3 -ansi -pedantic -fPIC -ffast-math -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE -GLUT_CFLAGS = -fexceptions - - -# Library/program dependencies -GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -L/usr/local/glide/lib -lglide3x -lm -lpthread -GLUT_LIB_DEPS = -L$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm -GLW_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) -L/usr/X11R6/lib -lXt -lX11 -APP_LIB_DEPS = -L$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/local/glide/lib -lglide3x -lm diff --git a/nx-X11/extras/Mesa/configs/linux-icc b/nx-X11/extras/Mesa/configs/linux-icc deleted file mode 100644 index 0da3b836a..000000000 --- a/nx-X11/extras/Mesa/configs/linux-icc +++ /dev/null @@ -1,21 +0,0 @@ -# Configuration for Linux with Intel C compiler - -include $(TOP)/configs/default - -CONFIG_NAME = linux-icc - -# Compiler and flags -CC = icc -CXX = g++ -CFLAGS = -O3 -tpp6 -axK -KPIC -D_GCC_LIMITS_H_ -D__GNUC__ -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_XSHM -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM -DPTHREADS -I/usr/X11R6/include -CXXFLAGS = -O3 -GLUT_CFLAGS = -fexceptions -MKLIB_OPTIONS = -arch icc - -GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -lpthread -GLUT_LIB_DEPS = -L$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm -APP_LIB_DEPS = -L$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lm - -ASM_SOURCES = $(X86_SOURCES) $(X86_API) - - diff --git a/nx-X11/extras/Mesa/configs/linux-icc-static b/nx-X11/extras/Mesa/configs/linux-icc-static deleted file mode 100644 index 5c65f0561..000000000 --- a/nx-X11/extras/Mesa/configs/linux-icc-static +++ /dev/null @@ -1,29 +0,0 @@ -# Configuration for Linux with Intel C compiler, static libs - -include $(TOP)/configs/default - -CONFIG_NAME = linux-icc-static - -# Compiler and flags -CC = icc -CXX = g++ -CFLAGS = -O3 -tpp6 -axK -D_GCC_LIMITS_H_ -D__GNUC__ -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_XSHM -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM -DPTHREADS -I/usr/X11R6/include -CXXFLAGS = -O3 -GLUT_CFLAGS = -fexceptions -MKLIB_OPTIONS = -static -arch icc - -# Library names (actual file names) -GL_LIB_NAME = libGL.a -GLU_LIB_NAME = libGLU.a -GLUT_LIB_NAME = libglut.a -GLW_LIB_NAME = libGLw.a -OSMESA_LIB_NAME = libOSMesa.a - -GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -lpthread -GLUT_LIB_DEPS = -L$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm -APP_LIB_DEPS = -L$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm -MKLIB_OPTIONS = -arch icc - -ASM_SOURCES = $(X86_SOURCES) $(X86_API) - - diff --git a/nx-X11/extras/Mesa/configs/linux-indirect b/nx-X11/extras/Mesa/configs/linux-indirect deleted file mode 100644 index 93166e2e9..000000000 --- a/nx-X11/extras/Mesa/configs/linux-indirect +++ /dev/null @@ -1,49 +0,0 @@ -# -*-makefile-*- -# Configuration for linux-indirect: Builds a libGL capable of indirect -# rendering, but *NOT* capable of direct rendering. - -include $(TOP)/configs/default - -CONFIG_NAME = linux-dri - -# Compiler and flags -CC = gcc -CXX = g++ - -MKDEP = /usr/X11R6/bin/makedepend -#MKDEP = gcc -M -#MKDEP_OPTIONS = -MF depend - -WARN_FLAGS = -Wall -OPT_FLAGS = -O -g -PIC_FLAGS = -fPIC - -# Add '-DGLX_USE_TLS' to ARCH_FLAGS to enable TLS support. -ARCH_FLAGS ?= - -DEFINES = -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE \ - -D_BSD_SOURCE -D_GNU_SOURCE \ - -DPTHREADS -DHAVE_ALIAS - -X11_INCLUDES = -I/usr/X11R6/include - -CFLAGS = $(WARN_FLAGS) $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(DEFINES) \ - $(ASM_FLAGS) -std=c99 -ffast-math - -CXXFLAGS = $(WARN_FLAGS) $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(DEFINES) - - -ASM_SOURCES = - -# Library/program dependencies -EXTRA_LIB_PATH=-L/usr/X11R6/lib - -DRI_LIB_DEPS = $(EXTRA_LIB_PATH) -lm -lpthread -lexpat -ldl -GL_LIB_DEPS = $(EXTRA_LIB_PATH) -lX11 -lXext -lXxf86vm -lm -lpthread -ldl - - -# Directories -SRC_DIRS = glx/x11 glu glut/glx glw -DRIVER_DIRS = -PROGRAM_DIRS = -WINDOW_SYSTEM=dri diff --git a/nx-X11/extras/Mesa/configs/linux-osmesa16 b/nx-X11/extras/Mesa/configs/linux-osmesa16 deleted file mode 100644 index 16a3b0bba..000000000 --- a/nx-X11/extras/Mesa/configs/linux-osmesa16 +++ /dev/null @@ -1,27 +0,0 @@ -# Configuration for 16 bits/channel OSMesa library on Linux - -include $(TOP)/configs/default - -CONFIG_NAME = linux-osmesa16 - -# Compiler and flags -CC = gcc -CXX = g++ -CFLAGS = -O3 -ansi -pedantic -fPIC -ffast-math -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_XSHM -DPTHREADS -I/usr/X11R6/include -DCHAN_BITS=16 -DDEFAULT_SOFTWARE_DEPTH_BITS=31 -CXXFLAGS = -O3 -ansi -pedantic -fPIC -ffast-math -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE - - -# Library names -OSMESA_LIB = OSMesa16 -OSMESA_LIB_NAME = libOSMesa16.so - - -# Directories -SRC_DIRS = mesa glu -DRIVER_DIRS = osmesa -PROGRAM_DIRS = - - -# Dependencies -OSMESA_LIB_DEPS = -lm -lpthread -APP_LIB_DEPS = -lOSMesa16 diff --git a/nx-X11/extras/Mesa/configs/linux-osmesa16-static b/nx-X11/extras/Mesa/configs/linux-osmesa16-static deleted file mode 100644 index 664550447..000000000 --- a/nx-X11/extras/Mesa/configs/linux-osmesa16-static +++ /dev/null @@ -1,28 +0,0 @@ -# Configuration for 16 bits/channel OSMesa library on Linux - -include $(TOP)/configs/default - -CONFIG_NAME = linux-osmesa16-static - -# Compiler and flags -CC = gcc -CXX = g++ -CFLAGS = -O3 -ansi -pedantic -ffast-math -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_XSHM -DPTHREADS -I/usr/X11R6/include -DCHAN_BITS=16 -DDEFAULT_SOFTWARE_DEPTH_BITS=31 -CXXFLAGS = -O3 -ansi -pedantic -ffast-math -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE -MKLIB_OPTIONS = -static - - -# Library names -OSMESA_LIB = OSMesa16 -OSMESA_LIB_NAME = libOSMesa16.a - - -# Directories -SRC_DIRS = mesa glu -DRIVER_DIRS = osmesa -PROGRAM_DIRS = - - -# Dependencies -OSMESA_LIB_DEPS = -lm -lpthread -APP_LIB_DEPS = -lOSMesa16 diff --git a/nx-X11/extras/Mesa/configs/linux-osmesa32 b/nx-X11/extras/Mesa/configs/linux-osmesa32 deleted file mode 100644 index 0ff0a6db9..000000000 --- a/nx-X11/extras/Mesa/configs/linux-osmesa32 +++ /dev/null @@ -1,27 +0,0 @@ -# Configuration for 32 bits/channel OSMesa library on Linux - -include $(TOP)/configs/default - -CONFIG_NAME = linux-osmesa32 - -# Compiler and flags -CC = gcc -CXX = g++ -CFLAGS = -O3 -ansi -pedantic -fPIC -ffast-math -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_XSHM -DPTHREADS -I/usr/X11R6/include -DCHAN_BITS=32 -DDEFAULT_SOFTWARE_DEPTH_BITS=31 -CXXFLAGS = -O3 -ansi -pedantic -fPIC -ffast-math -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE - - -# Library names -OSMESA_LIB = OSMesa32 -OSMESA_LIB_NAME = libOSMesa32.so - - -# Directories -SRC_DIRS = mesa glu -DRIVER_DIRS = osmesa -PROGRAM_DIRS = - - -# Dependencies -OSMESA_LIB_DEPS = -lm -lpthread -APP_LIB_DEPS = -lOSMesa32 diff --git a/nx-X11/extras/Mesa/configs/linux-ppc b/nx-X11/extras/Mesa/configs/linux-ppc deleted file mode 100644 index 13cfdeb42..000000000 --- a/nx-X11/extras/Mesa/configs/linux-ppc +++ /dev/null @@ -1,9 +0,0 @@ -# Configuration for Linux on PPC - -include $(TOP)/configs/linux - -CONFIG_NAME = linux-ppc - -OPT_FLAGS = -O3 -mcpu=603 -fsigned-char -funroll-loops - -# FIXME: Use of PowerPC assembly should be enabled here. \ No newline at end of file diff --git a/nx-X11/extras/Mesa/configs/linux-ppc-static b/nx-X11/extras/Mesa/configs/linux-ppc-static deleted file mode 100644 index d0e168811..000000000 --- a/nx-X11/extras/Mesa/configs/linux-ppc-static +++ /dev/null @@ -1,14 +0,0 @@ -# Configuration for Linux on PPC, static libs - -include $(TOP)/configs/linux-ppc - -CONFIG_NAME = linux-ppc-static - -MKLIB_OPTIONS = -static - -# Library names (actual file names) -GL_LIB_NAME = libGL.a -GLU_LIB_NAME = libGLU.a -GLUT_LIB_NAME = libglut.a -GLW_LIB_NAME = libGLw.a -OSMESA_LIB_NAME = libOSMesa.a diff --git a/nx-X11/extras/Mesa/configs/linux-profile b/nx-X11/extras/Mesa/configs/linux-profile deleted file mode 100644 index b2531f562..000000000 --- a/nx-X11/extras/Mesa/configs/linux-profile +++ /dev/null @@ -1,29 +0,0 @@ -# Configuration for profiling on Linux with gprof - -include $(TOP)/configs/default - -CONFIG_NAME = linux-profile - -# Compiler and flags -CC = gcc -CXX = g++ - -CFLAGS = -pg -O -ansi -pedantic -Wall -Wmissing-prototypes -Wundef -fPIC -ffast-math -D_POSIX_SOURCE -D_SVID_SOURCE -D_BSD_SOURCE -I/usr/X11R6/include -DUSE_XSHM -DPTHREADS -DDEBUG -DMESA_DEBUG - -CXXFLAGS = -pg -O -ansi -pedantic -Wall -Wundef -fPIC -ffast-math -D_POSIX_SOURCE -D_SVID_SOURCE -D_BSD_SOURCE -DDEBUG -DMESA_DEBUG - -GLUT_CFLAGS = -fexceptions - -# Need to have -L/usr/X11R6/lib in these: -GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -lpthread -GLUT_LIB_DEPS = -L$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm -GLW_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) -lXt -L/usr/X11R6/lib -lX11 - -# Need to make static libs for profiling: -MKLIB_OPTIONS = -static -GL_LIB_NAME = lib$(GL_LIB).a -GLU_LIB_NAME = lib$(GLU_LIB).a -GLUT_LIB_NAME = lib$(GLUT_LIB).a -GLW_LIB_NAME = lib$(GLW_LIB).a -OSMESA_LIB_NAME = lib$(OSMesa).a -APP_LIB_DEPS = -L$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lm -lpthread diff --git a/nx-X11/extras/Mesa/configs/linux-solo b/nx-X11/extras/Mesa/configs/linux-solo deleted file mode 100644 index a3deb7c20..000000000 --- a/nx-X11/extras/Mesa/configs/linux-solo +++ /dev/null @@ -1,43 +0,0 @@ -# Configuration for linux-solo: Linux DRI hardware drivers for fbdev - -include $(TOP)/configs/default - -CONFIG_NAME = linux-solo - -# Compiler and flags -CC = gcc -CXX = g++ - -WARN_FLAGS = -Wall -Wundef -OPT_FLAGS = -O3 -g -PIC_FLAGS = -fPIC - -# Add '-DGLX_USE_TLS' to ARCH_FLAGS to enable TLS support. -ARCH_FLAGS ?= - -DEFINES = -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE \ - -D_BSD_SOURCE -D_GNU_SOURCE \ - -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1 -DDRM_USE_MALLOC -DIN_DRI_DRIVER - -CFLAGS = $(WARN_FLAGS) $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(DEFINES) \ - $(ASM_FLAGS) -std=c99 -ffast-math - -CXXFLAGS = $(WARN_FLAGS) $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(DEFINES) - - -ASM_SOURCES = - -# Library/program dependencies -DRI_LIB_DEPS = -lm -lpthread -lexpat -ldl -L$(LIB_DIR) -GL_LIB_DEPS = -lm -lpthread -ldl -GLU_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) -lm -GLUT_LIB_DEPS = -L$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -lm -APP_LIB_DEPS = -L$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lm -lpthread - -# Directories -SRC_DIRS = glx/mini mesa glu glut/mini -DRIVER_DIRS = dri -PROGRAM_DIRS = miniglx - -#DRI_DIRS = ffb gamma sis savage -DRI_DIRS = i810 i830 i915 mach64 mga r128 r200 radeon tdfx unichrome fb diff --git a/nx-X11/extras/Mesa/configs/linux-solo-ia64 b/nx-X11/extras/Mesa/configs/linux-solo-ia64 deleted file mode 100644 index b2051fac8..000000000 --- a/nx-X11/extras/Mesa/configs/linux-solo-ia64 +++ /dev/null @@ -1,7 +0,0 @@ -# Configuration for linux-solo-ia64: Linux DRI hardware drivers for fbdev - -include $(TOP)/configs/linux-solo - -CONFIG_NAME = linux-solo-ia64 - -DRI_DIRS = fb mach64 mga r128 r200 radeon sis tdfx unichrome diff --git a/nx-X11/extras/Mesa/configs/linux-solo-x86 b/nx-X11/extras/Mesa/configs/linux-solo-x86 deleted file mode 100644 index b4e79ba2c..000000000 --- a/nx-X11/extras/Mesa/configs/linux-solo-x86 +++ /dev/null @@ -1,12 +0,0 @@ -# -*-makefile-*- -# Configuration for linux-solo-x86: Linux hardware drivers for fbdev for x86 - -include $(TOP)/configs/linux-solo - -CONFIG_NAME = linux-solo-x86 - -# Unnecessary on x86, generally. -PIC_FLAGS = - -ASM_FLAGS = -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM -ASM_SOURCES = $(X86_SOURCES) diff --git a/nx-X11/extras/Mesa/configs/linux-sparc b/nx-X11/extras/Mesa/configs/linux-sparc deleted file mode 100644 index 15e0b6d4b..000000000 --- a/nx-X11/extras/Mesa/configs/linux-sparc +++ /dev/null @@ -1,30 +0,0 @@ -# Configuration for Linux on Sparc - -include $(TOP)/configs/default - -CONFIG_NAME = linux-sparc - -# Compiler and flags -CC = gcc -CXX = g++ - -WARN_FLAGS = -Wall -OPT_FLAGS = -O2 -PIC_FLAGS = -fPIC - -DEFINES = -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_XSHM - -X11_INCLUDES = -I/usr/X11R6/include - -CFLAGS = $(WARN_FLAGS) $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(DEFINES) \ - $(ASM_FLAGS) -std=c99 -ffast-math - -CXXFLAGS = $(WARN_FLAGS) $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(DEFINES) - -GLUT_CFLAGS = -fexceptions - -EXTRA_LIB_PATH=-L/usr/X11R6/lib - -GL_LIB_DEPS = $(EXTRA_LIB_PATH) -lX11 -lXext -lm -lpthread -GLUT_LIB_DEPS = -L$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) $(EXTRA_LIB_PATH) -lX11 -lXmu -lXt -lXi -lm -GLW_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) $(EXTRA_LIB_PATH) -lXt -lX11 diff --git a/nx-X11/extras/Mesa/configs/linux-sparc5 b/nx-X11/extras/Mesa/configs/linux-sparc5 deleted file mode 100644 index aa9461af7..000000000 --- a/nx-X11/extras/Mesa/configs/linux-sparc5 +++ /dev/null @@ -1,17 +0,0 @@ -# Configuration for Linux on Sparc5 - -include $(TOP)/configs/default - -CONFIG_NAME = linux-sparc5 - -# Compiler and flags -CC = gcc -CXX = g++ -CFLAGS = -mcpu=ultrasparc -O2 -ffast-math -ansi -pedantic -fPIC -D_SVID_SOURCE -D_BSD_SOURCE -I/usr/X11R6/include -DUSE_XSHM -CXXFLAGS = -mcpu=ultrasparc -O2 -ffast-math -ansi -pedantic -fPIC -D_SVID_SOURCE -D_BSD_SOURCE -GLUT_CFLAGS = -fexceptions - -GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -lpthread -GLUT_LIB_DEPS = -L$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm -GLW_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) -L/usr/X11R6/lib -lXt -lX11 - diff --git a/nx-X11/extras/Mesa/configs/linux-static b/nx-X11/extras/Mesa/configs/linux-static deleted file mode 100644 index 0104d3402..000000000 --- a/nx-X11/extras/Mesa/configs/linux-static +++ /dev/null @@ -1,21 +0,0 @@ -# Configuration for generic Linux, making static libs - -include $(TOP)/configs/linux - -CONFIG_NAME = linux-static - -MKLIB_OPTIONS = -static - -# Library names (actual file names) -GL_LIB_NAME = libGL.a -GLU_LIB_NAME = libGLU.a -GLUT_LIB_NAME = libglut.a -GLW_LIB_NAME = libGLw.a -OSMESA_LIB_NAME = libOSMesa.a - -# Library/program dependencies (static libs don't have dependencies) -GL_LIB_DEPS = -OSMESA_LIB_DEPS = -GLU_LIB_DEPS = -GLUT_LIB_DEPS = -GLW_LIB_DEPS = diff --git a/nx-X11/extras/Mesa/configs/linux-tcc b/nx-X11/extras/Mesa/configs/linux-tcc deleted file mode 100644 index 4371fe21f..000000000 --- a/nx-X11/extras/Mesa/configs/linux-tcc +++ /dev/null @@ -1,22 +0,0 @@ -# Configuration for debugging on Linux - -include $(TOP)/configs/default - -CONFIG_NAME = linux-tcc - -# Compiler and flags -CC = gcc -CXX = g++ - -TCC_DIR=/home/progs/tcc-0.9.20 - -CFLAGS = -g -ansi -pedantic -Wall -Wmissing-prototypes -Wundef -fPIC -ffast-math -D_POSIX_SOURCE -D_SVID_SOURCE -D_BSD_SOURCE -I/usr/X11R6/include -DUSE_XSHM -DPTHREADS -DDEBUG -DMESA_DEBUG -DUSE_TCC -I$(TCC_DIR) - -CXXFLAGS = -g -ansi -pedantic -Wall -Wundef -fPIC -ffast-math -D_POSIX_SOURCE -D_SVID_SOURCE -D_BSD_SOURCE -DDEBUG -DMESA_DEBUG - -GLUT_CFLAGS = -fexceptions - -GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -lpthread -L$(TCC_DIR) -ltcc -ldl -GLUT_LIB_DEPS = -L$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm -GLW_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) -lXt -L/usr/X11R6/lib -lX11 -APP_LIB_DEPS = -L$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lm diff --git a/nx-X11/extras/Mesa/configs/linux-ultrasparc b/nx-X11/extras/Mesa/configs/linux-ultrasparc deleted file mode 100644 index e235b56de..000000000 --- a/nx-X11/extras/Mesa/configs/linux-ultrasparc +++ /dev/null @@ -1,17 +0,0 @@ -# Configuration for Linux on UltraSparc - -include $(TOP)/configs/default - -CONFIG_NAME = linux-ultrasparc - -# Compiler and flags -CC = gcc -CXX = g++ -CFLAGS = -mv8 -O2 -mtune=ultrasparc -ansi -pedantic -fPIC -D_SVID_SOURCE -D_BSD_SOURCE -I/usr/X11R6/include -DUSE_XSHM -CXXFLAGS = -mv8 -O2 -mtune=ultrasparc -ansi -pedantic -fPIC -D_SVID_SOURCE -D_BSD_SOURCE -GLUT_CFLAGS = -fexceptions - -GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -lpthread -GLUT_LIB_DEPS = -L$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm -GLW_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) -L/usr/X11R6/lib -lXt -lX11 -APP_LIB_DEPS = -L$(LIB_DIR)-l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lm diff --git a/nx-X11/extras/Mesa/configs/linux-x86 b/nx-X11/extras/Mesa/configs/linux-x86 deleted file mode 100644 index b239653e6..000000000 --- a/nx-X11/extras/Mesa/configs/linux-x86 +++ /dev/null @@ -1,8 +0,0 @@ -# Configuration for Linux with x86 optimizations - -include $(TOP)/configs/linux - -CONFIG_NAME = linux-x86 - -ASM_FLAGS = -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM -ASM_SOURCES = $(X86_SOURCES) $(X86_API) diff --git a/nx-X11/extras/Mesa/configs/linux-x86-32 b/nx-X11/extras/Mesa/configs/linux-x86-32 deleted file mode 100644 index f18ce7a45..000000000 --- a/nx-X11/extras/Mesa/configs/linux-x86-32 +++ /dev/null @@ -1,7 +0,0 @@ -# To build Linux x86 32-bit in an x86-64 environment - -include $(TOP)/configs/linux-x86 - -CONFIG_NAME = linux-x86-32 - -ARCH_FLAGS += -m32 diff --git a/nx-X11/extras/Mesa/configs/linux-x86-64 b/nx-X11/extras/Mesa/configs/linux-x86-64 deleted file mode 100644 index f8ff5489f..000000000 --- a/nx-X11/extras/Mesa/configs/linux-x86-64 +++ /dev/null @@ -1,13 +0,0 @@ -# Configuration for Linux for 64-bit X86 (Opteron) - -include $(TOP)/configs/linux - -CONFIG_NAME = linux-x86-64 - -ARCH_FLAGS = -m64 - -ASM_SOURCES = $(X86-64_SOURCES) $(X86-64_API) -ASM_FLAGS = -DUSE_X86_64_ASM - -LIB_DIR = $(TOP)/lib64 -EXTRA_LIB_PATH = -L/usr/X11R6/lib64 diff --git a/nx-X11/extras/Mesa/configs/linux-x86-64-debug b/nx-X11/extras/Mesa/configs/linux-x86-64-debug deleted file mode 100644 index bbdaec801..000000000 --- a/nx-X11/extras/Mesa/configs/linux-x86-64-debug +++ /dev/null @@ -1,7 +0,0 @@ -# Configuration for Linux for 64-bit X86 (Opteron) - -include $(TOP)/configs/linux-x86-64 - -CONFIG_NAME = linux-x86-64-debug - -DEFINES += -DDEBUG -DMESA_DEBUG -DRUN_DEBUG_BENCHMARK diff --git a/nx-X11/extras/Mesa/configs/linux-x86-64-static b/nx-X11/extras/Mesa/configs/linux-x86-64-static deleted file mode 100644 index 05f21d87a..000000000 --- a/nx-X11/extras/Mesa/configs/linux-x86-64-static +++ /dev/null @@ -1,21 +0,0 @@ -# Configuration for Linux for 64-bit X86 (Opteron), static libs - -include $(TOP)/configs/linux-x86-64 - -CONFIG_NAME = linux-x86-64-static - -MKLIB_OPTIONS = -static - -# Library names (actual file names) -GL_LIB_NAME = libGL.a -GLU_LIB_NAME = libGLU.a -GLUT_LIB_NAME = libglut.a -GLW_LIB_NAME = libGLw.a -OSMESA_LIB_NAME = libOSMesa.a - -# Library/program dependencies (static libs don't have dependencies) -GL_LIB_DEPS = -OSMESA_LIB_DEPS = -GLU_LIB_DEPS = -GLUT_LIB_DEPS = -GLW_LIB_DEPS = diff --git a/nx-X11/extras/Mesa/configs/linux-x86-debug b/nx-X11/extras/Mesa/configs/linux-x86-debug deleted file mode 100644 index dbb970300..000000000 --- a/nx-X11/extras/Mesa/configs/linux-x86-debug +++ /dev/null @@ -1,9 +0,0 @@ -# Configuration for Linux with x86 code, but no gcc optimizations and -# debugging enabled. - -include $(TOP)/configs/linux-x86 - -CONFIG_NAME = linux-x86-debug - -OPT_FLAGS = -g -DEFINES += -DDEBUG -DMESA_DEBUG -DRUN_DEBUG_BENCHMARK diff --git a/nx-X11/extras/Mesa/configs/linux-x86-glide b/nx-X11/extras/Mesa/configs/linux-x86-glide deleted file mode 100644 index b874b923f..000000000 --- a/nx-X11/extras/Mesa/configs/linux-x86-glide +++ /dev/null @@ -1,24 +0,0 @@ -# Configuration for Linux with 3Dfx Glide driver and x86 optimizations - -include $(TOP)/configs/default - -CONFIG_NAME = linux-x86-glide - -# Compiler and flags -CC = gcc -CXX = g++ - -CFLAGS = -Wall -O3 -ansi -pedantic -fPIC -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_XSHM -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM -DPTHREADS -I/usr/X11R6/include -DFX -I/usr/include/glide -I/usr/local/glide/include - -CXXFLAGS = -Wall -O3 -ansi -pedantic -fPIC -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE - -GLUT_CFLAGS = -fexceptions - - -ASM_SOURCES = $(X86_SOURCES) $(X86_API) - -# Library/program dependencies -GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -L/usr/local/glide/lib -lglide3x -lm -lpthread -GLUT_LIB_DEPS = -L$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm -GLW_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) -L/usr/X11R6/lib -lXt -lX11 -APP_LIB_DEPS = -L$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/local/glide/lib -lglide3x -lm diff --git a/nx-X11/extras/Mesa/configs/linux-x86-static b/nx-X11/extras/Mesa/configs/linux-x86-static deleted file mode 100644 index d4ccfca80..000000000 --- a/nx-X11/extras/Mesa/configs/linux-x86-static +++ /dev/null @@ -1,21 +0,0 @@ -# Configuration for Linux with x86 optimizations, static libs - -include $(TOP)/configs/linux-x86 - -CONFIG_NAME = linux-x86-static - -MKLIB_OPTIONS = -static - -# Library names (actual file names) -GL_LIB_NAME = libGL.a -GLU_LIB_NAME = libGLU.a -GLUT_LIB_NAME = libglut.a -GLW_LIB_NAME = libGLw.a -OSMESA_LIB_NAME = libOSMesa.a - -# Library/program dependencies (static libs don't have dependencies) -GL_LIB_DEPS = -OSMESA_LIB_DEPS = -GLU_LIB_DEPS = -GLUT_LIB_DEPS = -GLW_LIB_DEPS = diff --git a/nx-X11/extras/Mesa/configs/linux-x86-xcb b/nx-X11/extras/Mesa/configs/linux-x86-xcb deleted file mode 100644 index 7c5074c30..000000000 --- a/nx-X11/extras/Mesa/configs/linux-x86-xcb +++ /dev/null @@ -1,24 +0,0 @@ -# Configuration for Linux with x86 optimizations - -include $(TOP)/configs/default - -CONFIG_NAME = linux-x86-xcb - -# Compiler and flags -CC = gcc -CXX = g++ - -CFLAGS = -Wall -O3 -ansi -pedantic -fPIC -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_XSHM -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM -DPTHREADS -DUSE_XCB -I/usr/X11R6/include - -CXXFLAGS = -Wall -O3 -ansi -pedantic -fPIC -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_XCB - -GLUT_CFLAGS = -fexceptions - - -ASM_SOURCES = $(X86_SOURCES) $(X86_API) - -# Library/program dependencies -GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -lpthread -lXCB -GLUT_LIB_DEPS = -L$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm -GLW_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) -L/usr/X11R6/lib -lXt -lX11 -APP_LIB_DEPS = -L$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lm diff --git a/nx-X11/extras/Mesa/configs/netbsd b/nx-X11/extras/Mesa/configs/netbsd deleted file mode 100644 index 104daae0d..000000000 --- a/nx-X11/extras/Mesa/configs/netbsd +++ /dev/null @@ -1,14 +0,0 @@ -# Configuration for NetBSD - -include $(TOP)/configs/default - -CONFIG_NAME = netbsd - -# Compiler and flags -CC = gcc -CXX = g++ -CFLAGS = -O2 -fPIC -DUSE_XSHM -I/usr/X11R6/include -DHZ=100 -CXXFLAGS = -O2 -fPIC -GLUT_CFLAGS = -fexceptions -APP_LIB_DEPS = -L$(LIB_DIR) -L/usr/X11R6/lib -lXext -lXmu -lXi -lX11 -lm - diff --git a/nx-X11/extras/Mesa/configs/openbsd b/nx-X11/extras/Mesa/configs/openbsd deleted file mode 100644 index f769259a3..000000000 --- a/nx-X11/extras/Mesa/configs/openbsd +++ /dev/null @@ -1,18 +0,0 @@ -# Configuration for OpenBSD - -include $(TOP)/configs/default - -CONFIG_NAME = openbsd - -# Compiler and flags -CC = gcc -CXX = g++ -CFLAGS = -O2 -fPIC -I/usr/X11R6/include -DUSE_XSHM -DHZ=100 -CXXFLAGS = -O2 -fPIC -I/usr/X11R6/include -DHZ=100 - -GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -OSMESA_LIB_DEPS = -lm -GLU_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) -GLUT_LIB_DEPS = -L$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXext -lXmu -lXt -lXi -lm -APP_LIB_DEPS = -L$(LIB_DIR) -L/usr/X11R6/lib -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lm - diff --git a/nx-X11/extras/Mesa/configs/osf1 b/nx-X11/extras/Mesa/configs/osf1 deleted file mode 100644 index bc88c2042..000000000 --- a/nx-X11/extras/Mesa/configs/osf1 +++ /dev/null @@ -1,16 +0,0 @@ -# Configuration for OSF/1 - -include $(TOP)/configs/default - -CONFIG_NAME = osf1 - -# Compiler and flags -CC = cc -CXX = cxx -CFLAGS = -O0 -std1 -ieee_with_no_inexact -DUSE_XSHM -CXXFLAGS = -O2 -std ansi -ieee - -GL_LIB_DEPS = -lX11 -lXext -lm -lpthread -GLU_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) -lm -GLUT_LIB_DEPS = -L$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -lX11 -lXmu -lXt -lXi -lm -APP_LIB_DEPS = -L$(LIB_DIR) -L$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lX11 -lXext -lXmu -lXi -lm diff --git a/nx-X11/extras/Mesa/configs/solaris-x86 b/nx-X11/extras/Mesa/configs/solaris-x86 deleted file mode 100644 index 7a04417f0..000000000 --- a/nx-X11/extras/Mesa/configs/solaris-x86 +++ /dev/null @@ -1,18 +0,0 @@ -# Configuration for Solaris on x86 - -include $(TOP)/configs/default - -CONFIG_NAME = solaris-x86 - -# Compiler and flags -CC = cc -CFLAGS = -Xa -xO3 -xpentium -KPIC -I/usr/openwin/include -DUSE_XSHM -MKLIB_OPTIONS = -static - -APP_LIB_DEPS = -L$(LIB_DIR) -L/usr/openwin/lib -R/usr/openwin/lib -lX11 -lXext -lXmu -lXi -lm -lglut -lGLU -lGL - -GL_LIB_NAME = libGL.a -GLU_LIB_NAME = libGLU.a -GLUT_LIB_NAME = libglut.a -GLW_LIB_NAME = libGLw.a -OSMESA_LIB_NAME = libOSMesa.a diff --git a/nx-X11/extras/Mesa/configs/solaris-x86-gcc b/nx-X11/extras/Mesa/configs/solaris-x86-gcc deleted file mode 100644 index 01f3d86d1..000000000 --- a/nx-X11/extras/Mesa/configs/solaris-x86-gcc +++ /dev/null @@ -1,24 +0,0 @@ -# Configuration for Solaris on x86 with gcc, static libs - -include $(TOP)/configs/default - -CONFIG_NAME = solaris-x86-gcc - -# Compiler and flags -CC = gcc -CXX = g++ -CFLAGS = -O3 -m486 -fPIC -I/usr/openwin/include -DUSE_XSHM -CXXFLAGS = -O3 -m486 -fPIC -GLUT_CFLAGS = -fexceptions -MKLIB_OPTIONS = -static - -GL_LIB_DEPS = -L/usr/openwin/lib -lX11 -lXext -lm -lpthread -GLU_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) -lm -GLUT_LIB_DEPS = -L$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/openwin/lib -lX11 -lXmu -lXt -lXi -lm -APP_LIB_DEPS = -L$(LIB_DIR) -L/usr/openwin/lib -R/usr/openwin/lib -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lm - -GL_LIB_NAME = libGL.a -GLU_LIB_NAME = libGLU.a -GLUT_LIB_NAME = libglut.a -GLW_LIB_NAME = libGLw.a -OSMESA_LIB_NAME = libOSMesa.a diff --git a/nx-X11/extras/Mesa/configs/sunos4 b/nx-X11/extras/Mesa/configs/sunos4 deleted file mode 100644 index 483b9aa73..000000000 --- a/nx-X11/extras/Mesa/configs/sunos4 +++ /dev/null @@ -1,12 +0,0 @@ -# Configuration for SunOS 4, shared libs - -include $(TOP)/configs/default - -CONFIG_NAME = sunos4 - -# Compiler and flags -CC = acc -CFLAGS = -Kpic -O -I/usr/include/X11R5 -DUSE_XSHM -DSUNOS4 -APP_LIB_DEPS = -L$(LIB_DIR) -L/usr/lib/X11R5 -lX11 -lXext -lXmu -lXi -lm - - diff --git a/nx-X11/extras/Mesa/configs/sunos4-gcc b/nx-X11/extras/Mesa/configs/sunos4-gcc deleted file mode 100644 index 8fb1414fa..000000000 --- a/nx-X11/extras/Mesa/configs/sunos4-gcc +++ /dev/null @@ -1,15 +0,0 @@ -# Configuration for SunOS 4, with gcc, shared libs - -include $(TOP)/configs/default - -CONFIG_NAME = sunos4-gcc - -# Compiler and flags -CC = gcc -CXX = g++ -CFLAGS = -fPIC -O3 -I/usr/openwin/include -I/usr/include/X11R5 -I/usr/include/X11R5 -DUSE_XSHM -DSUNOS4 -CXXFLAGS = -fPIC -O3 -I/usr/openwin/include -DSUNOS4 -GLUT_CFLAGS = -fexceptions -DSOLARIS_2_4_BUG - -APP_LIB_DEPS = -L$(LIB_DIR) -L/usr/openwin/lib -lX11 -lXext -lXmu -lXi -lm - diff --git a/nx-X11/extras/Mesa/configs/sunos4-static b/nx-X11/extras/Mesa/configs/sunos4-static deleted file mode 100644 index 3e510e751..000000000 --- a/nx-X11/extras/Mesa/configs/sunos4-static +++ /dev/null @@ -1,25 +0,0 @@ -# Configuration for SunOS 4, static libs - -include $(TOP)/configs/default - -CONFIG_NAME = sunos4-static - -# Compiler and flags -CC = acc -CFLAGS = -O -DUSE_XSHM -DSUNOS4 -MKLIB_OPTIONS = -static - -# Library names (actual file names) -GL_LIB_NAME = libGL.a -GLU_LIB_NAME = libGLU.a -GLUT_LIB_NAME = libglut.a -GLW_LIB_NAME = libGLw.a -OSMESA_LIB_NAME = libOSMesa.a - -# Library/program dependencies (static libs don't have dependencies) -GL_LIB_DEPS = -OSMESA_LIB_DEPS = -GLU_LIB_DEPS = -GLUT_LIB_DEPS = -GLW_LIB_DEPS = -APP_LIB_DEPS = -L$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXext -lXmu -lXt -lXi -lpthread -lm diff --git a/nx-X11/extras/Mesa/configs/sunos5 b/nx-X11/extras/Mesa/configs/sunos5 deleted file mode 100644 index 9347fb842..000000000 --- a/nx-X11/extras/Mesa/configs/sunos5 +++ /dev/null @@ -1,18 +0,0 @@ -# Configuration for SunOS 5 - -include $(TOP)/configs/default - -CONFIG_NAME = sunos5 - -# Compiler and flags -CC = cc -CXX = c++ -CFLAGS = -KPIC -Xa -O -I/usr/openwin/include -I/usr/dt/include -DUSE_XSHM -CXXFLAGS = -KPIC -Xa -O -I/usr/openwin/include -I/usr/dt/include -GLUT_CFLAGS = -DSOLARIS_2_4_BUG - -GL_LIB_DEPS = -L/usr/openwin/lib -L/usr/dt/lib -lX11 -lXext -lXmu -lXi -lm -GLU_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) -lm -GLUT_LIB_DEPS = -L$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -lm -GLW_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) -L/usr/openwin/lib -lXt -lX11 -APP_LIB_DEPS = -L$(LIB_DIR) -lCrun -lX11 -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lm diff --git a/nx-X11/extras/Mesa/configs/sunos5-gcc b/nx-X11/extras/Mesa/configs/sunos5-gcc deleted file mode 100644 index 7917c9b00..000000000 --- a/nx-X11/extras/Mesa/configs/sunos5-gcc +++ /dev/null @@ -1,35 +0,0 @@ -# Configuration for SunOS 5, with gcc - -include $(TOP)/configs/default - -CONFIG_NAME = sunos5-gcc - -# Compiler and flags -CC = gcc -CXX = g++ - -WARN_FLAGS = -Wall -OPT_FLAGS = -O3 -g -fomit-frame-pointer -pipe -PIC_FLAGS = -fPIC - -ARCH_FLAGS ?= - -DEFINES = -D_REENTRANT -DUSE_XSHM - -ASM_SOURCES = $(SPARC_SOURCES) $(SPARC_API) -ASM_FLAGS = -DUSE_SPARC_ASM - -CFLAGS = $(WARN_FLAGS) $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(DEFINES) \ - $(ASM_FLAGS) -std=c99 -ffast-math -I/usr/openwin/include - -CXXFLAGS = $(WARN_FLAGS) $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(DEFINES) \ - -I/usr/openwin/include - -GLUT_CFLAGS = -fexceptions -DSOLARIS_2_4_BUG - -# Library/program dependencies -EXTRA_LIB_PATH=-L/usr/openwin/lib - -GL_LIB_DEPS = $(EXTRA_LIB_PATH) -lX11 -lXext -lXmu -lXi -lm -GLUT_LIB_DEPS = -L$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -lm -APP_LIB_DEPS = -L$(LIB_DIR) -lX11 -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lm diff --git a/nx-X11/extras/Mesa/configs/sunos5-smp b/nx-X11/extras/Mesa/configs/sunos5-smp deleted file mode 100644 index 633bced68..000000000 --- a/nx-X11/extras/Mesa/configs/sunos5-smp +++ /dev/null @@ -1,19 +0,0 @@ -# Configuration for SunOS 5, SMP systems - -include $(TOP)/configs/default - -CONFIG_NAME = sunos5-smp - -# Compiler and flags -CC = cc -CXX = c++ -CFLAGS = -KPIC -Xa -native -fast -xO5 -xlibmil -xsafe=mem -xdepend -I/usr/openwin/include -I/usr/dt/include -DUSE_XSHM -DSOLARIS_2_4_BUG -CXXFLAGS = -KPIC -Xa -native -fast -xO5 -xlibmil -xsafe=mem -xdepend -I/usr/openwin/include -I/usr/dt/include -GLUT_CFLAGS = -DSOLARIS_2_4_BUG - -GL_LIB_DEPS = -L/usr/openwin/lib -lX11 -lXext -lXmu -lXi -lm -GLU_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) -lm -GLUT_LIB_DEPS = -L$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -lm -GLW_LIB_DEPS = -L$(LIB_DIR) -l$(GL_LIB) -L/usr/openwin/lib -lXt -lX11 -APP_LIB_DEPS = -L$(LIB_DIR) -lX11 -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lm -lCrun - diff --git a/nx-X11/extras/Mesa/configs/ultrix-gcc b/nx-X11/extras/Mesa/configs/ultrix-gcc deleted file mode 100644 index c65e27582..000000000 --- a/nx-X11/extras/Mesa/configs/ultrix-gcc +++ /dev/null @@ -1,21 +0,0 @@ -# Configuration for Ultrix, with gcc - -include $(TOP)/configs/default - -CONFIG_NAME = ultrix-gcc - -# Compiler and flags -CC = gcc -CXX = g++ -CFLAGS = -pedantic -O2 -CXXFLAGS = -pedantic -O2 -GLUT_CFLAGS = -fexceptions -MKLIB_OPTIONS = -static - -GL_LIB_NAME = libGL.a -GLU_LIB_NAME = libGLU.a -GLUT_LIB_NAME = libglut.a -GLW_LIB_NAME = libGLw.a -OSMESA_LIB_NAME = libOSMesa.a - -APP_LIB_DEPS = -L$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lXmu -lX11 -lXi -lm diff --git a/nx-X11/extras/Mesa/descrip.mms b/nx-X11/extras/Mesa/descrip.mms deleted file mode 100644 index 11d949889..000000000 --- a/nx-X11/extras/Mesa/descrip.mms +++ /dev/null @@ -1,22 +0,0 @@ -# Makefile for Mesa for VMS -# contributed by Jouk Jansen joukj@hrem.stm.tudelft.nl - -macro : - @ macro="" -.ifdef NOSHARE -.else - @ if f$getsyi("HW_MODEL") .ge. 1024 then macro= "/MACRO=(SHARE=1)" -.endif - $(MMS)$(MMSQUALIFIERS)'macro' all - -all : - if f$search("lib.dir") .eqs. "" then create/directory [.lib] - set default [.src] - $(MMS)$(MMSQUALIFIERS) - set default [-.progs.util] - $(MMS)$(MMSQUALIFIERS) - set default [-.demos] - $(MMS)$(MMSQUALIFIERS) - set default [-.xdemos] - $(MMS)$(MMSQUALIFIERS) - if f$search("[-]test.DIR") .nes. "" then pipe set default [-.test] ; $(MMS)$(MMSQUALIFIERS) diff --git a/nx-X11/extras/Mesa/docs/COPYING b/nx-X11/extras/Mesa/docs/COPYING deleted file mode 100644 index b88946cc6..000000000 --- a/nx-X11/extras/Mesa/docs/COPYING +++ /dev/null @@ -1,490 +0,0 @@ - -Some parts of Mesa are copyrighted under the GNU LGPL. See the -Mesa/docs/COPYRIGHT file for details. - -The following is the standard GNU copyright file. ----------------------------------------------------------------------- - - - GNU LIBRARY GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1991 Free Software Foundation, Inc. - 675 Mass Ave, Cambridge, MA 02139, USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - -[This is the first released version of the library GPL. It is - numbered 2 because it goes with version 2 of the ordinary GPL.] - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -Licenses are intended to guarantee your freedom to share and change -free software--to make sure the software is free for all its users. - - This license, the Library General Public License, applies to some -specially designated Free Software Foundation software, and to any -other libraries whose authors decide to use it. You can use it for -your libraries, 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 -this service 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 make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if -you distribute copies of the library, or if you modify it. - - For example, if you distribute copies of the library, whether gratis -or for a fee, you must give the recipients all the rights that we gave -you. You must make sure that they, too, receive or can get the source -code. If you link a program with the library, you must provide -complete object files to the recipients so that they can relink them -with the library, after making changes to the library and recompiling -it. And you must show them these terms so they know their rights. - - Our method of protecting your rights has two steps: (1) copyright -the library, and (2) offer you this license which gives you legal -permission to copy, distribute and/or modify the library. - - Also, for each distributor's protection, we want to make certain -that everyone understands that there is no warranty for this free -library. If the library is modified by someone else and passed on, we -want its recipients to know that what they have is not the original -version, so that any problems introduced by others will not reflect on -the original authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that companies distributing free -software will individually obtain patent licenses, thus in effect -transforming the program into proprietary software. To prevent this, -we have made it clear that any patent must be licensed for everyone's -free use or not licensed at all. - - Most GNU software, including some libraries, is covered by the ordinary -GNU General Public License, which was designed for utility programs. This -license, the GNU Library General Public License, applies to certain -designated libraries. This license is quite different from the ordinary -one; be sure to read it in full, and don't assume that anything in it is -the same as in the ordinary license. - - The reason we have a separate public license for some libraries is that -they blur the distinction we usually make between modifying or adding to a -program and simply using it. Linking a program with a library, without -changing the library, is in some sense simply using the library, and is -analogous to running a utility program or application program. However, in -a textual and legal sense, the linked executable is a combined work, a -derivative of the original library, and the ordinary General Public License -treats it as such. - - Because of this blurred distinction, using the ordinary General -Public License for libraries did not effectively promote software -sharing, because most developers did not use the libraries. We -concluded that weaker conditions might promote sharing better. - - However, unrestricted linking of non-free programs would deprive the -users of those programs of all benefit from the free status of the -libraries themselves. This Library General Public License is intended to -permit developers of non-free programs to use free libraries, while -preserving your freedom as a user of such programs to change the free -libraries that are incorporated in them. (We have not seen how to achieve -this as regards changes in header files, but we have achieved it as regards -changes in the actual functions of the Library.) The hope is that this -will lead to faster development of free libraries. - - The precise terms and conditions for copying, distribution and -modification follow. Pay close attention to the difference between a -"work based on the library" and a "work that uses the library". The -former contains code derived from the library, while the latter only -works together with the library. - - Note that it is possible for a library to be covered by the ordinary -General Public License rather than by this special one. - - GNU LIBRARY GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License Agreement applies to any software library which -contains a notice placed by the copyright holder or other authorized -party saying it may be distributed under the terms of this Library -General Public License (also called "this License"). Each licensee is -addressed as "you". - - A "library" means a collection of software functions and/or data -prepared so as to be conveniently linked with application programs -(which use some of those functions and data) to form executables. - - The "Library", below, refers to any such software library or work -which has been distributed under these terms. A "work based on the -Library" means either the Library or any derivative work under -copyright law: that is to say, a work containing the Library or a -portion of it, either verbatim or with modifications and/or translated -straightforwardly into another language. (Hereinafter, translation is -included without limitation in the term "modification".) - - "Source code" for a work means the preferred form of the work for -making modifications to it. For a library, complete source code means -all the source code for all modules it contains, plus any associated -interface definition files, plus the scripts used to control compilation -and installation of the library. - - Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running a program using the Library is not restricted, and output from -such a program is covered only if its contents constitute a work based -on the Library (independent of the use of the Library in a tool for -writing it). Whether that is true depends on what the Library does -and what the program that uses the Library does. - - 1. You may copy and distribute verbatim copies of the Library's -complete source code as you receive it, in any medium, provided that -you conspicuously and appropriately publish on each copy an -appropriate copyright notice and disclaimer of warranty; keep intact -all the notices that refer to this License and to the absence of any -warranty; and distribute a copy of this License along with the -Library. - - You may charge a fee for the physical act of transferring a copy, -and you may at your option offer warranty protection in exchange for a -fee. - - 2. You may modify your copy or copies of the Library or any portion -of it, thus forming a work based on the Library, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) The modified work must itself be a software library. - - b) You must cause the files modified to carry prominent notices - stating that you changed the files and the date of any change. - - c) You must cause the whole of the work to be licensed at no - charge to all third parties under the terms of this License. - - d) If a facility in the modified Library refers to a function or a - table of data to be supplied by an application program that uses - the facility, other than as an argument passed when the facility - is invoked, then you must make a good faith effort to ensure that, - in the event an application does not supply such function or - table, the facility still operates, and performs whatever part of - its purpose remains meaningful. - - (For example, a function in a library to compute square roots has - a purpose that is entirely well-defined independent of the - application. Therefore, Subsection 2d requires that any - application-supplied function or table used by this function must - be optional: if the application does not supply it, the square - root function must still compute square roots.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Library, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Library, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote -it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Library. - -In addition, mere aggregation of another work not based on the Library -with the Library (or with a work based on the Library) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may opt to apply the terms of the ordinary GNU General Public -License instead of this License to a given copy of the Library. To do -this, you must alter all the notices that refer to this License, so -that they refer to the ordinary GNU General Public License, version 2, -instead of to this License. (If a newer version than version 2 of the -ordinary GNU General Public License has appeared, then you can specify -that version instead if you wish.) Do not make any other change in -these notices. - - Once this change is made in a given copy, it is irreversible for -that copy, so the ordinary GNU General Public License applies to all -subsequent copies and derivative works made from that copy. - - This option is useful when you wish to copy part of the code of -the Library into a program that is not a library. - - 4. You may copy and distribute the Library (or a portion or -derivative of it, under Section 2) in object code or executable form -under the terms of Sections 1 and 2 above provided that you accompany -it with the complete corresponding machine-readable source code, which -must be distributed under the terms of Sections 1 and 2 above on a -medium customarily used for software interchange. - - If distribution of object code is made by offering access to copy -from a designated place, then offering equivalent access to copy the -source code from the same place satisfies the requirement to -distribute the source code, even though third parties are not -compelled to copy the source along with the object code. - - 5. A program that contains no derivative of any portion of the -Library, but is designed to work with the Library by being compiled or -linked with it, is called a "work that uses the Library". Such a -work, in isolation, is not a derivative work of the Library, and -therefore falls outside the scope of this License. - - However, linking a "work that uses the Library" with the Library -creates an executable that is a derivative of the Library (because it -contains portions of the Library), rather than a "work that uses the -library". The executable is therefore covered by this License. -Section 6 states terms for distribution of such executables. - - When a "work that uses the Library" uses material from a header file -that is part of the Library, the object code for the work may be a -derivative work of the Library even though the source code is not. -Whether this is true is especially significant if the work can be -linked without the Library, or if the work is itself a library. The -threshold for this to be true is not precisely defined by law. - - If such an object file uses only numerical parameters, data -structure layouts and accessors, and small macros and small inline -functions (ten lines or less in length), then the use of the object -file is unrestricted, regardless of whether it is legally a derivative -work. (Executables containing this object code plus portions of the -Library will still fall under Section 6.) - - Otherwise, if the work is a derivative of the Library, you may -distribute the object code for the work under the terms of Section 6. -Any executables containing that work also fall under Section 6, -whether or not they are linked directly with the Library itself. - - 6. As an exception to the Sections above, you may also compile or -link a "work that uses the Library" with the Library to produce a -work containing portions of the Library, and distribute that work -under terms of your choice, provided that the terms permit -modification of the work for the customer's own use and reverse -engineering for debugging such modifications. - - You must give prominent notice with each copy of the work that the -Library is used in it and that the Library and its use are covered by -this License. You must supply a copy of this License. If the work -during execution displays copyright notices, you must include the -copyright notice for the Library among them, as well as a reference -directing the user to the copy of this License. Also, you must do one -of these things: - - a) Accompany the work with the complete corresponding - machine-readable source code for the Library including whatever - changes were used in the work (which must be distributed under - Sections 1 and 2 above); and, if the work is an executable linked - with the Library, with the complete machine-readable "work that - uses the Library", as object code and/or source code, so that the - user can modify the Library and then relink to produce a modified - executable containing the modified Library. (It is understood - that the user who changes the contents of definitions files in the - Library will not necessarily be able to recompile the application - to use the modified definitions.) - - b) Accompany the work with a written offer, valid for at - least three years, to give the same user the materials - specified in Subsection 6a, above, for a charge no more - than the cost of performing this distribution. - - c) If distribution of the work is made by offering access to copy - from a designated place, offer equivalent access to copy the above - specified materials from the same place. - - d) Verify that the user has already received a copy of these - materials or that you have already sent this user a copy. - - For an executable, the required form of the "work that uses the -Library" must include any data and utility programs needed for -reproducing the executable from it. However, as a special exception, -the source code distributed need not include anything that is normally -distributed (in either source or binary form) with the major -components (compiler, kernel, and so on) of the operating system on -which the executable runs, unless that component itself accompanies -the executable. - - It may happen that this requirement contradicts the license -restrictions of other proprietary libraries that do not normally -accompany the operating system. Such a contradiction means you cannot -use both them and the Library together in an executable that you -distribute. - - 7. You may place library facilities that are a work based on the -Library side-by-side in a single library together with other library -facilities not covered by this License, and distribute such a combined -library, provided that the separate distribution of the work based on -the Library and of the other library facilities is otherwise -permitted, and provided that you do these two things: - - a) Accompany the combined library with a copy of the same work - based on the Library, uncombined with any other library - facilities. This must be distributed under the terms of the - Sections above. - - b) Give prominent notice with the combined library of the fact - that part of it is a work based on the Library, and explaining - where to find the accompanying uncombined form of the same work. - - 8. You may not copy, modify, sublicense, link with, or distribute -the Library except as expressly provided under this License. Any -attempt otherwise to copy, modify, sublicense, link with, or -distribute the Library is void, and will automatically terminate your -rights under this License. However, parties who have received copies, -or rights, from you under this License will not have their licenses -terminated so long as such parties remain in full compliance. - - 9. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Library or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Library (or any work based on the -Library), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Library or works based on it. - - 10. Each time you redistribute the Library (or any work based on the -Library), the recipient automatically receives a license from the -original licensor to copy, distribute, link with or modify the Library -subject to these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 11. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -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 -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Library at all. For example, if a patent -license would not permit royalty-free redistribution of the Library by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Library. - -If any portion of this section is held invalid or unenforceable under any -particular circumstance, the balance of the section is intended to apply, -and the section as a whole is intended to apply in other circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 12. If the distribution and/or use of the Library is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Library under this License may add -an explicit geographical distribution limitation excluding those countries, -so that distribution is permitted only in or among countries not thus -excluded. In such case, this License incorporates the limitation as if -written in the body of this License. - - 13. The Free Software Foundation may publish revised and/or new -versions of the Library 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 Library -specifies a version number of this License which applies to it and -"any later version", you have the option of following the terms and -conditions either of that version or of any later version published by -the Free Software Foundation. If the Library does not specify a -license version number, you may choose any version ever published by -the Free Software Foundation. - - 14. If you wish to incorporate parts of the Library into other free -programs whose distribution conditions are incompatible with these, -write to the author to ask for permission. For software which is -copyrighted by the Free Software Foundation, write to the Free -Software Foundation; we sometimes make exceptions for this. Our -decision will be guided by the two goals of preserving the free status -of all derivatives of our free software and of promoting the sharing -and reuse of software generally. - - NO WARRANTY - - 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO -WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. -EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR -OTHER PARTIES PROVIDE THE LIBRARY "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 -LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME -THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN -WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY -AND/OR REDISTRIBUTE THE LIBRARY 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 -LIBRARY (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 LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF -SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGES. - - END OF TERMS AND CONDITIONS - - Appendix: How to Apply These Terms to Your New Libraries - - If you develop a new library, and you want it to be of the greatest -possible use to the public, we recommend making it free software that -everyone can redistribute and change. You can do so by permitting -redistribution under these terms (or, alternatively, under the terms of the -ordinary General Public License). - - To apply these terms, attach the following notices to the library. It is -safest to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least the -"copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This 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. - - This 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 this library; if not, write to the Free - Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - -Also add information on how to contact you by electronic and paper mail. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the library, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the - library `Frob' (a library for tweaking knobs) written by James Random Hacker. - - , 1 April 1990 - Ty Coon, President of Vice - -That's all there is to it! - diff --git a/nx-X11/extras/Mesa/docs/MESA_agp_offset.spec b/nx-X11/extras/Mesa/docs/MESA_agp_offset.spec deleted file mode 100644 index 8dcc72379..000000000 --- a/nx-X11/extras/Mesa/docs/MESA_agp_offset.spec +++ /dev/null @@ -1,95 +0,0 @@ -Name - - MESA_agp_offset - -Name Strings - - GLX_MESA_agp_offset - -Contact - - Brian Paul, Tungsten Graphics, Inc. (brian.paul 'at' tungstengraphics.com) - Keith Whitwell, Tungsten Graphics, Inc. (keith 'at' tungstengraphics.com) - -Status - - Shipping (Mesa 4.0.4 and later. Only implemented in particular - XFree86/DRI drivers.) - -Version - - 1.0 - -Number - - TBD - -Dependencies - - OpenGL 1.0 or later is required - GLX_NV_vertex_array_range is required. - This extensions is written against the OpenGL 1.4 Specification. - -Overview - - This extensions provides a way to convert pointers in an AGP memory - region into byte offsets into the AGP aperture. - Note, this extension depends on GLX_NV_vertex_array_range, for which - no real specification exists. See GL_NV_vertex_array_range for more - information. - -IP Status - - None - -Issues - - None - -New Procedures and Functions - - unsigned int glXGetAGPOffsetMESA( const void *pointer ) - -New Tokens - - None - -Additions to the OpenGL 1.4 Specification - - None - -Additions to Chapter 3 the GLX 1.4 Specification (Functions and Errors) - - Add a new section, 3.6 as follows: - - 3.6 AGP Memory Access - - On "PC" computers, AGP memory can be allocated with glXAllocateMemoryNV - and freed with glXFreeMemoryNV. Sometimes it's useful to know where a - block of AGP memory is located with respect to the start of the AGP - aperature. The function - - GLuint glXGetAGPOffsetMESA( const GLvoid *pointer ) - - Returns the offset of the given memory block from the start of AGP - memory in basic machine units (i.e. bytes). If pointer is invalid - the value ~0 will be returned. - -GLX Protocol - - None. This is a client side-only extension. - -Errors - - glXGetAGPOffsetMESA will return ~0 if the pointer does not point to - an AGP memory region. - -New State - - None - -Revision History - - 20 September 2002 - Initial draft - 2 October 2002 - finished GLX chapter 3 additions - 27 July 2004 - use unsigned int instead of GLuint, void instead of GLvoid diff --git a/nx-X11/extras/Mesa/docs/MESA_copy_sub_buffer.spec b/nx-X11/extras/Mesa/docs/MESA_copy_sub_buffer.spec deleted file mode 100644 index 43424a5f4..000000000 --- a/nx-X11/extras/Mesa/docs/MESA_copy_sub_buffer.spec +++ /dev/null @@ -1,88 +0,0 @@ -Name - - MESA_copy_sub_buffer - -Name Strings - - GLX_MESA_copy_sub_buffer - -Contact - - Brian Paul (brian.paul 'at' tungstengraphics.com) - -Status - - Shipping since Mesa 2.6 in February, 1998. - -Version - - Last Modified Date: 8 June 2000 - -Number - - 215 - -Dependencies - - OpenGL 1.0 or later is required. - GLX 1.0 or later is required. - -Overview - - The glxCopySubBufferMESA() function copies a rectangular region - of the back color buffer to the front color buffer. This can be - used to quickly repaint 3D windows in response to expose events - when the back color buffer cannot be damaged by other windows. - -IP Status - - Open-source; freely implementable. - -Issues - - None. - -New Procedures and Functions - - void glXCopySubBufferMESA( Display *dpy, GLXDrawable drawable, - int x, int y, int width, int height ); - -New Tokens - - None. - -Additions to Chapter 3 of the GLX 1.3 Specification (Functions and Errors) - - Add to section 3.3.10 Double Buffering: - - The function - - void glXCopySubBufferMESA( Display *dpy, GLXDrawable drawable, - int x, int y, int width, int height ); - - may be used to copy a rectangular region of the back color buffer to - the front color buffer. This can be used to quickly repaint 3D windows - in response to expose events when the back color buffer cannot be - damaged by other windows. - - and indicates the lower-left corner of the region to copy and - and indicate the size in pixels. Coordinate (0,0) - corresponds to the lower-left pixel of the window, like glReadPixels. - -GLX Protocol - - None at this time. The extension is implemented in terms of ordinary - Xlib protocol inside of Mesa. - -Errors - - None. - -New State - - None. - -Revision History - - 8 June 2000 - initial specification - diff --git a/nx-X11/extras/Mesa/docs/MESA_pack_invert.spec b/nx-X11/extras/Mesa/docs/MESA_pack_invert.spec deleted file mode 100644 index 53d5fca71..000000000 --- a/nx-X11/extras/Mesa/docs/MESA_pack_invert.spec +++ /dev/null @@ -1,138 +0,0 @@ -Name - - MESA_pack_invert - -Name Strings - - GL_MESA_pack_invert - -Contact - - Brian Paul, Tungsten Graphics, Inc. (brian.paul 'at' tungstengraphics.com) - Keith Whitwell, Tungsten Graphics, Inc. (keith 'at' tungstengraphics.com) - -Status - - Shipping (Mesa 4.0.4 and later) - -Version - - 1.0 - -Number - - TBD - -Dependencies - - OpenGL 1.0 or later is required - This extensions is written against the OpenGL 1.4 Specification. - -Overview - - This extension adds a new pixel storage parameter to indicate that - images are to be packed in top-to-bottom order instead of OpenGL's - conventional bottom-to-top order. Only pixel packing can be - inverted (i.e. for glReadPixels, glGetTexImage, glGetConvolutionFilter, - etc). - - Almost all known image file formats store images in top-to-bottom - order. As it is, OpenGL reads images from the frame buffer in - bottom-to-top order. Thus, images usually have to be inverted before - writing them to a file with image I/O libraries. This extension - allows images to be read such that inverting isn't needed. - -IP Status - - None - -Issues - - 1. Should we also defined UNPACK_INVERT_MESA for glDrawPixels, etc? - - Resolved: No, we're only concerned with pixel packing. There are other - solutions for inverting images when using glDrawPixels (negative Y pixel - zoom) or glTexImage (invert the vertex T coordinates). It would be easy - enough to define a complementary extension for pixel packing in the - future if needed. - -New Procedures and Functions - - None - -New Tokens - - Accepted by the parameter of PixelStorei and PixelStoref - and the parameter of GetIntegerv, GetFloatv, GetDoublev - and GetBooleanv: - - PACK_INVERT_MESA 0x8758 - -Additions to Chapter 2 of the OpenGL 1.4 Specification (OpenGL Operation) - - None - -Additions to Chapter 3 of the OpenGL 1.4 Specification (Rasterization) - - None - -Additions to Chapter 4 of the OpenGL 1.4 Specification (Per-Fragment -Operations and the Frame Buffer) - - Add the following entry to table 4.4 (PixelStore parameters) on page 182: - - Parameter Name Type Initial Value Valid Range - --------------------------------------------------------- - PACK_INVERT_MESA boolean FALSE TRUE/FALSE - - In the section labeled "Placement in Client Memory" on page 184 - insert the following text into the paragraph before the sentence - that starts with "If the format is RED, GREEN, BLUE...": - - "The parameter PACK_INVERT_MESA controls whether the image is packed - in bottom-to-top order (the default) or top-to-bottom order. Equation - 3.8 is modified as follows: - - ... the first element of the Nth row is indicated by - - p + Nk, if PACK_INVERT_MESA is false - p + k * (H - 1) - Nk, if PACK_INVERT_MESA is true, where H is the - image height - " - -Additions to Chapter 5 of the OpenGL 1.4 Specification (Special Functions) - - None - -Additions to Chapter 6 of the OpenGL 1.4 Specification (State and -State Requests) - - None - -Additions to Appendix A of the OpenGL 1.4 Specification (Invariance) - - None - -Additions to the AGL/GLX/WGL Specifications - - None - -GLX Protocol - - None - -Errors - - None - -New State - - Add the following entry to table 6.20 (Pixels) on page 235: - - Get Value Type Get Cmd Initial Value Description Sec Attribute - -------------------------------------------------------------------------------------------------- - PACK_INVERT_MESA boolean GetBoolean FALSE Value of PACK_INVERT_MESA 4.3.2 pixel-store - -Revision History - - 21 September 2002 - Initial draft diff --git a/nx-X11/extras/Mesa/docs/MESA_packed_depth_stencil.spec b/nx-X11/extras/Mesa/docs/MESA_packed_depth_stencil.spec deleted file mode 100644 index f4b3e3c92..000000000 --- a/nx-X11/extras/Mesa/docs/MESA_packed_depth_stencil.spec +++ /dev/null @@ -1,231 +0,0 @@ -Name - - MESA_packed_depth_stencil - -Name Strings - - GL_MESA_packed_depth_stencil - -Contact - - Keith Whitwell, VA Linux Systems Inc. (keithw 'at' valinux.com) - Brian Paul, VA Linux Systems Inc. (brianp 'at' valinux.com) - -Status - - Obsolete. - -Version - - $Id: MESA_packed_depth_stencil.spec,v 1.1.1.3 2004/08/12 23:43:24 anholt Exp $ - -Number - - ??? - -Dependencies - - EXT_abgr affects the definition of this extension - SGIS_texture4D affects the definition of this extension - EXT_cmyka affects the definition of this extension - ARB_packed_pixels affects the definition of this extension - -Overview - - Provides a mechanism for DrawPixels and ReadPixels to efficiently - transfer depth and stencil image data. Specifically, we defined new - packed pixel formats and types which pack both stencil and depth - into one value. - -Issues: - - 1. Is this the right way to distinguish between 24/8 and 8/24 - pixel formats? Should we instead provide both: - - GL_DEPTH_STENCIL_MESA - GL_STENCIL_DEPTH_MESA - - And perhaps just use GL_UNSIGNED_INT, GL_UNSIGNED_SHORT ? - - 2. If not, is it correct to use _REV to indicate that stencil - preceeds depth in the 1_15 and 8_24 formats? - - 3. Do we really want the GL_UNSIGNED_SHORT formats? - - -New Procedures and Functions - - None. - -New Tokens - - Accepted by the parameter of ReadPixels and DrawPixels: - - GL_DEPTH_STENCIL_MESA 0x8750 - - Accepted by the parameter of ReadPixels and DrawPixels: - - GL_UNSIGNED_INT_24_8_MESA 0x8751 - GL_UNSIGNED_INT_8_24_REV_MESA 0x8752 - GL_UNSIGNED_SHORT_15_1_MESA 0x8753 - GL_UNSIGNED_SHORT_1_15_REV_MESA 0x8754 - -Additions to Chapter 2 of the 1.1 Specification (OpenGL Operation) - - None - -Additions to Chapter 3 of the 1.1 Specification (Rasterization) - - One entry is added to table 3.5 (DrawPixels and ReadPixels formats). - The new table is: - - Target - Format Name Buffer Element Meaning and Order - ----------- ------ ------------------------- - COLOR_INDEX Color Color index - STENCIL_INDEX Stencil Stencil index - DEPTH_COMPONENT Depth Depth component - RED Color R component - GREEN Color G component - BLUE Color B component - ALPHA Color A component - RGB Color R, G, B components - RGBA Color R, G, B, A components - BGRA Color B, G, R, A components - ABGR_EXT Color A, B, G, R components - CMYK_EXT Color Cyan, Magenta, Yellow, Black components - CMYKA_EXT Color Cyan, Magenta, Yellow, Black, A components - LUMINANCE Color Luminance component - LUMINANCE_ALPHA Color Luminance, A components - DEPTH_STENCIL Depth, Depth component, stencil index. - Stencil - - Table 3.5: DrawPixels and ReadPixels formats. The third column - gives a description of and the number and order of elements in a - group. - - Add to the description of packed pixel formats: - - Parameter Data of Matching - Token Name Type Elements Pixel Formats - ---------------- ---- -------- ------------- - - UNSIGNED_BYTE_3_3_2 ubyte 3 RGB - UNSIGNED_BYTE_2_3_3_REV ubyte 3 RGB - UNSIGNED_SHORT_5_6_5 ushort 3 RGB - UNSIGNED_SHORT_5_6_5_REV ushort 3 RGB - UNSIGNED_SHORT_4_4_4_4 ushort 4 RGBA,BGRA,ABGR_EXT,CMYK_EXT - UNSIGNED_SHORT_4_4_4_4_REV ushort 4 RGBA,BGRA - UNSIGNED_SHORT_5_5_5_1 ushort 4 RGBA,BGRA,ABGR_EXT,CMYK_EXT - UNSIGNED_SHORT_1_5_5_5_REV ushort 4 RGBA,BGRA - UNSIGNED_INT_8_8_8_8 uint 4 RGBA,BGRA,ABGR_EXT,CMYK_EXT - UNSIGNED_INT_8_8_8_8_REV uint 4 RGBA,BGRA - UNSIGNED_INT_10_10_10_2 uint 4 RGBA,BGRA,ABGR_EXT,CMYK_EXT - UNSIGNED_INT_2_10_10_10_REV uint 4 RGBA,BGRA - UNSIGNED_SHORT_15_1_MESA ushort 2 DEPTH_STENCIL_MESA - UNSIGNED_SHORT_1_15_REV_MESA ushort 2 DEPTH_STENCIL_MESA - UNSIGNED_SHORT_24_8_MESA ushort 2 DEPTH_STENCIL_MESA - UNSIGNED_SHORT_8_24_REV_MESA ushort 2 DEPTH_STENCIL_MESA - - UNSIGNED_INT_8_24: - - 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 - +-----------------------+-----------------------------------------------------------------------+ - | | | - +-----------------------+-----------------------------------------------------------------------+ - - first second - element element - - - UNSIGNED_INT_24_8: - - 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 - +----------------------------------------------------------------------+------------------------+ - | | | - +----------------------------------------------------------------------+------------------------+ - - first second - element element - - UNSIGNED_SHORT_15_1: - - 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 - +-----------------------------------------------------------+---+ - | | | - +-----------------------------------------------------------+---+ - - first second - element element - - - UNSIGNED_SHORT_1_15_REV: - - 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 - +---+-----------------------------------------------------------+ - | | | - +---+-----------------------------------------------------------+ - - second first - element element - - The assignment of elements to fields in the packed pixel is as - described in the table below: - - First Second Third Fourth - Format Element Element Element Element - ------ ------- ------- ------- ------- - RGB red green blue - RGBA red green blue alpha - BGRA blue green red alpha - ABGR_EXT alpha blue green red - CMYK_EXT cyan magenta yellow black - DEPTH_STENCIL_MESA depth stencil - -Additions to Chapter 4 of the 1.1 Specification (Per-Fragment Operations -and the Frame Buffer) - - The new format is added to the discussion of Obtaining Pixels from the - Framebuffer. It should read " If the is one of RED, GREEN, - BLUE, ALPHA, RGB, RGBA, ABGR_EXT, LUMINANCE, or LUMINANCE_ALPHA, and - the GL is in color index mode, then the color index is obtained." - - The new format is added to the discussion of Index Lookup. It should - read "If is one of RED, GREEN, BLUE, ALPHA, RGB, RGBA, - ABGR_EXT, LUMINANCE, or LUMINANCE_ALPHA, then the index is used to - reference 4 tables of color components: PIXEL_MAP_I_TO_R, - PIXEL_MAP_I_TO_G, PIXEL_MAP_I_TO_B, and PIXEL_MAP_I_TO_A." - - -Additions to Chapter 5 of the 1.1 Specification (Special Functions) - - None - -Additions to Chapter 6 of the 1.1 Specification (State and State Requests) - - None - -Additions to the GLX Specification - - None - -GLX Protocol - - TBD - -Errors - - None - -New State - - None - -Revision History - - Version 1.0 - 23 Sep 2000 - Keith's original version. - - Version 1.1 - 3 Nov 2000 - Brian's edits, assigned values to new enums. - diff --git a/nx-X11/extras/Mesa/docs/MESA_pixmap_colormap.spec b/nx-X11/extras/Mesa/docs/MESA_pixmap_colormap.spec deleted file mode 100644 index fb0b441cc..000000000 --- a/nx-X11/extras/Mesa/docs/MESA_pixmap_colormap.spec +++ /dev/null @@ -1,90 +0,0 @@ -Name - - MESA_pixmap_colormap - -Name Strings - - GLX_MESA_pixmap_colormap - -Contact - - Brian Paul (brian.paul 'at' tungstengraphics.com) - -Status - - Shipping since Mesa 1.2.8 in May, 1996. - -Version - - Last Modified Date: 8 June 2000 - -Number - - 216 - -Dependencies - - OpenGL 1.0 or later is required. - GLX 1.0 or later is required. - -Overview - - Since Mesa allows RGB rendering into drawables with PseudoColor, - StaticColor, GrayScale and StaticGray visuals, Mesa needs a colormap - in order to compute pixel values during rendering. - - The colormap associated with a window can be queried with normal - Xlib functions but there is no colormap associated with pixmaps. - - The glXCreateGLXPixmapMESA function is an alternative to glXCreateGLXPixmap - which allows specification of a colormap. - -IP Status - - Open-source; freely implementable. - -Issues - - None. - -New Procedures and Functions - - GLXPixmap glXCreateGLXPixmapMESA( Display *dpy, XVisualInfo *visual, - Pixmap pixmap, Colormap cmap ); - -New Tokens - - None. - -Additions to Chapter 3 of the GLX 1.3 Specification (Functions and Errors) - - Add to section 3.4.2 Off Screen Rendering - - The Mesa implementation of GLX allows RGB rendering into X windows and - pixmaps of any visual class, not just TrueColor or DirectColor. In order - to compute pixel values from RGB values Mesa requires a colormap. - - The function - - GLXPixmap glXCreateGLXPixmapMESA( Display *dpy, XVisualInfo *visual, - Pixmap pixmap, Colormap cmap ); - - allows one to create a GLXPixmap with a specific colormap. The image - rendered into the pixmap may then be copied to a window (which uses the - same colormap and visual) with the expected results. - -GLX Protocol - - None since this is a client-side extension. - -Errors - - None. - -New State - - None. - -Revision History - - 8 June 2000 - initial specification diff --git a/nx-X11/extras/Mesa/docs/MESA_program_debug.spec b/nx-X11/extras/Mesa/docs/MESA_program_debug.spec deleted file mode 100644 index 89429d8f3..000000000 --- a/nx-X11/extras/Mesa/docs/MESA_program_debug.spec +++ /dev/null @@ -1,357 +0,0 @@ -Name - - MESA_program_debug - -Name Strings - - GL_MESA_program_debug - -Contact - - Brian Paul (brian.paul 'at' tungstengraphics.com) - -Status - - XXX - Not complete yet!!! - -Version - - Last Modified Date: July 20, 2003 - Author Revision: 1.0 - $Date: 2004/08/12 23:43:24 $ $Revision: 1.1.1.3 $ - -Number - - TBD - -Dependencies - - OpenGL 1.4 is required - The extension is written against the OpenGL 1.4 specification. - ARB_vertex_program or ARB_fragment_program or NV_vertex_program - or NV_fragment_program is required. - -Overview - - The extension provides facilities for implementing debuggers for - vertex and fragment programs. - - The concept is that vertex and fragment program debuggers will be - implemented outside of the GL as a utility package. This extension - only provides the minimal hooks required to implement a debugger. - - There are facilities to do the following: - 1. Have the GL call a user-specified function prior to executing - each vertex or fragment instruction. - 2. Query the current program string's execution position. - 3. Query the current values of intermediate program values. - - The main feature is the ProgramCallbackMESA function. It allows the - user to register a callback function with the GL. The callback will - be called prior to executing each vertex or fragment program instruction. - - From within the callback, the user may issue Get* commands to - query current GL state. The GetProgramRegisterfvMESA function allows - current program values to be queried (such as temporaries, input - attributes, and result registers). - - There are flags for enabling/disabling the program callbacks. - - The current execution position (as an offset from the start of the - program string) can be queried with - GetIntegerv(GL_FRAGMENT_PROGRAM_POSITION_MESA, &pos) or - GetIntegerv(GL_VERTEX_PROGRAM_POSITION_MESA, &pos). - - -IP Status - - None - -Issues - - 1. Is this the right model for a debugger? - - It seems prudent to minimize the scope of this extension and leave - it up to the developer (or developer community) to write debuggers - that layer on top of this extension. - - If the debugger were fully implemented within the GL it's not - clear how terminal and GUI-based interfaces would work, for - example. - - 2. There aren't any other extensions that register callbacks with - the GL. Isn't there another solution? - - If we want to be able to single-step through vertex/fragment - programs I don't see another way to do it. - - 3. How do we prevent the user from doing something crazy in the - callback function, like trying to call glBegin (leading to - recursion)? - - The rule is that the callback function can only issue glGet*() - functions and no other GL commands. It could be difficult to - enforce this, however. Therefore, calling any non-get GL - command from within the callback will result in undefined - results. - - 4. Is this extension amenable to hardware implementation? - - Hopefully, but if not, the GL implementation will have to fall - back to a software path when debugging. This may be acceptable - for debugging. - - 5. What's the parameter to ProgramCallbackMESA for? - - It's a common programming practice to associate a user-supplied - value with callback functions. - - 6. Debuggers often allow one to modify intermediate program values, - then continue. Does this extension support that? - - No. - - -New Procedures and Functions (and datatypes) - - typedef void (*programcallbackMESA)(enum target, void *data) - - void ProgramCallbackMESA(enum target, programcallbackMESA callback, - void *data) - - void GetProgramRegisterfvMESA(enum target, sizei len, - const ubyte *registerName, float *v) - -New Tokens - - Accepted by the parameter of Enable, Disable, IsEnabled, - GetBooleanv, GetDoublev, GetFloatv and GetIntegerv: - - FRAGMENT_PROGRAM_CALLBACK_MESA 0x8bb1 - VERTEX_PROGRAM_CALLBACK_MESA 0x8bb4 - - Accepted by the parameter GetBooleanv, GetDoublev, - GetFloatv and GetIntegerv: - - FRAGMENT_PROGRAM_POSITION_MESA 0x8bb0 - VERTEX_PROGRAM_POSITION_MESA 0x8bb4 - - Accepted by the parameter of GetPointerv: - - FRAGMENT_PROGRAM_CALLBACK_FUNC_MESA 0x8bb2 - FRAGMENT_PROGRAM_CALLBACK_DATA_MESA 0x8bb3 - VERTEX_PROGRAM_CALLBACK_FUNC_MESA 0x8bb6 - VERTEX_PROGRAM_CALLBACK_DATA_MESA 0x8bb7 - -Additions to Chapter 2 of the OpenGL 1.4 Specification (OpenGL Operation) - - None. - -Additions to Chapter 3 of the OpenGL 1.4 Specification (Rasterization) - - None. - -Additions to Chapter 4 of the OpenGL 1.4 Specification (Per-Fragment -Operations and the Frame Buffer) - - None. - -Additions to Chapter 5 of the OpenGL 1.4 Specification (Special Functions) - - In section 5.4 "Display Lists", page 202, add the following command - to the list of those that are not compiled into display lists: - - ProgramCallbackMESA. - - - Add a new section 5.7 "Callback Functions" - - The function - - void ProgramCallbackMESA(enum target, programcallbackMESA callback, - void *data) - - registers a user-defined callback function with the GL. - may be FRAGMENT_PROGRAM_ARB or VERTEX_PROGRAM_ARB. The enabled - callback functions registered with these targets will be called - prior to executing each instruction in the current fragment or - vertex program, respectively. The callbacks are enabled and - disabled by calling Enable or Disable with - FRAGMENT_PROGRAM_ARB or VERTEX_PROGRAM_ARB. - - The callback function's signature must match the typedef - - typedef void (*programcallbackMESA)(enum target, void *data) - - When the callback function is called, will either be - FRAGMENT_PROGRAM_ARB or VERTEX_PROGRAM_ARB to indicate which - program is currently executing and will be the value - specified when ProgramCallbackMESA was called. - - From within the callback function, only the following GL commands - may be called: - - GetBooleanv - GetDoublev - GetFloatv - GetIntegerv - GetProgramLocalParameter - GetProgramEnvParameter - GetProgramRegisterfvMESA - GetProgramivARB - GetProgramStringARB - GetError - - Calling any other command from within the callback results in - undefined behaviour. - - -Additions to Chapter 6 of the OpenGL 1.4 Specification (State and -State Requests) - - Add a new section 6.1.3 "Program Value Queries": - - The command - - void GetProgramRegisterfvMESA(enum target, sizei len, - const ubyte *registerName, - float *v) - - Is used to query the value of program variables and registers - during program execution. GetProgramRegisterfvMESA may only be - called from within a callback function registered with - ProgramCallbackMESA. - - and specify the name a variable, input - attribute, temporary, or result register in the program string. - The current value of the named variable is returned as four - values in . If doesn't exist in the program string, - the error INVALID_OPERATION is generated. - -Additions to Appendix A of the OpenGL 1.4 Specification (Invariance) - - None. - -Additions to the AGL/GLX/WGL Specifications - - None. - -GLX Protocol - - XXX TBD - -Dependencies on NV_vertex_program and NV_fragment_program - - If NV_vertex_program and/or NV_fragment_program are supported, - vertex and/or fragment programs defined by those extensions may - be debugged as well. Register queries will use the syntax used - by those extensions (i.e. "v[X]" to query vertex attributes, - "o[X]" for vertex outputs, etc.) - -Errors - - INVALID_OPERATION is generated if ProgramCallbackMESA is called - between Begin and End. - - INVALID_ENUM is generated by ProgramCallbackMESA if is not - a supported vertex or fragment program type. - - Note: INVALID_OPERAION IS NOT generated by GetProgramRegisterfvMESA, - GetBooleanv, GetDoublev, GetFloatv, or GetIntegerv if called between - Begin and End when a vertex or fragment program is currently executing. - - INVALID_ENUM is generated by ProgramCallbackMESA, - GetProgramRegisterfvMESA if is not a program target supported - by ARB_vertex_program, ARB_fragment_program (or NV_vertex_program or - NV_fragment_program). - - INVALID_VALUE is generated by GetProgramRegisterfvMESA if - does not name a known program register or variable. - - INVALID_OPERATION is generated by GetProgramRegisterfvMESA when a - register query is attempted for a program target that's not currently - being executed. - - -New State - - XXX finish - -(table 6.N, p. ###) - Initial - Get Value Type Get Command Value Description Sec. Attribute - --------- ---- ----------- ----- ----------- ---- --------- - FRAGMENT_PROGRAM_CALLBACK_MESA B IsEnabled FALSE XXX XXX enable - VERTEX_PROGRAM_CALLBACK_MESA B IsEnabled FALSE XXX XXX enable - FRAGMENT_PROGRAM_POSITION_MESA Z+ GetIntegerv -1 XXX XXX - - VERTEX_PROGRAM_POSITION_MESA Z+ GetIntegerv -1 XXX XXX - - FRAGMENT_PROGRAM_CALLBACK_FUNC_MESA P GetPointerv NULL XXX XXX - - VERTEX_PROGRAM_CALLBACK_FUNC_MESA P GetPointerv NULL XXX XXX - - FRAGMENT_PROGRAM_CALLBACK_DATA_MESA P GetPointerv NULL XXX XXX - - VERTEX_PROGRAM_CALLBACK_DATA_MESA P GetPointerv NULL XXX XXX - - - XXX more? - -New Implementation Dependent State - - None. - -Revision History - - 8 July 2003 - Initial draft. (Brian Paul) - 11 July 2003 - Second draft. (Brian Paul) - 20 July 2003 - Third draft. Lots of fundamental changes. (Brian Paul) - 23 July 2003 - Added chapter 5 and 6 spec language. (Brian Paul) - -Example Usage - - The following is a very simple example of how this extension may - be used to print the values of R0, R1, R2 and R3 while executing - vertex programs. - - - /* This is called by the GL when the vertex program is executing. - * We can only make glGet* calls from within this function! - */ - void DebugCallback(GLenum target, GLvoid *data) - { - GLint pos; - GLuint i; - - /* Get PC and current instruction string */ - glGetIntegerv(GL_VERTEX_PROGRAM_POSITION_ARB, &pos); - - printf("Current position: %d\n", pos); - - printf("Current temporary registers:\n"); - for (i = 0; i < 4; i++) { - GLfloat v[4]; - char s[10]; - sprintf(s, "R%d", i); - glGetProgramRegisterfvMESA(GL_VERTEX_PROGRAM_ARB, strlen(s), s, v); - printf("R%d = %g, %g, %g, %g\n", i, v[0], v[1], v[2], v[3]); - } - } - - - /* - * elsewhere... - */ - - /* Register our debugger callback function */ - glProgramCallbackMESA(GL_VERTEX_PROGRAM_ARB, DebugCallback, NULL); - glEnable(GL_VERTEX_PROGRAM_CALLBACK_MESA); - - /* define/bind a vertex program */ - - glEnable(GL_VERTEX_PROGRAM); - - /* render something */ - glBegin(GL_POINTS); - glVertex2f(0, 0); - glEnd(); - diff --git a/nx-X11/extras/Mesa/docs/MESA_release_buffers.spec b/nx-X11/extras/Mesa/docs/MESA_release_buffers.spec deleted file mode 100644 index 8db9350d8..000000000 --- a/nx-X11/extras/Mesa/docs/MESA_release_buffers.spec +++ /dev/null @@ -1,85 +0,0 @@ -Name - - MESA_release_buffers - -Name Strings - - GLX_MESA_release_buffers - -Contact - - Brian Paul (brian.paul 'at' tungstengraphics.com) - -Status - - Shipping since Mesa 2.0 in October, 1996. - -Version - - Last Modified Date: 8 June 2000 - -Number - - 217 - -Dependencies - - OpenGL 1.0 or later is required. - GLX 1.0 or later is required. - -Overview - - Mesa's implementation of GLX is entirely implemented on the client side. - Therefore, Mesa cannot immediately detect when an X window or pixmap is - destroyed in order to free any ancilliary data associated with the window - or pixmap. - - The glxMesaReleaseBuffers() function can be used to explicitly indicate - when the back color buffer, depth buffer, stencil buffer, and/or accum- - ulation buffer associated with a drawable can be freed. - -IP Status - - Open-source; freely implementable. - -Issues - - None. - -New Procedures and Functions - - Bool glXReleaseBuffersMESA( Display *dpy, GLXDrawable d ); - -New Tokens - - None. - -Additions to Chapter 3 of the GLX 1.3 Specification (Functions and Errors) - - The function - - Bool glXReleaseBuffersMESA( Display *dpy, GLXDrawable d ); - - causes all software ancilliary buffers (back buffer, depth, stencil, - accum, etc) associated with the named drawable to be immediately - deallocated. True is returned if is a valid Mesa GLX drawable, - else False is returned. After calling glXReleaseBuffersMESA, the - drawable should no longer be used for GL rendering. Results of - attempting to do so are undefined. - - -GLX Protocol - - None, since this is a client-side operation. - -Errors - - None. - -New State - - None. - -Revision History - - 8 June 2000 - initial specification diff --git a/nx-X11/extras/Mesa/docs/MESA_resize_buffers.spec b/nx-X11/extras/Mesa/docs/MESA_resize_buffers.spec deleted file mode 100644 index 4f1fb164b..000000000 --- a/nx-X11/extras/Mesa/docs/MESA_resize_buffers.spec +++ /dev/null @@ -1,82 +0,0 @@ -Name - - MESA_resize_buffers - -Name Strings - - GL_MESA_resize_buffers - -Contact - - Brian Paul (brian.paul 'at' tungstengraphics.com) - -Status - - Shipping (since Mesa version 2.2) - -Version - - $Id: MESA_resize_buffers.spec,v 1.1.1.3 2004/08/12 23:43:24 anholt Exp $ - -Number - - 196 - -Dependencies - - Mesa 2.2 or later is required. - -Overview - - Mesa is often used as a client library with no integration with - the computer's window system (an X server, for example). And since - Mesa does not have an event loop nor window system callbacks, it - cannot properly respond to window system events. In particular, - Mesa cannot automatically detect when a window has been resized. - - Mesa's glViewport command queries the current window size and updates - its internal data structors accordingly. This normally works fine - since most applications call glViewport in responce to window size - changes. - - In some situations, however, the application may not call glViewport - when a window size changes but would still like Mesa to adjust to - the new window size. This extension exports a new function to solve - this problem. - -New Procedures and Functions - - void glResizeBuffersMESA( void ) - -New Tokens - - none - -Additions to the OpenGL Specification (no particular section) - - The glResizeBuffersMESA command may be called when the client - determines that a window has been resized. Calling - glResizeBuffersMESA causes Mesa to query the current window size - and adjust its internal data structures. This may include - reallocating depth, stencil, alpha and accumulation buffers. - -Additions to the AGL/GLX/WGL Specifications - - None - -Errors - - INVALID_OPERATION is generated if ResizeBuffersMESA is called betweeen - Begin and End. - -New State - - None. - -New Implementation Dependent State - - None. - -Revision History - - * Revision 1.0 - Initial specification diff --git a/nx-X11/extras/Mesa/docs/MESA_set_3dfx_mode.spec b/nx-X11/extras/Mesa/docs/MESA_set_3dfx_mode.spec deleted file mode 100644 index 06d97ca02..000000000 --- a/nx-X11/extras/Mesa/docs/MESA_set_3dfx_mode.spec +++ /dev/null @@ -1,85 +0,0 @@ -Name - - MESA_set_3dfx_mode - -Name Strings - - GLX_MESA_set_3dfx_mode - -Contact - - Brian Paul (brian.paul 'at' tungstengraphics.com) - -Status - - Shipping since Mesa 2.6 in February, 1998. - -Version - - Last Modified Date: 8 June 2000 - -Number - - 218 - -Dependencies - - OpenGL 1.0 or later is required. - GLX 1.0 or later is required. - -Overview - - The Mesa Glide driver allows full-screen rendering or rendering into - an X window. The glXSet3DfxModeMESA() function allows an application - to switch between full-screen and windowed rendering. - -IP Status - - Open-source; freely implementable. - -Issues - - None. - -New Procedures and Functions - - GLboolean glXSet3DfxModeMESA( GLint mode ); - -New Tokens - - GLX_3DFX_WINDOW_MODE_MESA 0x1 - GLX_3DFX_FULLSCREEN_MODE_MESA 0x2 - -Additions to Chapter 3 of the GLX 1.3 Specification (Functions and Errors) - - The Mesa Glide device driver allows either rendering in full-screen - mode or rendering into an X window. An application can switch between - full-screen and window rendering with the command: - - GLboolean glXSet3DfxModeMESA( GLint mode ); - - may either be GLX_3DFX_WINDOW_MODE_MESA to indicate window - rendering or GLX_3DFX_FULLSCREEN_MODE_MESA to indicate full-screen mode. - - GL_TRUE is returned if is valid and the operation completed - normally. GL_FALSE is returned if is invalid or if the Glide - driver is not being used. - - Note that only one drawable and context can be created at any given - time with the Mesa Glide driver. - -GLX Protocol - - None since this is a client-side extension. - -Errors - - None. - -New State - - None. - -Revision History - - 8 June 2000 - initial specification diff --git a/nx-X11/extras/Mesa/docs/MESA_sprite_point.spec b/nx-X11/extras/Mesa/docs/MESA_sprite_point.spec deleted file mode 100644 index 88df417cb..000000000 --- a/nx-X11/extras/Mesa/docs/MESA_sprite_point.spec +++ /dev/null @@ -1,191 +0,0 @@ -Name - - MESA_sprite_point - -Name Strings - - GL_MESA_sprite_point - -Contact - - Brian Paul, VA Linux Systems Inc. (brianp 'at' valinux.com) - -Status - - Obsolete - see GL_ARB_point_sprite. - -Version - - $Id: MESA_sprite_point.spec,v 1.1.1.3 2004/08/12 23:43:24 anholt Exp $ - -Number - - ??? - -Dependencies - - GL_EXT_point_parameters effects the definition of this extension - GL_ARB_multitexture effects the definition of this extension - -Overview - - This extension modifies the way in which points are rendered, - specifically when they're textured. When SPRITE_POINT_MESA is enabled - a point is rendered as if it were a quadrilateral with unique texture - coordinates at each vertex. This extension effectively turns points - into sprites which may be rendered more easily and quickly than using - conventional textured quadrilaterals. - - When using point size > 1 or attenuated points this extension is an - effective way to render many small sprite images for particle systems - or other effects. - -Issues: - - 1. How are the texture coordinates computed? - - The lower-left corner has texture coordinate (0,0,r,q). - The lower-right, (1,0,r,q). The upper-right, (1,1,r,q). - The upper-left, (0,1,r,q). - - 2. What about texgen and texture matrices? - - Texgen and the texture matrix have no effect on the point's s and t - texture coordinates. The r and q coordinates may have been computed - by texgen or the texture matrix. Note that with a 3D texture and/or - texgen that the r coordinate could be used to select a slice in the - 3D texture. - - 3. What about point smoothing? - - When point smoothing is enabled, a triangle fan could be rendered - to approximate a circular point. This could be problematic to - define and implement so POINT_SMOOTH is ignored when drawing sprite - points. - - Smoothed points can be approximated by using an appropriate texture - images, alpha testing and blending. - - POLYGON_SMOOTH does effect the rendering of the quadrilateral, however. - - 4. What about sprite rotation? - - There is none. Sprite points are always rendered as window-aligned - squares. One could define rotated texture images if desired. A 3D - texture and appropriate texture r coordinates could be used to - effectively specify image rotation per point. - - 5. What about POLYGON_MODE? - - POLYGON_MODE does not effect the rasterization of the quadrilateral. - - 6. What about POLYGON_CULL? - - TBD. Polygon culling is normally specified and implemented in the - transformation stage of OpenGL. However, some rasterization hardware - implements it later during triangle setup. - - Polygon culling wouldn't be useful for sprite points since the - quadrilaterals are always defined in counter-clockwise order in - window space. For that reason, polygon culling should probably be - ignored. - - 7. Should sprite points be alpha-attenuated if their size is below the - point parameter's threshold size? - - 8. Should there be an advertisized maximum sprite point size? - - No. Since we're rendering the point as a quadrilateral there's no - need to limit the size. - - -New Procedures and Functions - - None. - -New Tokens - - Accepted by the parameter of Enable, Disable, IsEnabled, - GetIntegerv, GetBooleanv, GetFloatv and GetDoublev: - - SPRITE_POINT_MESA 0x???? - MAX_SPRITE_POINT_SIZE_MESA 0x???? (need this?) - -Additions to Chapter 2 of the 1.1 Specification (OpenGL Operation) - - None - -Additions to Chapter 3 of the 1.1 Specification (Rasterization) - - Section ???. - - When SPRITE_POINT_MESA is enabled points are rasterized as screen- - aligned quadrilaterals. If the four vertices of the quadrilateral - are labeled A, B, C, and D, starting at the lower-left corner and moving - counter-clockwise around the quadrilateral, then the vertex and - texture coordinates are computed as follows: - - vertex window coordinate texture coordinate - A (x-r, y-r, z, w) (0, 0, r, q) - B (x+r, y-r, z, w) (1, 0, r, q) - C (x+r, y+r, z, w) (1, 1, r, q) - D (x-r, y+r, z, w) (0, 1, r, q) - - where x, y, z, w are the point's window coordinates, r and q are the - point's 3rd and 4th texture coordinates and r is half the point's - size. The other vertex attributes (such as the color and fog coordinate) - are simply duplicated from the original point vertex. - - Point size may either be specified with PointSize or computed - according to the EXT_point_parameters extension. - - The new texture coordinates are not effected by texgen or the texture - matrix. Note, however, that the texture r and q coordinates are passed - unchanged and may have been computed with texgen and/or the texture - matrix. - - If multiple texture units are present the same texture coordinate is - used for all texture units. - - The point is then rendered as if it were a quadrilateral using the - normal point sampling rules. POLYGON_MODE does not effect the - rasterization of the quadrilateral but POLYGON_SMOOTH does. - - POINT_SMOOTH has no effect when SPRITE_POINT_MESA is enabled. - -Additions to Chapter 4 of the 1.1 Specification (Per-Fragment Operations -and the Frame Buffer) - - None. - -Additions to Chapter 5 of the 1.1 Specification (Special Functions) - - None - -Additions to Chapter 6 of the 1.1 Specification (State and State Requests) - - None - -Additions to the GLX Specification - - None - -GLX Protocol - - TBD - -Errors - - None - -New State - - Add boolean variable SPRITE_POINT_MESA to the point attribute group. - -Revision History - - Version 1.0 - 4 Dec 2000 - Original draft. - - - diff --git a/nx-X11/extras/Mesa/docs/MESA_swap_control.spec b/nx-X11/extras/Mesa/docs/MESA_swap_control.spec deleted file mode 100644 index ecc674649..000000000 --- a/nx-X11/extras/Mesa/docs/MESA_swap_control.spec +++ /dev/null @@ -1,132 +0,0 @@ -Name - - MESA_swap_control - -Name Strings - - GLX_MESA_swap_control - -Contact - - Ian Romanick, IBM, idr at us.ibm.com - -Status - - Deployed in DRI drivers post-XFree86 4.3. - -Version - - Date: 5/1/2003 Revision: 1.1 - -Number - - ??? - -Dependencies - - None - - Based on GLX_SGI_swap_control version 1.9 and WGL_EXT_swap_control - version 1.5. - -Overview - - This extension allows an application to specify a minimum periodicity - of color buffer swaps, measured in video frame periods. - -Issues - - * Should implementations that export GLX_MESA_swap_control also export - GL_EXT_swap_control for compatibility with WGL_EXT_swap_control? - - UNRESOLVED. - -New Procedures and Functions - - int glXSwapIntervalMESA(int interval) - int glXGetSwapIntervalMESA(void) - -New Tokens - - None - -Additions to Chapter 2 of the 1.4 GL Specification (OpenGL Operation) - - None - -Additions to Chapter 3 of the 1.4 GL Specification (Rasterization) - - None - -Additions to Chapter 4 of the 1.4 GL Specification (Per-Fragment Operations -and the Framebuffer) - - None - -Additions to Chapter 5 of the 1.4 GL Specification (Special Functions) - - None - -Additions to Chapter 6 of the 1.4 GL Specification (State and State Requests) - - None - -Additions to the GLX 1.3 Specification - - [Add the following to Section 3.3.10 of the GLX Specification (Double - Buffering)] - - glXSwapIntervalMESA specifies the minimum number of video frame periods - per buffer swap. (e.g. a value of two means that the color buffers - will be swapped at most every other video frame.) A return value - of zero indicates success; otherwise an error occurred. The interval - takes effect when glXSwapBuffers is first called subsequent to the - glXSwapIntervalMESA call. - - A video frame period is the time required by the monitor to display a - full frame of video data. In the case of an interlaced monitor, - this is typically the time required to display both the even and odd - fields of a frame of video data. - - If is set to a value of 0, buffer swaps are not synchron- - ized to a video frame. The value is silently clamped to - the maximum implementation-dependent value supported before being - stored. - - The swap interval is not part of the render context state. It cannot - be pushed or popped. The current swap interval for the window - associated with the current context can be obtained by calling - glXGetSwapIntervalMESA. The default swap interval is 0. - - On XFree86, setting the environment variable LIBGL_THROTTLE_REFRESH sets - the swap interval to 1. - -Errors - - glXSwapIntervalMESA returns GLX_BAD_VALUE if parameter is - less than zero. - - glXSwapIntervalMESA returns GLX_BAD_CONTEXT if there is no current - GLXContext. - -GLX Protocol - - None. This extension only extends to direct rendering contexts. - -New State - - Get Value Get Command Type Initial Value - --------- ----------- ---- ------------- - [swap interval] GetSwapInterval Z+ 0 - -New Implementation Dependent State - - None - - -Revision History - - 1.1, 5/1/03 Added the issues section and contact information. - Changed the default swap interval to 0. - 1.0, 3/17/03 Initial version based on GLX_SGI_swap_control and - WGL_EXT_swap_control. diff --git a/nx-X11/extras/Mesa/docs/MESA_swap_frame_usage.spec b/nx-X11/extras/Mesa/docs/MESA_swap_frame_usage.spec deleted file mode 100644 index 38cf51a20..000000000 --- a/nx-X11/extras/Mesa/docs/MESA_swap_frame_usage.spec +++ /dev/null @@ -1,201 +0,0 @@ -Name - - MESA_swap_frame_usage - -Name Strings - - GLX_MESA_swap_frame_usage - -Contact - - Ian Romanick, IBM, idr at us.ibm.com - -Status - - Deployed in DRI drivers post-XFree86 4.3. - -Version - - Date: 5/1/2003 Revision: 1.1 - -Number - - ??? - -Dependencies - - GLX_SGI_swap_control affects the definition of this extension. - GLX_MESA_swap_control affects the definition of this extension. - GLX_OML_sync_control affects the definition of this extension. - - Based on WGL_I3D_swap_frame_usage version 1.3. - -Overview - - This extension allows an application to deterine what portion of the - swap period has elapsed since the last swap operation completed. The - "usage" value is a floating point value on the range [0,max] which is - calculated as follows: - - td - percent = ---- - tf - - where td is the time measured from the last completed buffer swap (or - call to enable the statistic) to when the next buffer swap completes, tf - is the entire time for a frame which may be multiple screen refreshes - depending on the swap interval as set by the GLX_SGI_swap_control or - GLX_OML_sync_control extensions. - - The value, percent, indicates the amount of time spent between the - completion of the two swaps. If the value is in the range [0,1], the - buffer swap occurred within the time period required to maintain a - constant frame rate. If the value is in the range (1,max], a constant - frame rate was not achieved. The value indicates the number of frames - required to draw. - - This definition of "percent" differs slightly from - WGL_I3D_swap_frame_usage. In WGL_I3D_swap_frame_usage, the measurement - is taken from the completion of one swap to the issuance of the next. - This representation may not be as useful as measuring between - completions, as a significant amount of time may pass between the - issuance of a swap and the swap actually occuring. - - There is also a mechanism to determine whether a frame swap was - missed. - -New Procedures and Functions - - int glXGetFrameUsageMESA(Display *dpy, - GLXDrawable drawable, - float *usage) - - int glXBeginFrameTrackingMESA(Display *dpy, - GLXDrawable drawable) - - int glXEndFrameTrackingMESA(Display *dpy, - GLXDrawable drawable) - - int glXQueryFrameTrackingMESA(Display *dpy, - GLXDrawable drawable, - int64_t *swapCount, - int64_t *missedFrames, - float *lastMissedUsage) - -New Tokens - - None - -Additions to Chapter 2 of the 1.4 GL Specification (OpenGL Operation) - - None - -Additions to Chapter 3 of the 1.4 GL Specification (Rasterization) - - None - -Additions to Chapter 4 of the 1.4 GL Specification (Per-Fragment Operations -and the Framebuffer) - - None - -Additions to Chapter 5 of the 1.4 GL Specification (Special Functions) - - None - -Additions to Chapter 6 of the 1.4 GL Specification (State and State Requests) - - None - -Additions to the GLX 1.3 Specification - - The frame usage is measured as the percentage of the swap period elapsed - between two buffer-swap operations being commited. In unextened GLX the - swap period is the vertical refresh time. If SGI_swap_control or - MESA_swap_control are supported, the swap period is the vertical refresh - time multiplied by the swap interval (or one if the swap interval is set - to zero). - - If OML_sync_control is supported, the swap period is the vertical - refresh time multiplied by the divisor parameter to - glXSwapBuffersMscOML. The frame usage in this case is less than 1.0 if - the swap is commited before target_msc, and is greater than or equal to - 1.0 otherwise. The actual usage value is based on the divisor and is - never less than 0.0. - - int glXBeginFrameTrackingMESA(Display *dpy, - GLXDrawable drawable, - float *usage) - - glXGetFrameUsageMESA returns a floating-point value in - that represents the current swap usage, as defined above. - - Missed frame swaps can be tracked by calling the following function: - - int glXBeginFrameTrackingMESA(Display *dpy, - GLXDrawable drawable) - - glXBeginFrameTrackingMESA resets a "missed frame" count and - synchronizes with the next frame vertical sync before it returns. - If a swap is missed based in the rate control specified by the - set by glXSwapIntervalSGI or the default swap of once - per frame, the missed frame count is incremented. - - The current missed frame count and total number of swaps since - the last call to glXBeginFrameTrackingMESA can be obtained by - callling the following function: - - int glXQueryFrameTrackingMESA(Display *dpy, - GLXDrawable drawable, - int64_t *swapCount, - int64_t *missedFrames, - float *lastMissedUsage) - - The location pointed to by will be updated with the - number of swaps that have been commited. This value may not match the - number of swaps that have been requested since swaps may be - queued by the implementation. This function can be called at any - time and does not synchronize to vertical blank. - - The location pointed to by will contain the number - swaps that missed the specified frame. The frame usage for the - last missed frame is returned in the location pointed to by - . - - Frame tracking is disabled by calling the function - - int glXEndFrameTrackingMESA(Display *dpy, - GLXDrawable drawable) - - This function will not return until all swaps have occurred. The - application can call glXQueryFrameTrackingMESA for a final swap and - missed frame count. - - If these functions are succesful, zero is returned. If the context - associated with dpy and drawable is not a direct context, - GLX_BAD_CONTEXT is returned. - -Errors - - If the function succeeds, zero is returned. If the function - fails, one of the following error codes is returned: - - GLX_BAD_CONTEXT The current rendering context is not a direct - context. - -GLX Protocol - - None. This extension only extends to direct rendering contexts. - -New State - - None - -New Implementation Dependent State - - None - -Revision History - - 1.1, 5/1/03 Added contact information. - 1.0, 3/17/03 Initial version based on WGL_I3D_swap_frame_usage. diff --git a/nx-X11/extras/Mesa/docs/MESA_trace.spec b/nx-X11/extras/Mesa/docs/MESA_trace.spec deleted file mode 100644 index 3db569d2b..000000000 --- a/nx-X11/extras/Mesa/docs/MESA_trace.spec +++ /dev/null @@ -1,360 +0,0 @@ -Name - - MESA_trace - -Name Strings - - GL_MESA_trace - -Contact - - Bernd Kreimeier, Loki Entertainment, bk 'at' lokigames.com - Brian Paul, VA Linux Systems, Inc., brianp 'at' valinux.com - -Status - - Obsolete. - -Version - - $Id: MESA_trace.spec,v 1.1.1.3 2004/08/12 23:43:24 anholt Exp $ - -Number - - none yet - -Dependencies - - OpenGL 1.2 is required. - The extension is written against the OpenGL 1.2 Specification - -Overview - - Provides the application with means to enable and disable logging - of GL calls including parameters as readable text. The verbosity - of the generated log can be controlled. The resulting logs are - valid (but possibly incomplete) C code and can be compiled and - linked for standalone test programs. The set of calls and the - amount of static data that is logged can be controlled at runtime. - The application can add comments and enable or disable tracing of GL - operations at any time. The data flow from the application to GL - and back is unaffected except for timing. - - Application-side implementation of these features raises namespace - and linkage issues. In the driver dispatch table a simple - "chain of responsibility" pattern (aka "composable piepline") - can be added. - -IP Status - - The extension spec is in the public domain. The current implementation - in Mesa is covered by Mesa's XFree86-style copyright by the authors above. - This extension is partially inspired by the Quake2 QGL wrapper. - -Issues - - - (1) Is this Extension obsolete because it can - be implemented as a wrapper DLL? - - RESOLVED: No. While certain operating systems (Win32) provide linkers - that facilitate this kind of solution, other operating systems - (Linux) do not support hierarchical linking, so a wrapper solution - would result in symbol collisions. - Further, IHV's might have builtin support for tracing GL execution - that enjoys privileged access, or that they do not wish to separate - the tracing code from their driver code base. - - (2) Should the Trace API explicitely support the notion of "frames? - This would require hooking into glXSwapBuffers calls as well. - - RESOLVED: No. The application can use NewTraceMESA/EndTraceMESA - and TraceComment along with external parsing tools to split the - trace into frames, in whatever way considered adequate. - - (2a) Should GLX calls be traced? - - PBuffers and other render-to-texture solutions demonstrate that - context level commands beyond SwapBuffers might have to be - traced. The GL DLL exports the entry points, so this would not - be out of the question. - - (3) Should the specification mandate the actual output format? - - RESOLVED: No. It is sufficient to guarantee that all data and commands - will be traced as requested by Enable/DisableTraceMESA, in the order - encountered. Whether the resulting trace is available as a readable - text file, binary metafile, compilable source code, much less which - indentation and formatting has been used, is up to the implementation. - For the same reason this specification does not enforce or prohibit - additional information added to the trace (statistics, profiling/timing, - warnings on possible error conditions). - - (4) Should the comment strings associated with names and pointer (ranges) - be considered persistent state? - - RESOLVED: No. The implementation is not forced to use this information - on subsequent occurences of name/pointer, and is free to consider it - transient state. - - (5) Should comment commands be prohibited between Begin/End? - - RESOLVED: Yes, with the exception of TraceCommentMESA. TraceCommentMESA - is transient, the other commands might cause storage of persistent - data in the context. There is no need to have the ability mark names - or pointers between Begin and End. - - -New Procedures and Functions - - void NewTraceMESA( bitfield mask, const ubyte * traceName ) - - void EndTraceMESA( void ) - - void EnableTraceMESA( bitfield mask ) - - void DisableTraceMESA( bitfield mask ) - - void TraceAssertAttribMESA( bitfield attribMask ) - - void TraceCommentMESA( const ubyte* comment ) - - void TraceTextureMESA( uint name, const ubyte* comment ) - - void TraceListMESA( uint name, const ubyte* comment ) - - void TracePointerMESA( void* pointer, const ubyte* comment ) - - void TracePointerRangeMESA( const void* first, - const void* last, - const ubyte* comment ) - -New Tokens - - Accepted by the parameter of EnableTrace and DisableTrace: - - TRACE_ALL_BITS_MESA 0xFFFF - TRACE_OPERATIONS_BIT_MESA 0x0001 - TRACE_PRIMITIVES_BIT_MESA 0x0002 - TRACE_ARRAYS_BIT_MESA 0x0004 - TRACE_TEXTURES_BIT_MESA 0x0008 - TRACE_PIXELS_BIT_MESA 0x0010 - TRACE_ERRORS_BIT_MESA 0x0020 - - Accepted by the parameter of GetIntegerv, GetBooleanv, - GetFloatv, and GetDoublev: - - TRACE_MASK_MESA 0x8755 - - Accepted by the parameter to GetString: - - TRACE_NAME_MESA 0x8756 - - -Additions to Chapter 2 of the OpenGL 1.2.1 Specification (OpenGL Operation) - - None. - -Additions to Chapter 3 of the OpenGL 1.2.1 Specification (OpenGL Operation) - - None. - -Additions to Chapter 4 of the OpenGL 1.2.1 Specification (OpenGL Operation) - - None. - -Additions to Chapter 5 of the OpenGL 1.2.1 Specification (Special Functions) - - Add a new section: - - 5.7 Tracing - - The tracing facility is used to record the execution of a GL program - to a human-readable log. The log appears as a sequence of GL commands - using C syntax. The primary intention of tracing is to aid in program - debugging. - - A trace is started with the command - - void NewTraceMESA( bitfield mask, const GLubyte * traceName ) - - may be any value accepted by PushAttrib and specifies a set of - attribute groups. The state values included in those attribute groups - is written to the trace as a sequence of GL commands. - - specifies a name or label for the trace. It is expected - that will be interpreted as a filename in most implementations. - - A trace is ended by calling the command - - void EndTraceMESA( void ) - - It is illegal to call NewTraceMESA or EndTraceMESA between Begin and End. - - The commands - - void EnableTraceMESA( bitfield mask ) - void DisableTraceMESA( bitfield mask ) - - enable or disable tracing of different classes of GL commands. - may be the union of any of TRACE_OPERATIONS_BIT_MESA, - TRACE_PRIMITIVES_BIT_MESA, TRACE_ARRAYS_BIT_MESA, TRACE_TEXTURES_BIT_MESA, - and TRACE_PIXELS_BIT_MESA. The special token TRACE_ALL_BITS_MESA - indicates all classes of commands are to be logged. - - TRACE_OPERATIONS_BIT_MESA controls logging of all commands outside of - Begin/End, including Begin/End. - - TRACE_PRIMITIVES_BIT_MESA controls logging of all commands inside of - Begin/End, including Begin/End. - - TRACE_ARRAYS_BIT_MESA controls logging of VertexPointer, NormalPointer, - ColorPointer, IndexPointer, TexCoordPointer and EdgeFlagPointer commands. - - TRACE_TEXTURES_BIT_MESA controls logging of texture data dereferenced by - TexImage1D, TexImage2D, TexImage3D, TexSubImage1D, TexSubImage2D, and - TexSubImage3D commands. - - TRACE_PIXELS_BIT_MESA controls logging of image data dereferenced by - Bitmap and DrawPixels commands. - - TRACE_ERRORS_BIT_MESA controls logging of all errors. If this bit is - set, GetError will be executed whereever applicable, and the result will - be added to the trace as a comment. The error returns are cached and - returned to the application on its GetError calls. If the user does not - wish the additional GetError calls to be performed, this bit should not - be set. - - The command - - void TraceCommentMESA( const ubyte* comment ) - - immediately adds the string to the trace output, surrounded - by C-style comment delimiters. - - The commands - - void TraceTextureMESA( uint name, const ubyte* comment ) - void TraceListMESA( uint name, const ubyte* comment ) - - associates with the texture object or display list specified - by . Logged commands which reference the named texture object or - display list will be annotated with . If IsTexture(name) or - IsList(name) fail (respectively) the command is quietly ignored. - - The commands - - void TracePointerMESA( void* pointer, const ubyte* comment ) - - void TracePointerRangeMESA( const void* first, - const void* last, - const ubyte* comment ) - - associate with the address specified by or with - a range of addresses specified by through . - Any logged commands which reference or an address between - and will be annotated with . - - The command - - void TraceAssertAttribMESA( bitfield attribMask ) - - will add GL state queries and assertion statements to the log to - confirm that the current state at the time TraceAssertAttrib is - executed matches the current state when the trace log is executed - in the future. - - is any value accepted by PushAttrib and specifies - the groups of state variables which are to be asserted. - - The commands NewTraceMESA, EndTraceMESA, EnableTraceMESA, DisableTraceMESA, - TraceAssertAttribMESA, TraceCommentMESA, TraceTextureMESA, TraceListMESA, - TracePointerMESA and TracePointerRangeMESA are not compiled into display lists. - - - Examples: - - The command NewTraceMESA(DEPTH_BUFFER_BIT, "log") will query the state - variables DEPTH_TEST, DEPTH_FUNC, DEPTH_WRITEMASK, and DEPTH_CLEAR_VALUE - to get the values , , , and respectively. - Statements equivalent to the following will then be logged: - - glEnable(GL_DEPTH_TEST); (if is true) - glDisable(GL_DEPTH_TEST); (if is false) - glDepthFunc(); - glDepthMask(); - glClearDepth(); - - - The command TraceAssertAttribMESA(DEPTH_BUFFER_BIT) will query the state - variables DEPTH_TEST, DEPTH_FUNC, DEPTH_WRITEMASK, and DEPTH_CLEAR_VALUE - to get the values , , , and respectively. - The resulting trace might then look will like this: - - { - GLboolean b; - GLint i; - GLfloat f; - b = glIsEnabled(GL_DEPTH_TEST); - assert(b == ); - glGetIntegerv(GL_DEPTH_FUNC, &i); - assert(i == ); - glGetIntegerv(GL_DEPTH_MASK, &i); - assert(i == ); - glGetFloatv(GL_DEPTH_CLEAR_VALUE, &f); - assert(f == ); - } - - -Additions to Chapter 6 of the OpenGL 1.2.1 Specification - (State and State Requests) - - Querying TRACE_MASK_MESA with GetIntegerv, GetFloatv, GetBooleanv or - GetDoublev returns the current command class trace mask. - - Querying TRACE_NAME_MESA with GetString returns the current trace name. - - -Additions to Appendix A of the OpenGL 1.2.1 Specification (Invariance) - - The MESA_trace extension can be used in a way that does not affect data - flow from application to OpenGL, as well as data flow from OpenGL to - application, except for timing, possible print I/O. TRACE_ERRORS_BIT_MESA - will add additional GetError queries. Setting a trace mask with NewTraceMESA - as well as use of TraceAssertAttribMESA might cause additional state queries. - With the possible exception of performance, OpenGL rendering should not be - affected at all by a properly chosen logging operation. - -Additions to the AGL/GLX/WGL Specifications - - None. - -GLX Protocol - - None. The logging operation is carried out client-side, by exporting - entry points to the wrapper functions that execute the logging operation. - -Errors - - INVALID_OPERATION is generated if any trace command except TraceCommentMESA - is called between Begin and End. - -New State - - The current trace name and current command class mask are stored - per-context. - -New Implementation Dependent State - - None. - -Revision History - - * Revision 0.1 - Initial draft from template (bk000415) - * Revision 0.2 - Draft (bk000906) - * Revision 0.3 - Draft (bk000913) - * Revision 0.4 - Reworked text, fixed typos (bp000914) - * Revision 0.5 - Assigned final GLenum values (bp001103) - * Revision 0.6 - TRACE_ERRORS_BIT_MESA (bk000916) - * Revision 0.7 - Added MESA postfix (bk010126) - diff --git a/nx-X11/extras/Mesa/docs/MESA_window_pos.spec b/nx-X11/extras/Mesa/docs/MESA_window_pos.spec deleted file mode 100644 index 5ad7fa6a6..000000000 --- a/nx-X11/extras/Mesa/docs/MESA_window_pos.spec +++ /dev/null @@ -1,127 +0,0 @@ -Name - - MESA_window_pos - -Name Strings - - GL_MESA_window_pos - -Contact - - Brian Paul, brian.paul 'at' tungstengraphics.com - -Status - - Shipping (since Mesa version 1.2.8) - -Version - - $Id: MESA_window_pos.spec,v 1.1.1.3 2004/08/12 23:43:25 anholt Exp $ - -Number - - 197 - -Dependencies - - OpenGL 1.0 is required. - The extension is written against the OpenGL 1.2 Specification - -Overview - - In order to set the current raster position to a specific window - coordinate with the RasterPos command, the modelview matrix, projection - matrix and viewport must be set very carefully. Furthermore, if the - desired window coordinate is outside of the window's bounds one must - rely on a subtle side-effect of the Bitmap command in order to circumvent - frustum clipping. - - This extension provides a set of functions to directly set the - current raster position, bypassing the modelview matrix, the - projection matrix and the viewport to window mapping. Furthermore, - clip testing is not performed. - - This greatly simplifies the process of setting the current raster - position to a specific window coordinate prior to calling DrawPixels, - CopyPixels or Bitmap. - -New Procedures and Functions - - void WindowPos2dMESA(double x, double y) - void WindowPos2fMESA(float x, float y) - void WindowPos2iMESA(int x, int y) - void WindowPos2sMESA(short x, short y) - void WindowPos2ivMESA(const int *p) - void WindowPos2svMESA(const short *p) - void WindowPos2fvMESA(const float *p) - void WindowPos2dvMESA(const double *p) - void WindowPos3iMESA(int x, int y, int z) - void WindowPos3sMESA(short x, short y, short z) - void WindowPos3fMESA(float x, float y, float z) - void WindowPos3dMESA(double x, double y, double z) - void WindowPos3ivMESA(const int *p) - void WindowPos3svMESA(const short *p) - void WindowPos3fvMESA(const float *p) - void WindowPos3dvMESA(const double *p) - void WindowPos4iMESA(int x, int y, int z, int w) - void WindowPos4sMESA(short x, short y, short z, short w) - void WindowPos4fMESA(float x, float y, float z, float w) - void WindowPos4dMESA(double x, double y, double z, double ) - void WindowPos4ivMESA(const int *p) - void WindowPos4svMESA(const short *p) - void WindowPos4fvMESA(const float *p) - void WindowPos4dvMESA(const double *p) - -New Tokens - - none - -Additions to Chapter 2 of the OpenGL 1.2 Specification (OpenGL Operation) - - - (2.12, p. 41) Insert after third paragraph: - - Alternately, the current raster position may be set by one of the - WindowPosMESA commands: - - void WindowPos{234}{sidf}MESA( T coords ); - void WindowPos{234}{sidf}vMESA( T coords ); - - WindosPos4MESA takes four values indicating x, y, z, and w. - WindowPos3MESA (or WindowPos2MESA) is analaguos, but sets only - x, y, and z with w implicitly set to 1 (or only x and y with z - implicititly set to 0 and w implicitly set to 1). - - WindowPosMESA operates like RasterPos except that the current modelview - matrix, projection matrix and viewport parameters are ignored and the - clip test operation always passes. The current raster position values - are directly set to the parameters passed to WindowPosMESA. The current - color, color index and texture coordinate update the current raster - position's associated data. - -Additions to the AGL/GLX/WGL Specifications - - None - -GLX Protocol - - Not specified at this time. However, a protocol message very similar - to that of RasterPos is expected. - -Errors - - INVALID_OPERATION is generated if WindowPosMESA is called betweeen - Begin and End. - -New State - - None. - -New Implementation Dependent State - - None. - -Revision History - - * Revision 1.0 - Initial specification - * Revision 1.1 - Minor clean-up (7 Jan 2000, Brian Paul) - diff --git a/nx-X11/extras/Mesa/docs/MESA_ycbcr_texture.spec b/nx-X11/extras/Mesa/docs/MESA_ycbcr_texture.spec deleted file mode 100644 index 0fa1f7b39..000000000 --- a/nx-X11/extras/Mesa/docs/MESA_ycbcr_texture.spec +++ /dev/null @@ -1,204 +0,0 @@ -Name - - MESA_ycbcr_texture - -Name Strings - - GL_MESA_ycbcr_texture - -Contact - - Brian Paul, Tungsten Graphics, Inc. (brian.paul 'at' tungstengraphics.com) - Keith Whitwell, Tungsten Graphics, Inc. (keith 'at' tungstengraphics.com) - -Status - - Shipping (Mesa 4.0.4 and later) - -Version - - 1.0 - -Number - - TBD - -Dependencies - - OpenGL 1.0 or later is required - This extensions is written against the OpenGL 1.4 Specification. - NV_texture_rectangle effects the definition of this extension. - -Overview - - This extension supports texture images stored in the YCbCr format. - There is no support for converting YCbCr images to RGB or vice versa - during pixel transfer. The texture's YCbCr colors are converted to - RGB during texture sampling, after-which, all the usual per-fragment - operations take place. Only 2D texture images are supported (not - glDrawPixels, glReadPixels, etc). - - A YCbCr pixel (texel) is a 16-bit unsigned short with two components. - The first component is luminance (Y). For pixels in even-numbered - image columns, the second component is Cb. For pixels in odd-numbered - image columns, the second component is Cr. If one were to convert the - data to RGB one would need to examine two pixels from columns N and N+1 - (where N is even) to deduce the RGB color. - -IP Status - - None - -Issues - - None - -New Procedures and Functions - - None - -New Tokens - - Accepted by the and parameters of - TexImage2D and TexSubImage2D: - - YCBCR_MESA 0x8757 - - Accepted by the parameter of TexImage2D and TexSubImage2D: - - UNSIGNED_SHORT_8_8_MESA 0x85BA /* same as Apple's */ - UNSIGNED_SHORT_8_8_REV_MESA 0x85BB /* same as Apple's */ - -Additions to Chapter 2 of the OpenGL 1.4 Specification (OpenGL Operation) - - None - -Additions to Chapter 3 of the OpenGL 1.4 Specification (Rasterization) - - In section 3.6.4, Rasterization of Pixel Rectangles, on page 101, - add the following to Table 3.8 (Packed pixel formats): - - type Parameter GL Data Number of Matching - Token Name Type Components Pixel Formats - -------------- ------- ---------- ------------- - UNSIGNED_SHORT_8_8_MESA ushort 2 YCBCR_MESA - UNSIGNED_SHORT_8_8_REV_MESA ushort 2 YCBCR_MESA - - - In section 3.6.4, Rasterization of Pixel Rectangles, on page 102, - add the following to Table 3.10 (UNSIGNED_SHORT formats): - - UNSIGNED_SHORT_8_8_MESA: - - 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 - +-------------------------------+-------------------------------+ - | 1st | 2nd | - +-------------------------------+-------------------------------+ - - UNSIGNED_SHORT_8_8_REV_MESA: - - 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 - +-------------------------------+-------------------------------+ - | 2nd | 1st | - +-------------------------------+-------------------------------+ - - - In section 3.6.4, Rasterization of Pixel Rectangles, on page 104, - add the following to Table 3.12 (Packed pixel fiedl assignments): - - First Second Third Fourth - Format Element Element Element Element - ------ ------- ------- ------- ------- - YCBCR_MESA luminance chroma - - - In section 3.8.1, Texture Image Specification, on page 125, add - another item to the list of TexImage2D and TexImage3D equivalence - exceptions: - - * The value of internalformat and format may be YCBCR_MESA to - indicate that the image data is in YCbCr format. type must - be either UNSIGNED_SHORT_8_8_MESA or UNSIGNED_SHORT_8_8_REV_MESA - as seen in tables 3.8 and 3.10. Table 3.12 describes the mapping - between Y and Cb/Cr to the components. - If NV_texture_rectangle is supported target may also be - TEXTURE_RECTANGLE_NV or PROXY_TEXTURE_RECTANGLE_NV. - All pixel transfer operations are bypassed. The texture is stored as - YCbCr, not RGB. Queries of the texture's red, green and blue component - sizes will return zero. The YCbCr colors are converted to RGB during - texture sampling using an implementation dependent conversion. - - - In section 3.8.1, Texture Image Specification, on page 126, add - another item to the list of TexImage1D and TexImage2D equivalence - exceptions: - - * The value of internalformat and format can not be YCBCR_MESA. - - - In section 3.8.2, Alternate Texture Image Specification Commands, on - page 129, insert this paragraph after the first full paragraph on the - page: - - "If the internal storage format of the image being updated by - TexSubImage2D is YCBCR_MESA then format must be YCBCR_MESA. - The error INVALID_OPERATION will be generated otherwise." - - -Additions to Chapter 4 of the OpenGL 1.4 Specification (Per-Fragment -Operations and the Frame Buffer) - - None - -Additions to Chapter 5 of the OpenGL 1.4 Specification (Special Functions) - - None - -Additions to Chapter 6 of the OpenGL 1.4 Specification (State and -State Requests) - - None - -Additions to Appendix A of the OpenGL 1.4 Specification (Invariance) - - None - -Additions to the AGL/GLX/WGL Specifications - - None - -GLX Protocol - - None - -Errors - - INVALID_ENUM is generated by TexImage2D if is - MESA_YCBCR but is not MESA_YCBCR. - - INVALID_ENUM is generated by TexImage2D if is MESA_YCBCR but - is not MESA_YCBCR. - - INVALID_VALUE is generated by TexImage2D if is MESA_YCBCR and - is MESA_YCBCR and is not zero. - - INVALID_OPERATION is generated by TexSubImage2D if the internal image - format is YCBCR_MESA and is not YCBCR_MESA. - - INVALID_OPERATION is generated by CopyTexSubImage2D if the internal - image is YCBCR_MESA. - -New State - - Edit table 6.16 on page 231: change the type of TEXTURE_INTERNAL_FORMAT - from n x Z42 to n x Z43 to indicate that internal format may also be - YCBCR_MESA. - -Revision History - - 20 September 2002 - Initial draft - 29 April 2003 - minor updates - 3 September 2003 - further clarify when YCbCr->RGB conversion takes place - 19 September 2003 - a few more updates prior to submitting to extension - registry. - 3 April 2004 - fix assorted inaccuracies diff --git a/nx-X11/extras/Mesa/docs/MiniGLX.html b/nx-X11/extras/Mesa/docs/MiniGLX.html deleted file mode 100644 index 342981299..000000000 --- a/nx-X11/extras/Mesa/docs/MiniGLX.html +++ /dev/null @@ -1,547 +0,0 @@ - - - - Mini GLX Specification - - -

-
Mini GLX Specification
-

-

-
Tungsten Graphics, Inc.
-
-January 20, 2003
-
-
-

-

Copyright © 2002-2003 by Tungsten Graphics, Inc., Cedar Park, -Texas. All Rights Reserved.
-
-Permission is granted to make and distribute verbatim copies of this -document provided the copyright notice and this permission notice are -preserved on all copies.
-
-

-

1. Introduction

-

The Mini GLX interface facilitates OpenGL rendering on embedded -devices. The interface is a subset of the GLX interface, plus a minimal -set of Xlib-like functions.

-

Programs written to the Mini GLX specification should run unchanged -on systems with the X Window System and the GLX extension. The intention -is to allow flexibility for prototyping and testing.

-

This document serves as both the reference guide and programming -guide for Mini GLX.
-
-

-

2. Mini GLX Concepts

-

The OpenGL specification does not describe how OpenGL rendering -contexts and drawing surfaces (i.e. the frame buffer) are created and -managed. Rather, this is handled by an OpenGL window system interface, -such as Mini GLX.

-

There are three main datatypes or resources managed by Mini GLX. The -resources and their corresponding GLX or Xlib data types are:

- - - - - - - - - - - - - - - - - - - -
ResourceData type
pixel formatsX Visual and XVisualInfo
drawing surfacesX Window or GLXDrawable
rendering contextsGLXContext
-

Pixel formats or X Visuals describe the per-pixel attributes of the -frame buffer. For example, bits per color component, Z buffer size, -stencil size, TrueColor vs PseudoColor, etc.

-

Drawing surfaces or X Windows typically describe a spatial -allocation of the frame buffer (i.e. the position and size of a -rectangular region of pixels). Since MiniGLX doesn't really support a -window system, the window is effectively the entire frame buffer.

-

A rendering context represents the current OpenGL state such as -current drawing color, line width, blending mode, texture parameters, -etc. Several rendering contexts can be created but only one can be in -use at any given time.

-

The Mini GLX interface provides all the functions needed for -choosing pixel formats, create drawing surfaces, creating rendering -contexts and binding rendering contexts to drawing surfaces.
-
-

-

3. Using Mini GLX

-

To use the Mini GLX interface in your application, include the -GL/miniglx.h header file at compile time:

-
#include <GL/miniglx.h>
-
-Applications should link with libGL.so (i.e. gcc -myprogram.o -lGL -o myprogram).  libGL.so implements the -MiniGLX API functions and, in turn, loads a hardware-specific device -driver (such as radeon_dri.so) at runtime.  The -environment variable LIBGL_DRIVERS_PATH should name the -directory where these modules are located.
-
-Prior to running a MiniGXL application, the following kernel modules -must be installed:
-
-
agpgart.o
-radeonfb.o  (assuming Radeon hardware)
-radeon.o  (assuming Radeon hardware)
-
-
-Finally, MiniGLX reads a configuration file (by default, -/etc/miniglx.conf) to determine basic configuration information. - The configuration file may also be located in the directory -specified by the MINIGLX_CONF environment variable).
-
-The remainder of this section describes the MiniGLX API functions.
-
-

3.1 Initialization

-

The XOpenDisplay function is used to initialize the graphics system:

-
-
Display *XOpenDisplay(const char *displayname)
-
-

The displayName parameter is currently ignored in Mini -GLX. It is recommended that NULL be passed as thedisplayName -parameter.

-

If XOpenDisplay is able to initialize the graphics system a pointer -to a Display will be returned. Otherwise, NULL will be returned.

-

3.2 Choosing a Visual

-

A visual (i.e. pixel format) must be chosen before a drawing surface -or rendering context can be created. This is done with the -glXChooseVisual function:

-
-
XVisualInfo *glXChooseVisual(Display *dpy, int screen, const int *attribList)
-
-

dpy is a pointer to the display returned by -XOpenDisplay.

-

screen is currently ignored by Mini GLX and should be -zero.

-

attribList is a list of GLX attributes which describe -the desired pixel format. It is terminated by the token None. -The attributes are as follows:

-
-
-
GLX_USE_GL
-
This attribute should always be present in order to maintain -compatibility with GLX.
-
GLX_RGBA
-
If present, only RGBA pixel formats will be considered. -Otherwise, only color index formats are considered.
-
GLX_DOUBLEBUFFER
-
if present, only double-buffered pixel formats will be chosen.
-
GLX_RED_SIZE n
-
Must be followed by a non-negative integer indicating the -minimum number of bits per red pixel component that is acceptable.
-
GLX_GREEN_SIZE n
-
Must be followed by a non-negative integer indicating the -minimum number of bits per green pixel component that is acceptable.
-
GLX_BLUE_SIZE n
-
Must be followed by a non-negative integer indicating the -minimum number of bits per blue pixel component that is acceptable.
-
GLX_ALPHA_SIZE n
-
Must be followed by a non-negative integer indicating the -minimum number of bits per alpha pixel component that is acceptable.
-
GLX_STENCIL_SIZE n
-
Must be followed by a non-negative integer indicating the -minimum number of bits per stencil value that is acceptable.
-
None
-
This token is used to terminate the attribute list.
-
-
-

glXChooseVisual will return a pointer to an XVisualInfo object which -most closely matches the requirements of the attribute list. If there -is no visual which matches the request, NULL will be returned.

-

Note that visuals with accumulation buffers and depth buffers are -not available.
-
-

-

3.3 Creating a Drawing Surface

-

Drawing surfaces are created as X windows.  For Mini GLX, -windows are full-screen; they cover the entire frame buffer. - Also, Mini GLX imposes a limit of one window. A second window -cannot be created until the first one is destroyed.

-

3.3.1 Window Creation

-

The XCreateWindow function is used to create a drawing surface:

-
-
Window XCreateWindow( Display *display,
Window parent,
int x, int y,
unsigned int width, unsigned int height,
unsigned int borderWidth,
int depth,
unsigned int class,
Visual *visual,
unsigned long valuemask,
XSetWindowAttributes *attributes )
-
-

The parameters are as follows:

-
-
-
display
-
A Display pointer, as returned by XOpenDisplay.
-
parent
-
The parent window for the new window. For Mini GLX, this -should beRootWindow(dpy, 0).
-
x, y
-
The position of the window. For Mini GLX, both values should -be zero.
-
width, height
-
The size of the window. For Mini GLX, this specifies the -desired screen size such as 1024, 768 or 1280, 1024.
-
borderWidth
-
This parameter should be zero.
-
depth
-
The pixel depth for the window. For Mini GLX this should be -the depth found in the XVisualInfo object returned by glxChooseVisual.
-
class
-
The window class. For Mini GLX this value should be InputOutput.
-
visual
-
This parameter should be the visual field of the XVisualInfo -object returned by glxChooseVisual.
-
valuemask
-
This parameter indicates which fields of the XSetWindowAttributes -are to be used. For Mini GLX this is typically the bitmaskCWBackPixel -| CWBorderPixel | CWColormap.
-
attributes
-
Initial window attributes. Of the fields in the XSetWindowAttributes -structure, thebackground_pixel, border_pixel -and colormap fields should be set.  See the discussion -below regarding colormaps.
-
-
-

XCreateWindow will return a window handle if it succeeds -or zero if it fails.

-

3.3.2 Window Mapping

-

To display the window the XMapWindow function must be called:

-
-
void XMapWindow(Display *dpy, Window w)
-
-

This function does nothing in Mini GLX but is required for Xlib/GLX -compatibility

-

3.3.3 Colormaps
-

-

Xlib requires specification of a colormap when creating a window. - For purposes of interoperability, Mini GLX requires this as well, -though the colormap is not actually used.  The XCreateColormap -function is used to create a colormap:

-
Colormap XCreateColormap(Display *dpy, Window window, -Visual *visual, int alloc)
-
-

The parameters are as follows:
-

-
-
-
dpy
-
The display handle as returned by XOpenDisplay.
-
window
-
This parameter is ignored by Mini GLX but should be the value -returned by the RootWindow(dpy, 0) macro.
-
-
visual
-
This parameter is ignored by Mini GLX but should be the visual -field of the XVisualInfo object returned by glXChooseVisual.
-
alloc
-
This parameter is ignored by Mini GLX but should be set to AllocNone.
-
-
-
-

3.4 Creating a Rendering Context

-

An OpenGL rendering context is created with the glXCreateContext -function:

-
-
GLXContext glXCreateContext(Display *dpy, XVisualInfo *visInfo, GLXContext shareList, Bool direct)
-
-

The parameters are as follows:

-
-
-
dpy
-
The display handle as returned by XOpenDisplay.
-
visInfo
-
The visual as returned by glXChooseVisual.
-
shareList
-
If non-zero, texture objects and display lists are shared with -the named rendering context. If zero, texture objects and display lists -will (initially) be private to this context. They may be shared when a -subsequent context is created.
-
direct
-
Specifies whether direct or indirect rendering is desired. For -Mini GLX this value is ignored but it should be set to True.
-
-
-

glXCreateContext will return a GLXContext handle if it -succeeds or zero if it fails due to invalid parameter or insufficient -resources.
-
-

-

3.5 Binding a Rendering Context

-

The final step before beginning OpenGL rendering is to bind (i.e. -activate) a rendering context and drawing surface with the -glXMakeCurrent function:

-
-
Bool glXMakeCurrent(Display *dpy, GLXDrawable drawable, GLXContext ctx)
-
-

The parameters are as follows:

-
-
-
dpy
-
The display handle, as returned by XOpenDisplay.
-
drawable
-
The window or drawable to bind to the rendering context. This -should be the value returned by XCreateWindow.
-
ctx
-
The rendering context to bind, as returned by glXCreateContext.
-
-
-

If glXMakeCurrent succeeds True is returned. Otherwise False is -returned to indicate an invalid display, window or context parameter.

-

After the rendering context has been bound to the drawing surface -OpenGL rendering can begin.

-

The current rendering context may be unbound by calling -glXMakeCurrent with the window and context parameters set to zero.

-

An application may create any number of rendering contexts and bind -them as needed. Note that binding a rendering context is generally not a -light-weight operation.  Most simple OpenGL applications create -only one rendering context.
-
-

-

3.6 Color Buffer Swapping

-

A double buffered window has two color buffers: a front buffer and a -back buffer. Normally, rendering is directed to the back buffer while -the front buffer is displayed. When rendering of a frame is finished -the front and back buffers are swapped to provide the illusion of -instanteous screen updates.

-

The color buffers for a particular window (i.e. drawable) may be -swapped with the glXSwapBuffers command:

-
-
void glXSwapBuffers(Display *dpy, GLXDrawable drawable)
-
-Any pending rendering commands will be completed before the buffer swap -takes place.
-
-Calling glXSwapBuffers on a window which is single-buffered has no -effect.
-
-

3.7 Releasing Resources

-

3.7.1 Releasing Rendering Contexts

-

A rendering context may be destroyed by calling glXDestroyContext:

-
-
void glXDestroyContext(Display *dpy, GLXContext ctx)
-
-

3.7.2 Releasing Windows

-

A window may be destroyed by calling XDestroyWindow:

-
-
void XDestroyWindow(Display *dpy, Window window)
-
-

3.7.3 Releasing Visuals

-

An XVisualInfo object may be freed by calling XFree:

-
-
void XFree(void *data)
-
-

3.7.4 Releasing Colormaps

-

A colormap may be freed by calling XFreeColormap:

-
-
void XFreeColormap(Display *dpy, Colormap colormap)
-
-

3.7.4 Releasing Display Resources

-

When the application is about to exit, the resources associated with -the graphics system can be released by calling XCloseDisplay:

-
-
void XCloseDisplay(Display *dpy)
-
-

The display handle becomes invalid at this point.
-
-

-

3.8 Query Functions

-

3.8.1 Querying Available Visuals

-A list of all available visuals can be obtained with the XGetVisualInfo -function:
-
-
XVisualInfo -*XGetVisualInfo(Display *dpy, long vinfo_mask, XVisualInfo -*vinfo_template, int *nitems_return)
-
-
-The parameters are as follows:
-
-
-
dpy
-
The display handle, as returned by XOpenDisplay.
-
vinfo_mask
-
A bitmask indicating which fields of the vinfo_template are to -be matched.  The value must be VisualScreenMask.
-
vinfo_template
-
A template whose fields indicate which visual attributes must -be matched by the results.  The screen field of this structure must -be zero.
-
nitems_return
-
Returns the number of visuals returned.
-
-
-The return value is the address of an array of all available visuals.
-
-An example of using XGetVisualInfo to get all available visuals follows:
-
-
XVisualInfo visTemplate, *results;
-int numVisuals;
-Display *dpy = XOpenDisplay(NULL);
-visTemplate.screen = 0;
-results = XGetVisualInfo(dpy, VisualScreenMask, &visTemplate, -&numVisuals);
-
-
-

3.8.2 Querying Visual Attributes

-

The GLX attributes of an X visual may be queried with the -glXGetConfig function:

-
-
int glXGetConfig(Display *dpy, XVisualInfo *vis, int attribute, int *value)
-
-

The parameters are as follows:

-
-
-
dpy
-
The display handle, as returned by XOpenDisplay.
-
vis
-
The visual, as returned by glXChooseVisual.
-
attribute
-
The attribute to query. The attributes are listed below.
-
value
-
Pointer to an integer in which the result of the query will be -stored.
-
-
-

The return value will be zero if no error occurs. - GLX_INVALID_ATTRIBUTE will be returned if the attribute -parameter is invalid.  GLX_BAD_VISUAL will be returned -if the XVisualInfo parameter is invalid.

-

The following attributes may be queried:

-
-
-
GLX_USE_GL
-
The result will be True or False to -indicate if OpenGL rendering is supported with the visual. Mini GLX -always return True.
-
GLX_RGBA
-
The result will be True for RGBA visuals or False -for color index visuals.
-
GLX_DOUBLEBUFFER
-
The result will be True if the visual has two -color buffers or False if the visual has one color buffer.
-
GLX_RED_SIZE
-
The result will be the number of red bits per pixel.
-
GLX_GREEN_SIZE
-
The result will be the number of green bits per pixel.
-
GLX_BLUE_SIZE
-
The result will be the number of blue bits per pixel.
-
GLX_ALPHA_SIZE
-
The result will be the number of alpha bits per pixel.
-
GLX_DEPTH_SIZE
-
The result will be the number of bits per Z value.
-
GLX_STENCIL_SIZE
-
The result will be the number of bits per stencil value.
-
-
-
-
-

3.8.3 Querying the Current Rendering Context

-

The current rendering context can be queried with -glXGetCurrentContext:

-
-
GLXContext glXGetCurrentContext(void)
-
-

Zero will be returned if no context is currently bound.
-
-

-

3.8.4 Querying the Current Drawable

-

The current drawable (i.e. window or drawing surface) can be queried -with glXGetCurrentDrawable:

-
-
GLXDrawable glXGetCurrentDrawable(void)
-
-

Zero will be returned if no drawable is currently bound.
-
-

-

3.8.5 Function Address Queries

-

The glXGetProcAddress function will return the address of any -available OpenGL or Mini GLX function:

-
-
void *glXGetProcAddress(const GLubyte *procName)
-
-

If procName is a valid function name, a pointer to that -function will be returned.  Otherwise, NULL will be returned.

-

The purpose of glXGetProcAddress is to facilitate using future -extensions to OpenGL or Mini GLX. If a future version of the library -adds new extension functions they'll be accessible via -glXGetProcAddress. The alternative is to hard-code calls to the new -functions in the application but doing so will prevent linking the -application with older versions of the library.
-
-

-

3.9 Versioning

-The Mini GLX version can be queried at run time with glXQueryVersion: -
-
Bool glXQueryVersion(Display *dpy, int *major, int *minor)
-
-

major will be set to the major version number andminor -will be set to the minor version number.True will be -returned if the function succeeds. False will be returned -if the function fails due to invalid parameters. The dpy -argument is currently ignored, but should be the value returned by -XOpenDisplay.

-

At compile time, the Mini GLX interface version can be tested with -the MINI_GLX_VERSION_1_x preprocessor tokens. For example, if -version 1.0 of Mini GLX is supported, then MINI_GLX_VERSION_1_0 -will be defined. If version 1.1 of Mini GLX is supported, then -MINI_GLX_VERSION_1_1 will be defined.

-

At the time of writing the current Mini GLX version is 1.0.
-
-

-

4.0 Interoperability with GLX and Xlib

-While Mini GLX strives to be compatible with GLX and Xlib there are -some unavoidable differences which must be taken into consideration.
-

4.1 Public vs Private Structures

-The structure of many X data types is public.  For example, the Display -data type is defined as a structure in /usr/include/X11/Xlib.h and -programmers may access any fields of that structure at will.  Mini -GLX also defines a Display data type but its fields are hidden and not -visiblein miniglx.h.  Duplicating the Xlib -declaration for the Display data type in minigl.h would -require defining a large number of other superfluous Xlib datatypes.
-
-Mini GLX users are discouraged from directly accessing the fields of -Xlib data types to maximize portability - though this is unavoidable to -some extent.  For example, the XVisualInfo and XSetWindowAtttributes -data types must be completely public. -

4.2 Macros

-In some cases, Xlib defines macros which are meant to be used instead -of direct structure accesses.  For example, the RootWindow(dpy, -screen) macro returns the root window for a given screen on a -given display.  Unfortunately, macros do nothing to aid in ABI -compatibility since they are resolved at compile time instead of at -link/run time.
-
-Mini GLX also defines a RootWindow macro since it's -essential for creating windows.  But the implementation of this -macro by Xlib and Mini GLX is completely different.
-

4.3 Summary

-Because Xlib and Mini GLX define data types and macros differently, -Mini GLX applications must be recompiled when retargeting Mini GLX or -native Xlib/GLX.  That is, applications can't simply be re-linked -because of ABI incompatibilities.
-
-Nevertheless, the fact that Mini GLX programs can be recompiled for -Xlib and GLX increases portability and flexibility for testing and -prototyping.
-
-

5.0 Example Program

-

This section shows an example program which uses the Mini GLX -interface. The program simply draws several frames of a rotating square.
-

-

The program may be compiled for use with Xlib/GLX or Mini GLX by -setting the USE_MINIGLX token to 0 or 1, respectively. - Note that the only difference is the header files which are -included.
-

-

-

#define USE_MINIGLX 1 /* 1 = use Mini GLX, 0 = use Xlib/GLX */

#include <stdio.h>
#include <stdlib.h>
#include <GL/gl.h>

#if USE_MINIGLX
#include <GL/miniglx.h>
#else
#include <GL/glx.h>
#include <X11/Xlib.h>
#endif

/*
* Create a simple double-buffered RGBA window.
*/
static Window
MakeWindow(Display * dpy, unsigned int width, unsigned int height)
{
int visAttributes[] = {
GLX_RGBA,
GLX_RED_SIZE, 1,
GLX_GREEN_SIZE, 1,
GLX_BLUE_SIZE, 1,
GLX_DOUBLEBUFFER,
None
};
XSetWindowAttributes attr;
unsigned long attrMask;
Window root;
Window win;
GLXContext ctx;
XVisualInfo *visinfo;

root = RootWindow(dpy, 0);

/* Choose GLX visual / pixel format */
visinfo = glXChooseVisual(dpy, 0, visAttributes);
if (!visinfo) {
printf("Error: couldn't get an RGB, Double-buffered visual\n");
exit(1);
}

/* Create the window */
attr.background_pixel = 0;
attr.border_pixel = 0;
attr.colormap = XCreateColormap(dpy, root, visinfo->visual, AllocNone);
attrMask = CWBackPixel | CWBorderPixel | CWColormap;
win = XCreateWindow(dpy, root, 0, 0, width, height,
0, visinfo->depth, InputOutput,
visinfo->visual, attrMask, &attr);
if (!win) {
printf("Error: XCreateWindow failed\n");
exit(1);
}

/* Display the window */
XMapWindow(dpy, win);

/* Create GLX rendering context */
ctx = glXCreateContext(dpy, visinfo, NULL, True);
if (!ctx) {
printf("Error: glXCreateContext failed\n");
exit(1);
}

/* Bind the rendering context and window */
glXMakeCurrent(dpy, win, ctx);

return win;
}


/*
* Draw a few frames of a rotating square.
*/
static void
DrawFrames(Display * dpy, Window win)
{
int angle;
glShadeModel(GL_FLAT);
glClearColor(0.5, 0.5, 0.5, 1.0);
for (angle = 0; angle < 360; angle += 10) {
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0, 1.0, 0.0);
glPushMatrix();
glRotatef(angle, 0, 0, 1);
glRectf(-0.8, -0.8, 0.8, 0.8);
glPopMatrix();
glXSwapBuffers(dpy, win);
}
}


int
main(int argc, char *argv[])
{
Display *dpy;
Window win;

dpy = XOpenDisplay(NULL);
if (!dpy) {
printf("Error: XOpenDisplay failed\n");
return 1;
}

win = MakeWindow(dpy, 300, 300);

DrawFrames(dpy, win);

return 0;
}
-
- - diff --git a/nx-X11/extras/Mesa/docs/README.3DFX b/nx-X11/extras/Mesa/docs/README.3DFX deleted file mode 100644 index 037e8fa7c..000000000 --- a/nx-X11/extras/Mesa/docs/README.3DFX +++ /dev/null @@ -1,830 +0,0 @@ - - 3Dfx Glide device driver - - - -Requirements: -------------- - -A Voodoo-based videocard/accelerator -DOS (with DJGPP), Windows9x/2k (with MinGW), Linux -Glide3x library for your OS - -http://sourceforge.net/projects/glide/ - - - -How to compile: ---------------- - -DJGPP: - Place the Glide3 SDK in the top Mesa directory: - $(MESA)/glide3/include/ - 3dfx.h, g3ext.h, glide.h, glidesys.h, glideutl.h, sst1vid.h - $(MESA)/glide3/lib/ - libgld3x.a, libgld3i.a, glide3x.dxe - Type: - make -f Makefile.DJ X86=1 FX=1 - Look into the makefile for further information. - -MinGW: - Place the Glide3 SDK in the top Mesa directory: - $(MESA)/glide3/include/ - 3dfx.h, g3ext.h, glide.h, glidesys.h, glideutl.h, sst1vid.h - $(MESA)/glide3/lib/ - libglide3x.a, glide3x.dll - Type: - make -f Makefile.mgw X86=1 FX=1 - Look into the makefile for further information. - -Linux: - Place the Glide3 SDK in /usr/local/glide - /usr/local/glide/include/ - 3dfx.h, g3ext.h, glide.h, glidesys.h, glideutl.h, sst1vid.h - /usr/local/glide/lib/ - libglide3x.a, libglide3x.so - Type: - make linux-glide - or - make linux-x86-glide - - - -Compilation defines: --------------------- - -FX_DEBUG - enable driver debug code -FX_TRAP_GLIDE - enable Glide trace code -FX_PACKEDCOLOR - use packed color in vertex structure -FX_TC_NAPALM - map GL_COMPRESSED_RGB[A] to FXT1. Works with VSA100-based cards only. -FX_COMPRESS_S3TC_AS_FXT1_HACK - map S3TC to FXT1 -FX_RESCALE_BIG_TEXURES_HACK - fake textures larger than HW can support - (see MESA_FX_MAXLOD environment variable) - - - -Environment variables: ----------------------- - -The following environment variables affect MesaFX. Those that affect Glide -only, are beyond the scope of this section. Entries that don't have a "Value" -field, can have any value whatsoever - ex: set MESA_FX_IGNORE_CMBEXT=y - -"Note" (*) means that the environment variable affects Glide, too; also, if -the var is not found in the environment, it is searched in windoze registry. -"Note" (!) means that the environment variable is not working as expected; -may have undefined effects, might have effects only at Glide level or might -not have any effect whatsoever. Caveat emptor! Those are to be revised soon. - -It is recommended to leave the envvars alone, so that Mesa/Glide will run with -default values. Use them only when you experience crashes or strange behavior. - -FX_GLIDE_NUM_TMU - OS: all - HW: dual-TMU cards (Voodoo2, Avenger, Napalm) - Desc: force single-TMU - Note: (*) - Value: "1" -FX_GLIDE_SWAPPENDINGCOUNT - OS: all - HW: all - Desc: max # of buffers allowed to build up - Note: (*) (!) - Value: "0", "1", "2", "3", "4", "5" or "6" -FX_GLIDE_SWAPINTERVAL - OS: all - HW: all - Desc: number of vertical retraces to wait before swapping - Note: (*) (!) works only at Glide-level? -SSTH3_SLI_AA_CONFIGURATION - OS: all - HW: VSA100-based cards - Desc: SLI/AA setup - Note: (*) (!) works only at Glide-level? - Value: - 1, 2, 4 chip cards - "0" - SLI & AA disable - "1" - SLI disabled, 2 sample AA enabled - 2, 4 chip cards - "2" - 2-way SLI enabled, AA disabled - "3" - 2-way SLI enabled, 2 sample AA enabled - "4" - SLI disabled, 4 sample AA enabled - 4 chip cards - "5" - 4-way SLI enabled, AA disabled - "6" - 4-way SLI enabled, 2 sample AA enabled - "7" - 2-way SLI enabled, 4 sample AA enabled - "8" - SLI disabled, 8 sample AA enabled -SST_DUALHEAD - OS: win32 - HW: ? - Desc: ? - Note: (!) disabled? -MESA_FX_NO_SIGNALS - OS: linux - HW: all - Desc: avoid installing signals - Note: (!) untested! -MESA_FX_INFO - OS: all - HW: all - Desc: verbose to stderr - Value: any; special value "r" to redirect stderr to MESA.LOG -MESA_FX_NOSNAP - OS: all - HW: Voodoo1, Rush, Banshee - Desc: do not snap vertices inside Mesa - Note: to be used with Glide3x that snaps vertices internally -MESA_FX_POINTCAST - OS: all - HW: dual-TMU cards (some Voodoo1, Voodoo2, Avenger, Napalm) - Desc: try to use pointcast palette - Note: may give adverse effects on UMA cards (Avenger, Napalm) -MESA_FX_IGNORE_PALEXT - OS: all - HW: all - Desc: disable 6666 palette -MESA_FX_IGNORE_PIXEXT - OS: all - HW: Napalm - Desc: force 565 16bpp mode (traditional Voodoo, no 32/15bpp) -MESA_FX_IGNORE_TEXFMT - OS: all - HW: Napalm - Desc: disable 32bit textures -MESA_FX_IGNORE_CMBEXT - OS: all - HW: Napalm - Desc: disable Napalm combiners (color/alpha/texture) - Note: this option allows dual-TMU cards perform single-pass - trilinear, but some advanced (multi)texturing modes - won't work (GL_EXT_texture_env_combine) -MESA_FX_IGNORE_MIREXT - OS: all - HW: all - Desc: disable mirror extension -MESA_FX_IGNORE_TEXUMA - OS: all - HW: all - Desc: disable UMA -MESA_FX_IGNORE_TEXUS2 - OS: all - HW: all - Desc: disable Texus2 -MESA_FX_MAXLOD - OS: all - HW: non VSA-100 cards - Desc: enable large texture support using SW rescaling - Value: - "9" - 512x512 textures - "10" - 1024x1024 textures - "11" - 2048x2048 textures -MESA_FX_ALLOW_VP - OS: all - HW: all - Desc: allow vertex program extensions -MESA_GLX_FX - OS: linux - HW: Voodoo1, Rush, Voodoo2 - Desc: display mode - Note: (!) experimental - Value: - "w" - windowed mode - "f" - fullscreen mode - "d" - disable glide driver - OS: win32 - HW: Rush, Banshee, Avenger, Napalm - Desc: display mode - Note: (!) experimental - Value: - "w" - windowed mode - - - -Contact: --------- - -Daniel Borca -Hiroshi Morii - - - -WARNING! The info below this line is outdated (yet some of it useful). WARNING! -******************************************************************************* - - - -Info for Mesa 4.1 ------------------ - -The 3dfx Glide driver in Mesa is disabled by default. Not too many people -use this driver anymore and at some point down the road it will be dropped. - -To use/enable the Glide driver either do this: - -'./configure --with-glide=DIR' Where DIR is the location of Glide, like - /usr/ or /usr/local - -OR - -'make linux-x86-glide' If using the old-style Makefile system. - -The rest of this file hasn't changed since Mesa 3.3. Some of it's out of -date, but some is still valid. - - - -What do you need ? ------------------- - - - A PC with a 3Dfx Voodoo1/2 Graphics or Voodoo Rush based board - (Pure3D, Monster 3D, R3D, Obsidian, Stingray 128/3D, etc.). - The Quantum3D Obsidian3D-2 X-24 requires some special env. setting - under Linux (more information in the "Useful Glide Environment - Variables"); - - - The 3Dfx Glide library 2.3 or later for your OS (the 2.4 works fine). - The Voodoo2 requires the Glide library 2.51. The Glide 3.1 is not - compatible with the Glide 2.x so it doesn't work with the current - version of the driver; - - - A compiler supported by the Glide library (Micro$oft VC++ (tested), - Watcom (tested), GCC for Linux (tested), etc.); - - - It's nice to have two monitors - one for your normal graphics - card and one for your 3Dfx card. If something goes wrong with - an application using the 3Dfx hardware you can still see your - normal screen in order to recover. - - - -Tested on: ----------- - Windows 95 - David Bucciarelli - Windows NT - Henri Fousse - MS-DOS - Linux - Daryll Strauss, Brian Paul, David Bucciarelli - FreeBSD - BeOS - Duncan Wilcox - MacOS - Fazekas Miklos - - -What is able to do ? --------------------- - - - It is able accelerate points, lines and polygon with flat - shading, gouraud shading, Z-buffer, texture mapping, blending, fog and - antialiasing (when possible). There is also the support for rendering - in a window with a slow trick for the Voodoo Graphics (available only - for Linux) and at full speed with the Voodoo Rush chipset. - Under Linux is also possible to switch on-the-fly between the fullscreen - and in-window rendering hack. - There is also the support for using more than one Voodoo Graphics in the - some application/PC (you can create one context for each board and use - multiple video outputs for driving monitors, videoprojectors or HMDs). - The driver is able to fallback to pure software rendering when afeature - isn't supported by the Voodoo hardware (however software rendering is - very slow compared to hardware supported rendering) - - - -How to compile: ---------------- - -Linux: ------- - Here are the basic steps for using the 3Dfx hardware with Mesa - on Linux: - - - You'll need the Glide library and headers. Mesa expects: - /usr/local/glide/include/*.h // all the Glide headers - /usr/local/glide/lib/libglide2x.so - - If your Glide libraries and headers are in a different directory - you'll have to modify the Mesa-config and mklib.glide files. - - - Unpack the MesaLib-3.1.tar.gz and MesaDemos-3.1.tar.gz archives; - - - If you're going to use a newer Mesa/Glide driver than v0.27 then - unpack the new driver archive over the Mesa directory. - - - In the Mesa-3.1 directory type "make linux-glide" - - - Compilation _should_ finish without errors; - - - Set your LD_LIBRARY_PATH environment variable so that the - libglide2x.so and Mesa library files can be found. For example: - setenv LD_LIBRARY_PATH "/usr/local/glide/lib:/SOMEDIR/Mesa-3.1/lib" - - - You'll have to run Glide-based programs as root or set the suid - bit on executables; - - - Try a demo: - cd gdemos - su - setenv MESA_GLX_FX f - ./gears (hit ESC to exit) - - - You can find the demos especially designed for the Voodoo driver in - in the Mesa-3.1/3Dfx/demos directory (type "make" in order to compile - everything). - -MacOS: ------- - Check the WEB page at http://valerie.inf.elte.hu/~boga/Mesa.html - -MS Windows: ------------ - - For the MSVC++: - - The glide2x.lib have to be in the default MSVC++ lib directory; - - - The Glide headers have to be in the default MSVC++ include directory; - - - You must have the vcvars32.bat script in your PATH; - - - Go to the directory Mesa-3.1 and run the mesafx.bat; - - - The script will compile everything (Mesa-3.1/lib/OpenGL32.{lib,dll}, - Mesa-3.1/lib/GLU32.{lib,dll}, Mesa-3.1/lib/GLUT32.{lib,dll} and - Voodoo demos); - - - At the end, you will be in the Mesa-3.1/3Dfx/demos directory; - - - Try some demo (fire.exe, teapot.exe, etc.) in order to check if - everything is OK (you can use Alt-Tab or Ctrl-F9 to switch between - the Voodoo screen and the windows desktop); - - - Remember to copy the Mesa OpenGL32.dll, GLU32.dll and GLUT32.dll in the - some directory were you run your Mesa based applications. - - - I think that you can easy change the Makefile.fx files in order - to work with other kind of compilers; - - - To discover how open the 3Dfx screen, read the sources under - the Mesa-3.1/3Dfx/demos directory. You can use the GLUT library or - the Diego Picciani's wgl emulator. - - NOTE: the MSVC++ 5.0 optimizer is really buggy. Also if you install the - SP3, you could have some problem (you can disable optimization in order - solve these kind of problems). - - -Doing more with Mesa & Linux Glide: ------------------------------------ - - The MESA_GLX_FX environment variable can be used to coax most - GLX-based programs into using Glide (and the __GLUT library - is GLX-based__). - - Full-screen 3Dfx rendering: - --------------------------- - - 1. Set the MESA_GLX_FX variable to "fullscreen": - - ksh: - export MESA_GLX_FX = "fullscreen" - csh: - setenv MESA_GLX_FX fullscreen - - 2. As root, run a GLX-based program (any GLUT demo on Linux). - - 3. Be careful: once the 3Dfx screen appears you won't be able - to see the GLUT windows on your X display. This can make using - the mouse tricky! One solution is to hook up your 3Dfx card to - a second monitor. If you can do this then set these env vars - first: - - setenv SST_VGA_PASS 1 - setenv SST_NOSHUTDOWN - - or for the Voodoo2: - - setenv SSTV2_VGA_PASS 1 - setenv SSTV2_NOSHUTDOWN - - Rendering into an X window with the help of the Voodoo hardware: - ---------------------------------------------------------------- - - 1. Start your X server in 16 bpp mode (XFree86: startx -- -bpp 16) - in order to have the best performance and the best visual - quality. However you can use any visual depth supported by X. - - 2. Set the following environment variables: - export MESA_GLX_FX="window" # to enable window rendering - export SST_VGA_PASS=1 # to stop video signal switching - export SST_NOSHUTDOWN=1 # to stop video signal switching - OR - setenv MESA_GLX_FX window - setenv SST_VGA_PASS 1 - setenv SST_NOSHUTDOWN 1 - - (the Voodoo2 requires to use "SSTV2_" instead "SST_"). - - 3. As root, try running a GLX-based program - - How does it work? We use the 3Dfx hardware to do rendering then - copy the image from the 3Dfx frame buffer into an X window when - the SwapBuffers() function is called. The problem with this - idea is it's slow. The image must be copied from the 3Dfx frame - buffer to main memory then copied into the X window (and when the X - visual depth doesn't match the Voodoo framebufffer bit per pixel, it - is required also a pixel format translation). - - NOTE: the in-window rendering feature only works with double-buffering. - - - On the fly switching between in window rendering and full screen rendering - -------------------------------------------------------------------------- - - The Mesa 2.6 has introduced the capability of switching - on-the-fly between the fullscreen/fullspeed rendering and the in-window - hack and vice versa. The on-the-fly switching requires a direct support - by the application but it is really easy to add. You have to start - your X server in 16 bpp mode and to add the following lines to your - application: - - #if defined(FX) && define(XMESA) - #include - - static int fullscreen=1; - #endif - - ... - - /* In the GLUT keyboard event callback */ - - #if defined(FX) && !define(WIN32) - case ' ': - fullscreen=(!fullscreen); - XMesaSetFXmode(fullscreen ? XMESA_FX_FULLSCREEN : XMESA_FX_WINDOW); - break; - #endif - ... - - See the 3Dfx/demos/tunnel.c program - for an example. You have to set the -DXMESA flag in the Makefile's COPTS - to enable it. - - Rendering into an X window with the X11 software driver: - -------------------------------------------------------- - - Set the MESA_GLX_FX variable to "disable" your GLX-based program will use - the X11 software driver (the 3Dfx hardware isn't used at all). - - - -Useful Glide Environment Variables: ------------------------------------ - - - To disable the 3Dfx logo, set the FX_GLIDE_NO_SPLASH variable. - - - To disable video signal switching: - setenv SST_VGA_PASS 1 - setenv SST_NOSHUTDOWN - or for the Voodoo2: - setenv SSTV2_VGA_PASS 1 - setenv SSTV2_NOSHUTDOWN - - - To set the default screen refresh rate: - setenv SST_SCREENREFRESH=75 - - the supported values are 60, 70, 72, 75, 80, 85, 90, 100, 120. - - - To force the Mesa library to swap buffers as fast as possible, - without any vertical blanking synchronization (useful for benchmarks): - setenv FX_GLIDE_SWAPINTERVAL 0 - setenv SST_SWAP_EN_WAIT_ON_VIDSYNC 0 - - - You can slight improve the performances of your Voodoo1 board with - the following env. var.: - setenv SST_FASTMEM 1 - setenv SST_PCIRD 1 - setenv SST_GRXCLK 57 - - (don't use this setting with the Quantum3D 100SB or with any other - SLI configuration: it will hang everything !). - The following setting can be used with the Voodoo2: - setenv SSTV2_FASTMEM_RAS_READS=1 - setenv SSTV2_FASTPCIRD=1 - setenv SSTV2_GRXCLK=95 - - - The Quantum3D Obsidian3D-2 X-24 requires some special env. setting - in order to work under Linux: - - export SSTV2_FT_CLKDEL=5 - export SSTV2_TF0_CLKDEL=7 - export SSTV2_TF1_CLKDEL=7 - export SSTV2_TF2_CLKDEL=7 - export SSTV2_SLIM_VIN_CLKDEL=3 - export SSTV2_SLIM_VOUT_CLKDEL=2 - export SSTV2_SLIS_VIN_CLKDEL=3 - export SSTV2_SLIS_VOUT_CLKDEL=2 - - (Thanks to Phil Ross for this trick). - - - - -The Mesa/Voodoo Environment Variables: --------------------------------------- - - - Only for Windows/Voodoo Rush users, if you define the - env. var. MESA_WGL_FX: - export MESA_WGL_FX=fullscreen - you will get fullscreen rendering; - - - Only for Windows/Voodoo Rush users, if you define the - env. var. MESA_WGL_FX: - export MESA_WGL_FX=window - you will get window rendering (default value); - - - Only for Linux users, you can find more informations about - the env. var. MESA_GLX_FX in the "Doing more with Mesa & Linux Glide" - section; - - - If you define the env. var. MESA_FX_SWAP_PENDING: - export MESA_FX_SWAP_PENDING=4 - you will able to set the maximum number of swapbuffers - commands in the Voodoo FIFO after a swapbuffer (default value: 2); - - - If you define the env. var. MESA_FX_INFO: - export MESA_FX_INFO=1 - you will get some useful statistic. - - - If you define the env. var. MESA_FX_NO_SIGNALS: - export MESA_FX_NO_SIGNALS=1 - Mesa/FX will not install atexit() or signal() handlers. - - - -Know BUGS and Problems: ------------------------ - - - fog doesn't work in the right way when using the glDepthRange() function; - - - Maximum texture size: 256x256 (this is an hardware limit); - - - Texture border aren't yet supported; - - - A GL_BLEND in a glTexEnv() is not supported (it is an hardware limit); - - - Use the glBindTexture extension (standard in OpenGL 1.1) for texture - mapping (the old way: glTexImage inside a display list, download - the texture map each time that you call the display list !!!); - - - Stencil buffer and Accumulation buffer are emulated in software (they are not - directly supported by the Hardware); - - - Color index mode not implemented (this is an hardware limit); - - - Thre is an know bug in the Linux Glide library so the in-window-rendering hack - and any other operations that requires to read the Voodoo frame buffer - (like the accumulation buffer support) doesn't work on Voodoo SLI cards. - - - The driver switch to pure software (_slow_) rendering when: - - - Stencil enabled; - - Using the Accumulation buffer; - - Blend enabled and blend equation != GL_FUNC_ADD_EXT; - - Color logic operation enabled and color logic operation != GL_COPY; - - Using GL_SEPARATE_SPECULAR_COLOR; - - The four values of glColorMask() aren't the some; - - Texture 1D or 3D enabled; - - Texture function is GL_BLEND; - - Using the Multitexture extension with Voodoo cards with only one TMU; - - Using the Multitexture extension with Voodoo cards with more than - one TMU, and texture function isn't GL_MODULATE; - - Point size is != 1.0 or point params vector != (1.0,0.0,0.0); - - Line width != 1.0 or using stipple lines. - - Using polygon offset or stipple polygons; - - NOTE: this is list is not yet complete. - - -Hints and Special Features: ---------------------------- - - - Under Linux and with a Voodoo Graphics board, you can use - XMesaSetFXmode(XMESA_FX_FULLSCREEN or XMESA_FX_WINDOW) in order to - switch on the fly between fullscreen rendering and the in-window-rendering - hack. - - - The driver is able to use all the texture memory available: 2/4MB on - Voodoo1 boards and 8MB (!) on high-end Voodoo1 and Voodoo2 boards. - - - Trilinear filtering is fully supported on Voodoo boards with two TMUs - (high-end Voodoo1 boards and Voodoo2 boards). When only one TMU is - available the driver fallback to bilinear filter also if you ask - for trilinear filtering. - - - The Voodoo driver support multiple Voodoo Graphics boards in the - some PC. Using this feature, you can write applications that use - multiple monitors, videoprojectors or HMDs for the output. See - Mesa-3.1/3Dfx/demos/tunnel2.c for an example of how setup one - context for each board. - - - The v0.19 introduces a new powerful texture memory manager: the - texture memory is used as a cache of the set of all defined texture - maps. You can now define several MBs of texture maps also with a 2MB - of texture memory (the texture memory manager will do automatically - all the swap out/swap in - texture memory work). The new texture memory manager has also - solved a lot of other bugs/no specs compliance/problems - related to the texture memory usage. - - - Use triangles and quads strip: they are a LOT faster than sparse - triangles and quads. - - - The Voodoo driver supports the GL_EXT_paletted_texture. it works - only with GL_COLOR_INDEX8_EXT, GL_RGBA palettes and the alpha value - is ignored because this is a limitation of the the current Glide - version and of the Voodoo hardware. See Mesa-3.1/3Dfx/demos/paltex.c for - a demo of this extension. - - - The Voodoo driver directly supports 3Dfx Global Palette extension. - It was written for GLQuake and I think that it isn't a good idea - to use this extension for any other purpose (it is a trick). See - Mesa-3.1/3Dfx/demos/glbpaltex.c for a demo of this extension. - - - The Voodoo driver chooses the screen resolution according to the - requested window size. If you open a 640x480 window, you will get - a 640x480 screen resolution, if you open a 800x600 window, you - will get a 800x600 screen resolution, etc. - Most GLUT demos support the '-geometry' option, so you can choose - the screen resolution: 'tunnel -geometry 800x600'. - Clearly, you Voodoo board must have enough framebuffer RAM (otherwise - the window creation will fail). - - - The glGetString(GL_RENDERER) returns more information - about the hardware configuration: "Mesa Glide - CARD/ FB/ - TM/ TMU/" - where: CARD is the card used for the current context, - FB is the number of MB for the framebuffer, - TM is the number of MB for the texture memory, - TMU is the number of TMU. You can try to run - Mesa/demos/glinfo in order to have an example of the output. - -Did you find a lot BUGs and problems ? Good, send me an email. - - - -FAQ: ----- - -For a complete FAQ check the Bernd Kreimeier's Linux 3Dfx HOWTO -available at http://www.gamers.org/dEngine/xf3D (it includes also -a lot of informations not strictly related to Linux, so it can be -useful also if you don't use Linux) - -1. What is 3Dfx? - -3Dfx Interactive, Inc. is the company which builds the VooDoo 3-D graphics -chipset (and others) used in popular PC cards such as the Diamond Monster 3D -and the Orchid Righteous 3D (more informations at http://www.3dfx.com). - - -2. What is Glide? - -Glide is a "thin" programming interface for the 3Dfx hardware. It was -originally written for Windows/Intel but has been ported to Linux/Intel -by Daryll Strauss. - -3Dfx, Inc. should be applauded for allowing the Linux version of Glide -to be written. - -You can directly program with the Glide library if you wish. You can -obtain Glide from the "Developer" section of the 3Dfx website: www.3dfx.com -There's a Linux/Glide newsgroup at news://news.3dfx.com/3dfx.glide.linux - - -3. What is fxmesa? - -"fxmesa" is the name of the Mesa device driver for the 3Dfx Glide library. -It was written by David Bucciarelli and others. It works on both Linux -and Windows. Basically, it allows you to write and run OpenGL-style programs -on the 3Dfx hardware. - - -4. What is GLQuake? - -Quake is a very popular game from id software, Inc. See www.idsoftware.com -GLQuake is a version of Quake written for OpenGL. There is now a Linux -version of GLQuake with works with the Mesa/3Dfx/Glide combo. - -Here's what you need to run GLQuake on Linux: - PC with 100MHz Pentium or better - a 3Dfx-based card - Mesa 3.1 libraries: libMesaGL.so libMesaGLU.so - Glide 2.4 libraries: libglide2x.so libtexus.so - GLQuake for Linux. - -Also, the windows version of GLQuake works fine with the Mesa OpenGL32.dll, -you have only to copy the Mesa-3.1/lib/OpenGL32.dll in the GLQuake directory -in order to test 'MesaQuake'. - - -5. What is GLUT? - -GLUT is Mark Kilgard's OpenGL Utility Toolkit. It provides an API for -writing portable OpenGL programs with support for multiple windows, pop- -up menus, event handling, etc. - -Check the Mark's home page for more informations (http://reality.sgi.com/mjk_asd). - -Every OpenGL programmer should check out GLUT. - -GLUT on Linux uses GLX. - - -6. What is GLX? - -GLX is the OpenGL extension to the X Window System. I defines both a -programming API (glX*() functions) and a network protocol. Mesa implements -an emulation of GLX on Linux. A real GLX implementation would requires -hooks into the X server. The 3Dfx hardware can be used with GLX-based -programs via the MESA_GLX_FX environment variable. - - -7. Is the Voodoo driver able to use the 4Mb texture memory of -the Pure3D boards ? - -Yes, the Voodoo driver v0.20 includes the support for Voodoo -Graphics boards with more than 2Mb of texture memory. - - -8. Do the Voodoo driver support the Voodoo Rush under Windows ? - -Yes, Diego Picciani has developed the support for the Voodoo -Rush but David Bucciarelli has a Pure3D and a Monster3D and Brian Paul -has a Monster3D, so the new versions of the Mesa/Voodoo sometime are -not tested with the Voodoo Rush. - - -9. Do the Voodoo driver support the Voodoo Rush under Linux ? - -No because the Linux Glide doesn't (yet) support the Voodoo Rush. - - -10. Can I sell my Mesa/Voodoo based software and include -a binary copy of the Mesa in order to make the software -working out of the box ? - -Yes. - - -11. Which is the best make target for compiling the Mesa for -Linux GLQuake ('make linux-glide', 'make linux-386-glide', etc.) ? - -'make linux-386-opt-glide' for Voodoo1 and 'make linux-386-opt-V2-glide' -for Voodoo2 boards because it doesn't include the '-fPIC' -option (4-5% faster). - - -12. Can I use a Mesa compiled with a 'make linux-386-opt-V2-glide' -for my applications/programs/demos ? - -Yes, there is only one constrain: you can't run two Mesa applications -at the some time. This isn't a big issue with the today Voodoo Graphics. - - -Thanks to: ----------- - -Henri Fousse (he has written several parts of the v0.15 and the old GLUT - emulator for Win); - -Diego Picciani (he has developed all the Voodoo Rush support and the wgl - emulator); - -Daryll Strauss (for the Linux Glide and the first Linux support); - -Brian Paul (of course); - -Dave 'Zoid' Kirsch (for the Linux GLQuake and Linux Quake2test/Q2 ports) - -Bernd Kreimeier (for the Linux 3Dfx HOWTO and for pushing companies to offer - a better Linux support) - -3Dfx and Quantum3D (for actively supporting Linux) - -The most update places where find Mesa VooDoo driver related informations are -the Mesa mailing list and my driver WEB page -(http://www-hmw.caribel.pisa.it/fxmesa/index.shtml) - - -David Bucciarelli (davibu@tin.it) - -Humanware s.r.l. -Via XXIV Maggio 62 -Pisa, Italy -Tel./Fax +39-50-554108 -email: info.hmw@plus.it -www: www-hmw.caribel.pisa.it diff --git a/nx-X11/extras/Mesa/docs/README.AMIWIN b/nx-X11/extras/Mesa/docs/README.AMIWIN deleted file mode 100644 index 47cf696cc..000000000 --- a/nx-X11/extras/Mesa/docs/README.AMIWIN +++ /dev/null @@ -1,181 +0,0 @@ -AMIGA AMIWIN PORT of MESA: THE OPENGL SOFTWARE EMULATION -======================================================== -Port by Victor Ng-Thow-Hing (victorng@dgp.toronto.edu) -Original Author (Brian Paul (brianp@ssec.wisc.edu) - -Dec.1 , 1995: Port of release Mesa 1.2.5 - - Modifications made to minimize changes to Mesa distribution. - -Nov.25, 1995: Port of release Mesa 1.2.4 - - -HISTORY -======= -As a 3D graphics progammer, I was increasingly frustrated to see OpenGL -appearing on so many platforms EXCEPT the Amiga. Up to now, the task -of porting OpenGL directly from native Amiga drawing routines seemed like -a daunting task. However, two important events made this port possible. - -First of all, Brian Paul wrote Mesa, the OpenGL software emulator that -can be found on many platforms - except the Amiga and Atari (who cares -about the latter!). This was pretty ironic considering that Mesa was -originally prototyped on an Amiga! The second great event was when -Holger Kruse developed AmiWin, the X11R6 server for the Amiga (definitely -register for this great piece of software) and released a development kit -so one could compile X programs with SAS/C. - -Since Mesa had X routines as its primitive drawing operations, this made -a marriage of Mesa and Amiwin feasible. I copied over the sources from -an ftp site, played with the code, wrote some Smakefiles, and voila, -I had OpenGL programs displaying on my Amiga. - -Although the speed is nothing to be impressed about, this port can be -potentially useful to those who want to quickly test their code in -wireframe or perhaps learn more about programming with the OpenGL API. - -I hope Amiga developers will continue to write excellent software for -their machine, especially more X clients for Amiwin. If you have any -solutions so some of my problems in the porting notes, please send me -some email! - -See you around, -Vic. - -HOW TO CREATE THE LIBRARIES AND SAMPLE CODE -=========================================== - -Just run the shell script mklib.amiwin in the mesa directory. This will -make all the libraries and copy them into the mesa/lib directory. If you -don't want to compile everything, just go to the desired directory and -type smake in that directory. - -Change any of the variables in the smakefiles as necessary. You will REQUIRE -the Amiwin development kit to compile these libraries since you need X11.LIB -and the shareable X libraries. Some examples require the AmiTCP4.0 -net.lib static link library and related header files for unix related -header files and functions like sleep(). - -HOW TO USE THE MESA LIBRARIES -============================= - -Study the Smakefiles in the demos, samples and book directories for the -proper SAS/C options and linkable libraries to use. Basically aux calls -require Mesaaux.LIB, gl calls require MesaGL.LIB, glu calls MesaGLU.LIB, -tk calls Mesatk.LIB. There is a preliminary port of MesaGLUT.LIB toolkit -available in the lib directory with the other Mesa libraries. However, -it seems to cause crashes on some of the sample code. Someone else may want -to attempt a more stable port. - -PORTING NOTES TO AMIWIN -======================= - -My strategy of porting was to leave as much of the code untouched as -possible. I surrounded any amiga specific changes with -#ifdef AMIWIN ... #endif or #ifndef AMIWIN ... #endif preprocessor -symbols. The code was ported on an Amiga 2000, with Fusion 40 accelerator -and a Picasso II graphics card. The SAS/C 6.56 compiler was used, with -the AmiWin 2.16 X development kit. - -All compilations were done for a 68040 CPU with 68882 math coprocessor for -maximum speed. Please edit the smakefile for other compilers. -I wrote smakefiles for the directories I ported. I omitted the Windows -and Widgets directories. The former is for MS Windows and the latter -requires Motif, which is not easily available for the Amiga. - -Here are the changes I did per directory: - -* mesa -Nov. 25, 1995 v 1.2.4 - - added a mklib.amiwin shell script that will make all the libraries and - sample code for Mesa - - created this readme file: readme.AMIGA - -* mesa/include -Dec. 1, 1995 v 1.2.5 - - added the following to GL/xmesa.h - #ifdef AMIWIN - #include - extern struct Library *XLibBase; - #endif -NET CHANGE: xmesa.h - -* mesa/src -Nov. 25, 1995 v 1.2.4 - - added the necessary pragma calls for X functions to the following: - xmesa1.c, xmesa2.c, xmesa3.c, xfonts.c, glx.c - This prevents undefined symbols errors during the linking phase for - X library calls - - created smakefile -Dec. 1, 1995 v 1.2.5 - - removed AMIWIN includes from xmesa1.c, xmesa2.c, xmesa3.c, xfonts.c, - glx.c since they are now defined in include/GL/xmesa.h -NET CHANGE: smakefile - -* mesa/src-tk -Nov. 25, 1995 v 1.2.4 - - added the necessary pragma calls for X functions to the following: - private.h - - created smakefile -Dec. 1, 1995 v 1.2.5 - - removed AMIWIN includes from private.h since it is now defined in - include/GL/xmesa.h -NET CHANGE: smakefile - -* mesa/src-glu -Nov. 25, 1995 v 1.2.4 - - created smakefile -NET CHANGE: smakefile - -* mesa/src-aux -Nov. 25, 1995 v 1.2.4 - - added the necessary pragma calls for X functions to the following: - glaux.c - - created smakefile -NET CHANGE: glaux.c, smakefile - -* mesa/demos -Nov. 25, 1995 v 1.2.4 - - added the necessary pragma calls for X functions to the following: - xdemo.c, glxdemo.c, offset.c - - created smakefile - - put #ifndef AMIWIN ... #endif around sleep() calls in xdemo.c since - they are not part of AmigaDOS. -Dec. 1, 1995 v 1.2.5 - - removed AMIWIN defines from xdemo.c, glxdemo.c, offset.c since - already defined in include/GL/xmesa.h - - modified Smakefile to include header and includes from the AmiTCP4.0 - net.lib linkable library to provide unix-compatible sys/time.h and - the sleep() function - - removed AMIWIN defines in xdemo.c since sleep() now defined -NET CHANGE: smakefile - -* mesa/samples -Nov. 25, 1995 v 1.2.4 - - added the necessary pragma calls for X functions to the following: - oglinfo.c - - created smakefile - - put #ifndef AMIWIN ... #endif around sleep() in blendxor.c - - removed olympic from smakefile targets since not defined -Dec. 1, 1995 v 1.2.5 - - removed AMIWIN defines from oglinfo.c, since already defined in - include/GL/xmesa.h - - modified Smakefile to include header and includes from the AmiTCP4.0 - net.lib linkable library to provide unix-compatible sys/time.h and - the sleep() function - - removed AMIWIN defines in blendxor.c for sleep() - - added AMIWIN defines around _MACHTEN_ in olympic.c since xrandom() - functions are not defined in any libraries - - added olympic back into the Smakefile targets -NET CHANGE: smakefile, olympic.c - -* mesa/book -Nov. 25, 1995 v 1.2.4 -- created smakefile -- removed accpersp and dof from smakefile targets since the SAS/C compile seems to - confuse the near,far variables with near/far memory models. -NET CHANGE: smakefile - -* mesa/windows -Dec. 1, 1995 v 1.2.5 -- Removed directory to save space since this is only needed for Windows based - machines. diff --git a/nx-X11/extras/Mesa/docs/README.BEOS b/nx-X11/extras/Mesa/docs/README.BEOS deleted file mode 100644 index 6e97d6317..000000000 --- a/nx-X11/extras/Mesa/docs/README.BEOS +++ /dev/null @@ -1,137 +0,0 @@ - - Mesa / BeOS Information - - - -* Introduction - -Brian Paul added in Mesa 3.1 a driver for BeOS R4.5 operating system. -This driver implements a clone of the BGLView class. This class, -derived from BView, allows OpenGL rendering into any BeOS window. His -driver was updated in Mesa 4.1 and again in version 6.1 by Philippe -Houdoin, who's maintaining this driver since. - -Any application which uses the BGLView should be able to use Mesa -instead of Be's OpenGL without changing any code. - -Since Be's OpenGL implementation (as of R5) is basically just the -SGI sample implementation, it's pretty slow. You'll see that Mesa -is considerably faster. - - -* Source Code - -The source code for the driver is in src/mesa/drivers/beos/ directory. -It's not 100% finished at this time but many GLUT-based demos are -working. No optimizations have been made at this time. - - -* Compiling - -Since Mesa 6.x, it can be build under BeOS with both the R5 builtin gcc version -or more recent gcc versions available for BeOS, like this gcc version 2.95.3 for BeOS -you can find at http://www.bebits.com/app/2157. -Anyway, keep in mind that to take full advantage of Mesa x86 optimizations, you better -want to use gcc 2.95.3 or sooner versions... - -To build Mesa-powered BeOS libGL.so version, open an Terminal window, -move to Mesa root folder and type this command: - -$ make beos - -Note that the "beos" argument is only needed the first time to setup build config. -Next times, typing "make" will be enough. - -When it finishes the Mesa based libGL.so library for -BeOS will be in the lib/ directory, along libglut.so library. -Several demo/test programs should have been build too under progs/* folders. -If it stop when building one of the progs/* programs, you may want to ignore it -and force make to move on next target by adding the -k make option: - -$ cd progs -$ make -k - -To install it as Be's default libGL.so replacement, put it in your -/boot/home/config/lib/ directory. All your GL/GLUT apps will use -the Mesa based then. - -By default, it build a non-debug version library. -The x86 (MMX, SSE and 3DNOW) optimizations are also supported for x86 target. -For PowerPC BeOS flavor, sorry, Mesa don't have ppc (Altivec) optimizations -yet. - -To build a DEBUG version, type instead this : - -$ DEBUG=1 make - - -* Example Programs - -Look under progs/beos/ for some BGLView-based programs. -You should find under progs/samples and progs/redbook directories GLUT-based programs too. -They all should have been compiled along with the Mesa library. - - -* GLUT - -A beta version of GLUT 3.7 port for BeOS, made by Jake Hamby, can be found at -http://anobject.com/jehamby/Code/Glut-3.7-x86.zip. -This is the version currently included in Mesa source code, and -build in lib/libglut.so. - -A previous 3.5 version of this GLUT BeOS port used to be available at -http://home.beoscentral.com/jehamby/Glut-3.5-x86.zip. - -They're special versions of GLUT for the BeOS platform. I don't -believe Mark Kilgard's normal GLUT distribution includes BeOS -support. - - -* Special Features - -Mesa's implementation of the BGLView class has an extra member -function: CopySubBufferMESA(). It basically works like SwapBuffers() -but it only copies a sub region from the back buffer to the front -buffer. This is a useful optimization for some applications. -If you use this method in your code be sure that you check at runtime -that you're actually using Mesa (with glGetString) so you don't -cause a fatal error when running with Be's OpenGL. - - -* Work Left To Do - -- BDirectWindow single buffering support is not implemented yet. -- Color index mode is not implemented yet. -- Reading pixels from the front buffer not implemented yet. -- There is also a BGLScreen class in BeOS for full-screen OpenGL rendering. - This should also be implemented for Mesa. -- Multiple renderers add-ons support, first step toward hardware acceleration - support. - -* Other contributors to this BeOS port - -Jake Hamby jhamby anobject com -Marcin Konicki ahwayakchih neoni net -Francois Revol revol free fr -Nathan Whitehorn nathanw uchicago edu - - -* Older BeOS Driver - -Mesa 2.6 had an earlier BeOS driver. It was based on Mesa's Off-screen -rendering interface, not BGLView. If you're interested in the older -driver you should get Mesa 2.6. - - -* BeOS and Glide - -Mesa 3.0 supported the 3Dfx/Glide library on Beos. Download Mesa 3.0 -if interested. Ideally, the 3Dfx/Glide support should be updated to -work with the new Mesa 3.1 BGLView implementation. - -The Glide library hasn't been updated for BeOS R4 and newer, to my knowledge, -as of February, 1999. - - ----------------------------------------------------------------------- -$Id: README.BEOS,v 1.1.1.6 2005/07/31 16:45:49 ajax Exp $ diff --git a/nx-X11/extras/Mesa/docs/README.CYGWIN b/nx-X11/extras/Mesa/docs/README.CYGWIN deleted file mode 100644 index 58d5af3e2..000000000 --- a/nx-X11/extras/Mesa/docs/README.CYGWIN +++ /dev/null @@ -1,256 +0,0 @@ - - Mesa Cygwin/X11 Information - - -WARNING -======= - -If you installed X11 (packages xorg-x11-devel and xorg-x11-bin-dlls ) with the -latest setup.exe from Cygwin the GL (Mesa) libraries and include are already -installed in /usr/X11R6. - -The following will explain how to "replace" them. - -Installation -============ - -How to compile Mesa on Cygwin/X11 systems: - -1. Shared libs: - type 'make cygwin-sl'. - - When finished, the Mesa DLL will be in the Mesa-x.y/lib/ and - Mesa-x.y/bin directories. - - -2. Static libs: - type 'make cygwin-static'. - When finished, the Mesa libraries will be in the Mesa-x.y/lib/ directory. - -Header and library files: - After you've compiled Mesa and tried the demos I recommend the following - procedure for "installing" Mesa. - - Copy the Mesa include/GL directory to /usr/X11R6/include: - cp -a include/GL /usr/X11R6/include - - Copy the Mesa library files to /usr/X11R6/lib: - cp -a lib/* /usr/X11R6ocal/lib - - Copy the Mesa bin files (used by the DLL stuff) to /usr/X11R6/bin: - cp -a lib/cyg* /usr/X11R6/bin - -Xt/Motif widgets: - If you want to use Mesa or OpenGL in your Xt/Motif program you can build - the widgets found in either the widgets-mesa or widgets-sgi directories. - The former were written for Mesa and the later are the original SGI - widgets. Look in those directories for more information. - For the Motif widgets you must have downloaded the lesstif package. - - -Using the library -================= - -Configuration options: - The file src/mesa/main/config.h has many parameters which you can adjust - such as maximum number of lights, clipping planes, maximum texture size, - etc. In particular, you may want to change DEPTH_BITS from 16 to 32 - if a 16-bit depth buffer isn't precise enough for your application. - - -Shared libraries: - If you compile shared libraries (Win32 DLLS) you may have to set an - environment variable to specify where the Mesa libraries are located. - Set the PATH variable to include /your-dir/Mesa-2.6/bin. - Otherwise, when you try to run a demo it may fail with a message saying - that one or more DLL couldn't be found. - - -Xt/Motif Widgets: - Two versions of the Xt/Motif OpenGL drawing area widgets are included: - - widgets-sgi/ SGI's stock widgets - widgets-mesa/ Mesa-tuned widgets - - Look in those directories for details - - -Togl: - Togl is an OpenGL/Mesa widget for Tcl/Tk. - See http://togl.sourceforge.net for more information. - - - -X Display Modes: - Mesa supports RGB(A) rendering into almost any X visual type and depth. - - The glXChooseVisual function tries its best to pick an appropriate visual - for the given attribute list. However, if this doesn't suit your needs - you can force Mesa to use any X visual you want (any supported by your - X server that is) by setting the MESA_RGB_VISUAL and MESA_CI_VISUAL - environment variables. When an RGB visual is requested, glXChooseVisual - will first look if the MESA_RGB_VISUAL variable is defined. If so, it - will try to use the specified visual. Similarly, when a color index - visual is requested, glXChooseVisual will look for the MESA_CI_VISUAL - variable. - - The format of accepted values is: - Here are some examples: - - using the C-shell: - % setenv MESA_RGB_VISUAL "TrueColor 8" // 8-bit TrueColor - % setenv MESA_CI_VISUAL "PseudoColor 12" // 12-bit PseudoColor - % setenv MESA_RGB_VISUAL "PseudoColor 8" // 8-bit PseudoColor - - using the KornShell: - $ export MESA_RGB_VISUAL="TrueColor 8" - $ export MESA_CI_VISUAL="PseudoColor 12" - $ export MESA_RGB_VISUAL="PseudoColor 8" - - -Double buffering: - Mesa can use either an X Pixmap or XImage as the backbuffer when in - double buffer mode. Using GLX, the default is to use an XImage. The - MESA_BACK_BUFFER environment variable can override this. The valid - values for MESA_BACK_BUFFER are: Pixmap and XImage (only the first - letter is checked, case doesn't matter). - - A pixmap is faster when drawing simple lines and polygons while an - XImage is faster when Mesa has to do pixel-by-pixel rendering. If you - need depth buffering the XImage will almost surely be faster. Exper- - iment with the MESA_BACK_BUFFER variable to see which is faster for - your application. - - -Colormaps: - When using Mesa directly or with GLX, it's up to the application writer - to create a window with an appropriate colormap. The aux, tk, and GLUT - toolkits try to minimize colormap "flashing" by sharing colormaps when - possible. Specifically, if the visual and depth of the window matches - that of the root window, the root window's colormap will be shared by - the Mesa window. Otherwise, a new, private colormap will be allocated. - - When sharing the root colormap, Mesa may be unable to allocate the colors - it needs, resulting in poor color quality. This can happen when a - large number of colorcells in the root colormap are already allocated. - To prevent colormap sharing in aux, tk and GLUT, define the environment - variable MESA_PRIVATE_CMAP. The value isn't significant. - - -Gamma correction: - To compensate for the nonlinear relationship between pixel values - and displayed intensities, there is a gamma correction feature in - Mesa. Some systems, such as Silicon Graphics, support gamma - correction in hardware (man gamma) so you won't need to use Mesa's - gamma facility. Other systems, however, may need gamma adjustment - to produce images which look correct. If in the past you thought - Mesa's images were too dim, read on. - - Gamma correction is controlled with the MESA_GAMMA environment - variable. Its value is of the form "Gr Gg Gb" or just "G" where - Gr is the red gamma value, Gg is the green gamma value, Gb is the - blue gamma value and G is one gamma value to use for all three - channels. Each value is a positive real number typically in the - range 1.0 to 2.5. The defaults are all 1.0, effectively disabling - gamma correction. Examples using csh: - - % setenv MESA_GAMMA "2.3 2.2 2.4" // separate R,G,B values - % setenv MESA_GAMMA "2.0" // same gamma for R,G,B - - The demos/gamma.c program may help you to determine reasonable gamma - value for your display. With correct gamma values, the color intensities - displayed in the top row (drawn by dithering) should nearly match those - in the bottom row (drawn as grays). - - Alex De Bruyn reports that gamma values of 1.6, 1.6 and 1.9 work well - on HP displays using the HP-ColorRecovery technology. - - Mesa implements gamma correction with a lookup table which translates - a "linear" pixel value to a gamma-corrected pixel value. There is a - small performance penalty. Gamma correction only works in RGB mode. - Also be aware that pixel values read back from the frame buffer will - not be "un-corrected" so glReadPixels may not return the same data - drawn with glDrawPixels. - - For more information about gamma correction see: - http://www.inforamp.net/~poynton/notes/colour_and_gamma/GammaFAQ.html - - -Overlay Planes - - Overlay planes in the frame buffer are supported by Mesa but require - hardware and X server support. To determine if your X server has - overlay support you can test for the SERVER_OVERLAY_VISUALS property: - - xprop -root | grep SERVER_OVERLAY_VISUALS - - -HPCR glClear(GL_COLOR_BUFFER_BIT) dithering - - If you set the MESA_HPCR_CLEAR environment variable then dithering - will be used when clearing the color buffer. This is only applicable - to HP systems with the HPCR (Color Recovery) system. - - -Extensions -========== - There are three Mesa-specific GLX extensions at this time. - - GLX_MESA_pixmap_colormap - - This extension adds the GLX function: - - GLXPixmap glXCreateGLXPixmapMESA( Display *dpy, XVisualInfo *visual, - Pixmap pixmap, Colormap cmap ) - - It is an alternative to the standard glXCreateGLXPixmap() function. - Since Mesa supports RGB rendering into any X visual, not just True- - Color or DirectColor, Mesa needs colormap information to convert RGB - values into pixel values. An X window carries this information but a - pixmap does not. This function associates a colormap to a GLX pixmap. - See the xdemos/glxpixmap.c file for an example of how to use this - extension. - - GLX_MESA_release_buffers - - Mesa associates a set of ancillary (depth, accumulation, stencil and - alpha) buffers with each X window it draws into. These ancillary - buffers are allocated for each X window the first time the X window - is passed to glXMakeCurrent(). Mesa, however, can't detect when an - X window has been destroyed in order to free the ancillary buffers. - - The best it can do is to check for recently destroyed windows whenever - the client calls the glXCreateContext() or glXDestroyContext() - functions. This may not be sufficient in all situations though. - - The GLX_MESA_release_buffers extension allows a client to explicitly - deallocate the ancillary buffers by calling glxReleaseBuffersMESA() - just before an X window is destroyed. For example: - - #ifdef GLX_MESA_release_buffers - glXReleaseBuffersMESA( dpy, window ); - #endif - XDestroyWindow( dpy, window ); - - This extension is new in Mesa 2.0. - - GLX_MESA_copy_sub_buffer - - This extension adds the glXCopySubBufferMESA() function. It works - like glXSwapBuffers() but only copies a sub-region of the window - instead of the whole window. - - This extension is new in Mesa version 2.6 - - - -Summary of X-related environment variables: - MESA_RGB_VISUAL - specifies the X visual and depth for RGB mode (X only) - MESA_CI_VISUAL - specifies the X visual and depth for CI mode (X only) - MESA_BACK_BUFFER - specifies how to implement the back color buffer (X only) - MESA_PRIVATE_CMAP - force aux/tk libraries to use private colormaps (X only) - MESA_GAMMA - gamma correction coefficients (X only) - - ----------------------------------------------------------------------- -README.CYGWIN - lassauge April 2004 - based on README.X11 diff --git a/nx-X11/extras/Mesa/docs/README.D3D b/nx-X11/extras/Mesa/docs/README.D3D deleted file mode 100644 index b41fcb620..000000000 --- a/nx-X11/extras/Mesa/docs/README.D3D +++ /dev/null @@ -1,124 +0,0 @@ - - DirectX 6 Driver for Mesa 3.0 - - -This software is distributed under the terms of the GNU Library -General Public License, see the LICENSE file for details. - - - -What do you need ? ------------------- - - - A PC with a DirectX 6 video driver installed. - - - Mesa 3.0 - - - The 3Dfx Glide library 2.3 or later for your OS (the 2.4 works fine). - The Voodoo2 requires the Glide library 2.51. The Glide 3.0 is not - compatible with the Glide 2.x so it doesn't work with the current - version of the driver; - - - Visual C++ 5.0 is only compiler test but others should be ok with - changes to the makefiles (CFLAGS/LFLAGS). - - - DirectX 6 SDK (was a MS download but not sure if still available). - - - SoftIce or another debugger that will get DPF's is nice. - - -Tested on: ----------- - Windows 95 - Windows 98 - Windows NT 5.0 (beta 2) - - -What is able to do ? --------------------- - - - the driver will try and use DirectX to rasterize the OpenGL primitives - that are sent to the driver. The driver will fall back to SW if the rendering - context is too big. The fallback to SW still uses DirectDraw. If the driver - fails to support and operation (accum, stencil, etc) then it will try and get - Mesa to render it in SW. DirectX 6 features that are unsupported by the - installed DirectX 6 driver will be mapped to some other best fit feature. - - -How to compile: ---------------- - - These instructions assume you have Visual C++ installed. - - You might need to increase you enviroment space. You can do this by - adding the following statement to you config.sys. - - shell=C:\COMMAND.COM C:\ /p /e:8198 - - Next setup you compiler enviroment by running vcvars32.bat in the Visual C++ - 'bin' directoy. - - c:\DevStudio\VC\bin\vcvars32.bat - - Modify the D3D makefile to point at your SDK install. Example has the SDK - installed on my 'f' drive in the root. - - file: \Mesa-3.0\src\makefile.d3d - - SDKROOT=f:\mssdk - - Now you can simply make the project. If you look in the makefile you can see - I have some different targets like 'install'. - - nmake /f makefile.d3d - - -FAQ: ----- - - 1) I don't think the driver is using my DirectX driver. - - This maybe true as the current version will only select the Primary D3D driver - installed. If you 3D card is the secondary (3dfx) then your out of luck for this - release. - - 2) The driver seems like its not HW accelerated. - - If you have a video card with limited memory then you might want to try and - change your destop resolution to a low setting (640x480x16) so that the 3D part - of the card has more resources. Remeber the driver can't make the card better... - - 3) Nothing works. - - Make sure you have a DirectX '6' driver installed. Check you driver docs for this - info or use the SDK info utilities. - The final 'dll' is named opengl32.dll and is either in the same directory as the - OpenGL program or in your system directory (x:\windows\system or x:\winnt\system32). - Check your destop resolution. Most DirectX 6 drivers will only support 16bit and - 32bit color depth. To find out for sure you can check the DirectX Info Viewer in - the SDK. - - - 4) Rendering doesn't look right. - - Sometimes this is because the card doesn't support a feature that that is required. - This is usually due to unsupported alpha functions (test/blend) or texture mapping. - Some cards suffer from too small of an alpha channel. The driver does its best to - fallback on unsupported features. This is not to say the driver may not have a bug(s). - - 5) Textures look bad. - - No mipmapping in this release. - - -Thanks to: ----------- - -Brian Paul - - - - -Leigh McRae (leigh@altsoftware.com) -February 9, 1999 - diff --git a/nx-X11/extras/Mesa/docs/README.DJ b/nx-X11/extras/Mesa/docs/README.DJ deleted file mode 100644 index 7180223c2..000000000 --- a/nx-X11/extras/Mesa/docs/README.DJ +++ /dev/null @@ -1,275 +0,0 @@ - Mesa 6.3 DOS/DJGPP Port v1.7 - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - - - -Description: -~~~~~~~~~~~~ - -Well, guess what... this is the DOS port of Mesa 6.3, for DJGPP fans... Whoa! -The driver has its origins in ddsample.c, written by Brian Paul and found by me -in Mesa 3.4.2. - - - -Legal: -~~~~~~ - -Mesa copyright applies, provided this package is used within Mesa. For anything -else, see GPL. - - - -Installation: -~~~~~~~~~~~~~ - -Unzip and type: - - make -f Makefile.DJ [OPTIONS...] - -Available options: - - Environment variables: - CPU optimize for the given processor. - default = pentium - GLU=[mesa|sgi] specify GLU directory; can be `sgi' (requires GNU/C++) - or `mesa'. - default = mesa - GLIDE path to Glide3 SDK; used with FX. - default = $(TOP)/glide3 - FX=1 build for 3dfx Glide3. Note that this disables - compilation of most DMesa code and requires fxMesa. - As a consequence, you'll need the DJGPP Glide3 - library to build any application. - default = no - X86=1 optimize for x86 (if possible, use MMX, SSE, 3DNow). - default = no - - Targets: - all: build everything - libgl: build GL - libglu: build GLU - libglut: build GLUT - clean: remove object files - realclean: remove all generated files - - - -Tested on: - CPU: AMD Athlon XP 1800+ - Mainboard: GA-7VTXE w/ 512 MB DDRAM - Video card: Voodoo5 6000 AGP w/ 128 MB SDRAM - DJGPP: djdev 2.04 + gcc v3.4.3 + make v3.80 - OS: DOS and Win98SE - - - -FAQ: -~~~~ - -1. Compilation - - Q) `make' barfs and exits because it cannot find some stupid file. - A) You need LFN support. - A) When compiling for Glide (FX=1), pay attention to Glide path. - - Q) Libraries built OK, but linker complains about `vsnprintf' every time I - compile some demo. - A) Upgrade to DJGPP 2.04. - A) Add `vsnprintf.c' to the CORE_SOURCES in `src/Makefile.DJ' (untested!). - A) Patch `src/mesa/main/imports.c' with the following line: - #define vsnprintf(buf, max, fmt, arg) vsprintf(buf, fmt, arg) - This hack should be safe in 90% of the cases, but if anything goes wrong, - don't come back to me crying. - - Q) `make' complains about DXE3 or something, yet it builds the libraries. - A) DXE3 refers to the DJGPP dynamic modules. You'll need either the latest - DJGPP distro, or download the separate package from my web page. Read the - DXE3 documentation on how to use them. - A) When compiling for Glide (FX=1), make sure `glide3x.dxe' can be found in - LD_LIBRARY_PATH (or top `lib' directory). - -2. Using Mesa for DJGPP - - Q) Every test I tried crashes badly. - A) If you have compiled with SSE and you're running under plain DOS, you - have to disable SSE at run-time. See environment variables below. - - Q) DMesa is so SLOOOW! The Win32 OpenGL performs so much better... - A) Is that a question? If you have a 3dfx Voodoo (any model), you're - lucky (check http://sourceforge.net/projects/glide for the DJGPP port). - If you haven't, sorry; everything is done in software. Suggestions? - - Q) I tried to set refresh rate w/ DMesa, but without success. - A) Refresh rate control works only for VESA 3.0 and the 3dfx driver (in - which case FX_GLIDE_REFRESH will be overwritten if it is defined and - is not 0). - - Q) I made a simple application and it does nothing. It exits right away. Not - even a blank screen. - A) Pure software drivers (VESA/VGA/NUL) support only double-buffered modes. - A) Another weird "feature" is that buffer width must be multiple of 8 (I'm a - lazy programmer and I found that the easiest way to keep buffer handling - at peak performance ;-). - - Q) I'm getting a "bad font!" fatal error. - A) Always use GLUT_STROKE_* and GLUT_BITMAP_* constants when dealing with - GLUT fonts. If you're using `glut.dxe', then make sure GLUT_STROKE_* and - GLUT_BITMAP_* are mapped to integer constants, not to the actual font - address (same mechanism used for Win32 _DLL). - - Q) What is NUL driver good for, if I don't get any output at all? - A) For debugging. The NUL driver is very much like OSMesa. Everything is - done just the same as VESA/VGA drivers, only it doesn't touch your video - hardware. You can query the actual buffer by issuing: - DMesaGetIntegerv(DMESA_GET_BUFFER_ADDR, &buffer); - and dump it to a file. - - Q) How do I query for a list of available video modes to choose as a visual? - A) This is an ugly hack, for which I'm sure I'll burn in hell. - First, query for a list of modes: - n = DMesaGetIntegerv(DMESA_GET_VIDEO_MODES, NULL); - If `n' is strictly positive, you allocate an array of pointers to a given - struct (which is guaranteed to be extended only - not changed in future): - struct { - int xres, yres; - int bpp; - } **l = malloc(n * sizeof(void *)); - Now pass the newly allocated buffer to fill in: - DMesaGetIntegerv(DMESA_GET_VIDEO_MODES, (GLint *)l); - And collect the info: - for (i = 0; i < n; i++) { - printf("%dx%d:%d\n", l[i]->xres, l[i]->yres, l[i]->bpp); - } - - Q) The GLUT is incomplete. - A) See below. - - - -libGLUT (the toolkit): -~~~~~~~~~~~~~~~~~~~~~~ - -Well, this "skeletal" GLUT implementation was taken from AllegGL project and -heavily changed. Thanks should go to Bernhard Tschirren, Mark Kilgard, Brian -Paul and probably others (or probably not ;-). GLUT functionality will be -extended only on an "as needed" basis. - -GLUT talks to hardware via PC_HW package which was put together from various -pieces I wrote long time ago. It consists from the keyboard, mouse and timer -drivers. - -My keyboard driver used only scancodes; as GLUT requires ASCII values for keys, -I borrowed the translation tables (and maybe more) from Allegro -- many thanks -to Shawn Hargreaves et co. Ctrl-Alt-Del (plus Ctrl-Alt-End, for Windows users) -will shut down the GLUT engine unconditionally: it will raise SIGINT, which in -turn will (hopefully) call the destructors, thus cleaning up your/my mess ;-) -NB: since the DJGPP guys ensured signal handlers won't go beyond program's -space (and since dynamic modules shall) the SIGINT can't be hooked (well, it -can, but it is useless), therefore you must live with the 'Exiting due to -signal SIGINT' message... - -The mouse driver is far from complete (lack of drawing, etc), but is enough to -make almost all the demos work. Supports the CuteMouse WheelAPI. - -The timer is pretty versatile for it supports multiple timers with different -frequencies. While not being the most accurate timer in the known universe, I -think it's OK. Take this example: you have timer A with a very high rate, and -then you have timer B with very low rate compared to A; now, A ticks OK, but -timer B will probably loose precision! - -As an addition, stdout and stderr are redirected and dumped upon exit. This -means that `printf' can be safely called during graphics. A bit of a hack, I -know, because all messages come in bulk, but I think it's better than nothing. -"Borrowed" from LIBRHUTI (Robert Hoehne). - -Window creating defaults: (0, 0, 300, 300), 16bpp. However, the video mode is -chosen in such a way that first window will fit. If you need high resolution -with small windows, set initial position far to the right (or way down); then -you can move them back to any position right before the main loop. - - - -Environment variables: -~~~~~~~~~~~~~~~~~~~~~~ - DMESA_NULDRV - (any value) force NUL driver - GLUT_FPS - print frames/second statistics to stderr - MESA_NO_SSE - (any value) safe option under pure DOS - DMESA_GLUT_REFRESH - set vertical screen refresh rate (VESA3) - DMESA_GLUT_BPP - set default bits per pixel (VGA needs 8) - DMESA_GLUT_ALPHA - set default alpha bits (8) - DMESA_GLUT_DEPTH - set default depth bits (16) - DMESA_GLUT_STENCIL - set default stencil bits (8) - DMESA_GLUT_ACCUM - set default accum bits (16) - - - -History: -~~~~~~~~ - -v1.0 (mar-2002) - initial release - -v1.1 (sep-2002) - + added 3dfx Glide3 support - + added refresh rate control - + added fonts in GLUT - * lots of minor changes - -v1.2 (nov-2002) - * synced w/ Mesa-4.1 - - removed dmesadxe.h - -v1.3 (mar-2003) - + enabled OpenGL 1.4 support - + added MMX clear/blit routines - + enabled SGI's GLU compilation - + added samples makefile - + added new GLUT functions - + added color-index modes - + added Matrox Millennium MGA2064W driver - + added 8bit FakeColor (thanks to Neil Funk) - + added VGA support (to keep Ben Decker happy) - ! fixed some compilation errors (reported by Chan Kar Heng) - * optimized driver for faster callback access... yeah, right :) - * overhauled virtual buffer and internal video drivers - * better fxMesa integration - * revamped GLUT - * switched to DXE3 - -v1.4 (dec-2003) - + enabled GLUT fonts with DXE - + truly added multi-window support in GLUT (for Adrian Woodward) - * accomodated makefiles with the new sourcetree - * fixed some ALPHA issues - * minor changes to PC_HW/timer interface - x hacked and slashed the 3dfx driver (w/ help from Hiroshi Morii) - -v1.5 (jan-2004) - + added interface to query available "visuals" (GLFW - Marcus Geelnard) - + added GLUT timer callback - - removed Matrox Millennium MGA2064W driver - x more changes to the 3dfx driver - -v1.6 (aug-2004) - + implemented NUL driver - + added DMesaGetProcAddress and glutGetProcAddress - * reorganized fxMesa wrapper to handle multiple contexts - ! fixed a horrible bug in VGA initialization routine - ! fixed partial clears - -v1.7 (???-2005) - + enabled OpenGL 2.0 support - + added support for sw texture compression - + added FreeGLUT specific functions - * no more GLX sources in DOS GLUT - * made GLUT timer callbacks less accurate but safer - - - -Contact: -~~~~~~~~ - -Name: Daniel Borca -E-mail: dborca@users.sourceforge.net -WWW: http://www.geocities.com/dborca/ diff --git a/nx-X11/extras/Mesa/docs/README.GGI b/nx-X11/extras/Mesa/docs/README.GGI deleted file mode 100644 index ddb67725f..000000000 --- a/nx-X11/extras/Mesa/docs/README.GGI +++ /dev/null @@ -1,26 +0,0 @@ -GGIMesa for LibGGI 2.x - -Requirements: -------------- -LibGGI 2.0 or greater - -Installation: -------------- -To install GGIMesa, follow the instructions in INSTALL.GNU. If you -wish to install GGIGLUT as well, first install GGIMesa and then run - -make -make install (must be root) - -in ggi/ggiglut. - -Notes: ------- - -* Set the environment variables GGIMESA_DEBUG and/or GGIGLUT_DEBUG -to 255 to see lots of debugging output. - -* GGIGLUT contains support for all of the GLUT 3.6 API except for the -high-level primitive drawing functions, but many of the functions (in -particular the menu drawing functions) are just stubs. - diff --git a/nx-X11/extras/Mesa/docs/README.LYNXOS b/nx-X11/extras/Mesa/docs/README.LYNXOS deleted file mode 100644 index e3ab9804b..000000000 --- a/nx-X11/extras/Mesa/docs/README.LYNXOS +++ /dev/null @@ -1,64 +0,0 @@ - -Mesa 3.0 for LynxOS builds in the following way: - -make lynxos - -This will build all the libraries and demo applications. You should have -around 400 megabytes free for everything since everything is done with -static -libraries. - -Before using this make file however, you should perform the following -actions: -0) cd to the Mesa-3.0 directory -1) Copy the GL directory under the include directory to /usr/include. -2) Copy the files in the lib directory to /lib. -3) Make links so that the Mesa libraries look like ordinary OpenGL -libraries -in /lib. This is important for compatibility with other OpenGL apps. This -is done as follows: - -cd /lib -ln -s libMesaGL.a libGL.a -ln -s libMesaGLU.a libGLU.a - -Mesa 3.0 includes the GLUT (GL Utility Toolkit) by default. -The demo applications are done using this toolkit. - -Mesa makefiles for building their apps could be used as well, but the -following one is much more concise. Note that the order of the X libraries -is important to the linker so that all symbols get resolved correctly. -Changing the order may result in having to list a library twice to make -sure all linkages are made correctly. - -----cut here for Makefile ----- - -FILES = your_app.x - -SPECIAL_INCLUDES = -I/usr/include/GL - -SPECIAL_CFLAGS = -g -ansi -pedantic -funroll-loops -ffast-math -DSHM - -SPECIAL_LIBS = -lglut -lGLU -lGL -lm -L/usr/X11/lib -lXext -lXmu -lXi \ --lX11 -lbsd -g - -STANDARD_OFILES = $(FILES:.x=.o) - -%.o: %.c - gcc -c $(SPECIAL_CFLAGS) $(SPECIAL_INCLUDES) $< -o $@ - -all: $(STANDARD_OFILES) - gcc -o your_app $(STANDARD_OFILES) $(SPECIAL_LIBS) - - -----cut here for Makefile----- - -I have tested Mesa under LynxOS 3.0 and 3.01. It should build fine under -other -versions as well. Note, however, that LynxOS versions prior to 3.0 are not -binary compatible, so you will have to rebuild from source. - - -Vik Sohal -vik@lynx.com -January 13, 1999 diff --git a/nx-X11/extras/Mesa/docs/README.MINGW32 b/nx-X11/extras/Mesa/docs/README.MINGW32 deleted file mode 100644 index 2b39f1209..000000000 --- a/nx-X11/extras/Mesa/docs/README.MINGW32 +++ /dev/null @@ -1,90 +0,0 @@ - Mesa 6.1 for MinGW32 - ~~~~~~~~~~~~~~~~~~~~ - - - -Quick & dirty start: --------------------- - - mingw32-make -f Makefile.mgw [OPTIONS...] - - Look into the corresponding makefiles for further information. - Check README.3DFX to find out how to compile Mesa Glide3 driver - with MinGW32! - - - -******************************************************************************* -The Mingw port for Mesa 3-D Graphics Library was created August 30, 1998 by Paul Garceau. - -Updated January 13, 2000; June 3, 2005 -- Paul Garceau - -DISCLAIMER: I make this port of the Mesa 3-D Graphics Library as a service -to the general public. I can, in no way support or make any guarantee that the -build will work for your system. - -Acknowledgements: - - Daniel Borca, whose work and commitment to maintaining the Mingw port of the Mesa 3-D Graphics Library has been, and will continue to be greatly appreciated by an overworked and underpaid developer such as myself. - Without the creative inspiration and personal commitment provided by Mumit Khan, Jan-Jaap Vanderhagen and Colin Peters, Mingw would never have existed. Acknowledgements also need to be given to all of the developers who have worked on Mingw, Mesa and Msys over the years. - Last, but certainly far from the least, Brian Paul, who has dedicated at least the last seven or eight years of his life to making Mesa 3-D Graphics Library what it is today and managing the development for all of those years. -********************************************************************************* - -Greetings, - - Feel free to modify or change things related to the Mingw build as you see fit, just remember that, the author of the current build may not be able to support any modifications you might want to make to the files which have been included for the build. - -Mesa core components are licensed under XFree-86 (for more on licensing of Mesa 3-D Graphics Library, check out the Mesa homepage (http://www.mesa3d.org). - -The Mingw generated libraries themselves are licensed under the GNU-LGPL license. Source code for Mingw can be found at http://www.mingw.org. For licensing terms on Mingw, please visit http://www.mingw.org. - - It is recommended that you use the latest "stable" release of Mingw. "Candidates" are beta testing distributions for Mingw. Mingw is available at http://www.mingw.org. - - This build has been tested under WinNT4/SP6. Win9x and WinNT5 remain untested by me. I have not tested any of the demos included with Mesa3d. - -Installation: - - This readme assumes that you already have extracted the necessary files to a working directory/folder that Mingw can use to build the Mesa3D libraries and that you know where that directory/folder is located on your Windows system. If you have any questions about how to set things up properly which is specific to Mesa3D, the folks on the Mesa3D mailing lists (http://www.mesa3d.org) would probably be happy to assist you. Also you can probably ask anyone on the Mingw mailing lists for any questions specific to Mingw (http://www.mingw.org) - -Targets and Environment variables used for Mingw build: - - Before going into the actual build of the libraries, here is a list of available targets for the make process: - - "all" or "libgl" -- this target will build libopengl.a, a static library. It will not build the demos, etc. - - clean -- this target will clean up most of the Mesa 3-D Graphics Library/object code from your hard drive. - - realclean -- this target will clean up all of the Mesa 3D Graphics Library and the Mesa object code that it can find. - - Environment Variables: - - The environment variables are used to determine what sort of graphics driver support needs to be included in the finished Mesa 3-D Graphics Library. - - GLIDE path to Glide3 SDK; used with FX. - default = $(TOP)/glide3 - FX=1 build for 3dfx Glide3. Note that this disables - compilation of most WMesa code and requires fxMesa. - As a consequence, you'll need the Win32 Glide3 - library to build any application. - default = no - ICD=1 build the installable client driver interface - (windows opengl driver interface) - default = no - X86=1 optimize for x86 (if possible, use MMX, SSE, 3DNow). - default = no - - -Running the Build: - - Launch Mingw. - From the Windows Command Prompt: - Set Environment Variables (as needed). - "cd" to your Mesa3D 'root' directory. - Enter "mingw32-make -f makefile.mgw - - That's all there is to it. - - Enjoy! - - Paul G. - Daniel Borca diff --git a/nx-X11/extras/Mesa/docs/README.MITS b/nx-X11/extras/Mesa/docs/README.MITS deleted file mode 100644 index a89176a62..000000000 --- a/nx-X11/extras/Mesa/docs/README.MITS +++ /dev/null @@ -1,102 +0,0 @@ - - Mesa 3.0 MITS Information - - -This software is distributed under the terms of the GNU Library -General Public License, see the LICENSE file for details. - - -This document is a preliminary introduction to help you get -started. For more detaile information consult the web page. - -http://10-dencies.zkm.de/~mesa/ - - - -Version 0.1 (Yes it's very alpha code so be warned!) -Contributors: - Emil Briggs (briggs@bucky.physics.ncsu.edu) - David Bucciarelli (tech.hmw@plus.it) - Andreas Schiffler (schiffler@zkm.de) - - - -1. Requirements: - Mesa 3.0. - An SMP capable machine running Linux 2.x - libpthread installed on your machine. - - -2. What does MITS stand for? - MITS stands for Mesa Internal Threading System. By adding - internal threading to Mesa it should be possible to improve - performance of OpenGL applications on SMP machines. - - -3. Do applications have to be recoded to take advantage of MITS? - No. The threading is internal to Mesa and transparent to - applications. - - -4. Will all applications benefit from the current implementation of MITS? - No. This implementation splits the processing of the vertex buffer - over two threads. There is a certain amount of overhead involved - with the thread synchronization and if there is not enough work - to be done the extra overhead outweighs any speedup from using - dual processors. You will not for example see any speedup when - running Quake because it uses GL_POLYGON and there is only one - polygon for each vertex buffer processed. Test results on a - dual 200 Mhz. Pentium Pro system show that one needs around - 100-200 vertices in the vertex buffer before any there is any - appreciable benefit from the threading. - - -5. Are there any parameters that I can tune to try to improve performance. - Yes. You can try to vary the size of the vertex buffer which is - define in VB_MAX located in the file src/vb.h from your top level - Mesa distribution. The number needs to be a multiple of 12 and - the optimum value will probably depend on the capabilities of - your machine and the particular application you are running. - - -6. Are there any ways I can modify the application to improve its - performance with the MITS? - Yes. Try to use as many vertices between each Begin/End pair - as possbile. This will reduce the thread synchronization - overhead. - - -7. What sort of speedups can I expect? - On some benchmarks performance gains of up to 30% have been - observerd. Others may see no gain at all and in a few rare - cases even some degradation. - - -8. What still needs to be done? - Lots of testing and benchmarking. - A portable implementation that works within the Mesa thread API. - Threading of additional areas of Mesa to improve performance - even more. - - - -Installation: - - 1. This assumes that you already have a working Mesa 3.0 installation - from source. - 2. Place the tarball MITS.tar.gz in your top level Mesa directory. - 3. Unzip it and untar it. It will replace the following files in - your Mesa source tree so back them up if you want to save them. - - - README.MITS - Make-config - Makefile - mklib.glide - src/vbxform.c - src/vb.h - - 4. Rebuild Mesa using the command - - make linux-386-glide-mits - diff --git a/nx-X11/extras/Mesa/docs/README.NeXT b/nx-X11/extras/Mesa/docs/README.NeXT deleted file mode 100644 index 1ad9a9e5c..000000000 --- a/nx-X11/extras/Mesa/docs/README.NeXT +++ /dev/null @@ -1,6 +0,0 @@ -The NeXT support has now been incorporated into the OpenStep support. -You can build NeXT libraries simply by typing "make next", though before -linking they will need to be ranlib'd by hand. For more information see -the README.OpenStep file, together with the README files in OpenStep/Old_Demos. - --Pete French. (pete@ohm.york.ac.uk) 28/5/1998 diff --git a/nx-X11/extras/Mesa/docs/README.OS2 b/nx-X11/extras/Mesa/docs/README.OS2 deleted file mode 100644 index b3374ea23..000000000 --- a/nx-X11/extras/Mesa/docs/README.OS2 +++ /dev/null @@ -1,96 +0,0 @@ - README for port of Mesa 3.x to XFree86 on OS/2 (X/2) - (as of 19990514) - - - Contents: - - 1) Binary release - 2) Building from sources - 3) History - 4) Todo - 5) Mesa Home Page - - -1) Binary release - - Though the Mesa sources should build in a quite reasonable time even on - a 585 class machine a binary relase is available (check topic 4) for an URL) - This package includes: - - - lib/MesaGL.dll, MesaGL.a - - lib/MesaGLU.dll, MesaGLU.a - - lib/glut.dll, glut.a - - include/GL/*.h - - Installing this in your XFree86 tree will enable you to build and - run all applications compatible with Mesa (and the current DLL - interface, of course ;-) - As usual the OMF-style libraries can be created using emxomf. - (e.g. "emxomf foo.a" creates the foo.lib omf-style library). - The static libraries are rarely used and you have to rebuild - Mesa to get them. They're a supported target, so you get - them in a straightforward way (see below). - - The testing of these libraries was limited to the supplied - demos/examples and a quite small number of third-party apps. - No warranty ... as usual ... ;-) - - -2) Instructions to build Mesa 3.x for XFree86/OS2 from sources: - - Except the official Mesa source distribution you need: - - a recent version of XFree86 (3.3.x or above) including - the programming libraries - - EMX 0.9c (0.9d might work, never checked) - - GNU make - - REXX (!) - - The creation of the DLLs as well as of the static libraries - (if you want to have them) is handled in "mklib-emx.cmd", - a small REXX script. Perhaps not the best idea, but this - way it fits best in the scheme used to build libraries - on all platforms in Mesa 3.x. - - To actually build the libraries and demos, check mklib-emx.cmd - and modify it as desired. Then type - make os2-x11 - and wait for completion ;-) - - -3) History - - Initially Darren Abbott (abbott@hiwaay.net) ported Mesa versions 2.x - to XFree86 OS/2. This port might still be available from - http://fly.HiWAAY.net/~abbott/xfree86-os2/xfree86.html - - The current port picked up things during the beta test for 3.0. - No major changes in the source were done. The build mechanism under OS/2 - has been made very similar to other platforms (if you treat mklib-emx.cmd - as a "black box"). - Advantage is that X/2 is now a valid target and all files are - integrated in the official source distribution. - Disadvantage is that this port (i.e. the DLLs' interface itself) is - definitly NOT COMPATIBLE to those of version 2.x. - It's uncertain whether this would be at all possible but since there - a _very_ few those apps it's not worth to find out anyway. - Also some libs (MesaTK, MesaAUX) are withdrawn from the Mesa distribution, - and accordingly from the OS/2 port. - -4) Todo - - By now binary compatiblity is ensured by using the function names - as entry points instead of ordinals. This might cost performance and - is subject to change in future. In addition the supplied X86 assembler - source is not used yet. - -5) Mesa Home Page - - You can get the source code and more information about Mesa from - http://www.mesa3d.org/ - - The OS/2 ports should be available from - http://r350.ee.ntu.edu.tw/~hcchu/os2/ports - --- -Alexander Mai -st002279@hrzpub.tu-darmstadt.de diff --git a/nx-X11/extras/Mesa/docs/README.OpenStep b/nx-X11/extras/Mesa/docs/README.OpenStep deleted file mode 100644 index a566eca67..000000000 --- a/nx-X11/extras/Mesa/docs/README.OpenStep +++ /dev/null @@ -1,35 +0,0 @@ -This is a port of the GL and GLU libraries to NeXT/Apple object -orientated systems. As these systems have their own window handling -systems we simply use the offscreen rendering capability of Mesa -to generate bitmaps which may then be displayed by the application -with a View as required. Example pieces of code may be found in the -OpenStep directory. - -Sadly there are now a proliferation of different system that we need to -support compilation for: The original NextStep system, The OpenStep -system, the Rhapsody/Mac OS X system and also the windows implementations -of the latter two systems. This version of the code has been compiled and -tested under the following architectures: - - NextStep 3.3 - OpenStep 4.2 - Rhapsody DR2 - WebObjects for NT 3.5 - WebObjects for NT 4.0 - -All tests were done with Intel processors. Feedback on other systems would, -however, be appreciated ! - -On UNIX systems simply type "make openstep". Under Windows systems -with WebObjects run the "win32-openstep.sh" script from within the Bourne -shell provided with the development environment. In both cases this will -build the libraries and place them into the "lib" directory. Some examples -may be found in the OpenStep directory showing how to use the code in an -actual application (MesaView) as well as some command line demos. - -The CC variable may be specified on the command line for doing such things -as building FFAT libraries or using alternative compilers to the standard 'cc' -e.g. make CC='cc -arch m68k -arch i386' openstep" will build the libraries -with both intel and motorola architectures. - --Pete French. (pete@ohm.york.ac.uk) 7/6/1999 diff --git a/nx-X11/extras/Mesa/docs/README.QUAKE b/nx-X11/extras/Mesa/docs/README.QUAKE deleted file mode 100644 index 729c0e514..000000000 --- a/nx-X11/extras/Mesa/docs/README.QUAKE +++ /dev/null @@ -1,208 +0,0 @@ - - Info on using Mesa 3.0 with Linux Quake I and Quake II - - - -Disclaimer ----------- - -I am _not_ a Quake expert by any means. I pretty much only run it to -test Mesa. There have been a lot of questions about Linux Quake and -Mesa so I'm trying to provide some useful info here. If this file -doesn't help you then you should look elsewhere for help. The Mesa -mailing list or the news://news.3dfx.com/3dfx.linux.glide newsgroup -might be good. - -Again, all the information I have is in this file. Please don't email -me with questions. - -If you have information to contribute to this file please send it to -me at brianp@elastic.avid.com - - - -Linux Quake ------------ - -You can get Linux Quake from http://www.idsoftware.com/ - -Quake I and II for Linux were tested with, and include, Mesa 2.6. You -shouldn't have too many problems if you simply follow the instructions -in the Quake distribution. - - - -RedHat 5.0 Linux problems -------------------------- - -RedHat Linux 5.x uses the GNU C library ("glibc" or "libc6") whereas -previous RedHat and other Linux distributions use "libc5" for its -runtime C library. - -Linux Quake I and II were compiled for libc5. If you compile Mesa -on a RedHat 5.x system the resulting libMesaGL.so file will not work -with Linux Quake because of the different C runtime libraries. -The symptom of this is a segmentation fault soon after starting Quake. - -If you want to use a newer version of Mesa (like 3.x) with Quake on -RedHat 5.x then read on. - -The solution to the C library problem is to force Mesa to use libc5. -libc5 is in /usr/i486-linux-libc5/lib on RedHat 5.x systems. - -Emil Briggs (briggs@tick.physics.ncsu.edu) nicely gave me the following -info: - -> I only know what works on a RedHat 5.0 distribution. RH5 includes -> a full set of libraries for both libc5 and glibc. The loader ld.so -> uses the libc5 libraries in /usr/i486-linux-libc5/lib for programs -> linked against libc5 while it uses the glibc libraries in /lib and -> /usr/lib for programs linked against glibc. -> -> Anyway I changed line 41 of mklib.glide to -> GLIDELIBS="-L/usr/local/glide/lib -lglide2x -L/usr/i486-linux-libc5/lib" -> -> And I started quake2 up with a script like this -> #!/bin/csh -> setenv LD_LIBRARY_PATH /usr/i486-linux-libc5/lib -> setenv MESA_GLX_FX f -> ./quake2 +set vid_ref gl -> kbd_mode -a -> reset - - -I've already patched the mklib.glide file. You'll have to start Quake -with the script shown above though. - - - -********************** - -Daryll Strauss writes: - -Here's my thoughts on the problem. On a RH 5.x system, you can NOT build -a libc5 executable or library. Red Hat just doesn't include the right -stuff to do it. - -Since Quake is a libc5 based application, you are in trouble. You need -libc5 libraries. - -What can you do about it? Well there's a package called gcc5 that does -MOST of the right stuff to compile with libc5. (It brings back older -header files, makes appropriate symbolic links for libraries, and sets -up the compiler to use the correct directories) You can find gcc5 here: -ftp://ecg.mit.edu/pub/linux/gcc5-1.0-1.i386.rpm - -No, this isn't quite enough. There are still a few tricks to getting -Mesa to compile as a libc5 application. First you have to make sure that -every compile uses gcc5 instead of gcc. Second, in some cases the link -line actually lists -L/usr/lib which breaks gcc5 (because it forces you -to use the glibc version of things) - -If you get all the stuff correctly compiled with gcc5 it should work. -I've run Mesa 3.0B6 and its demos in a window with my Rush on a Red Hat -5.1 system. It is a big hassle, but it can be done. I've only made Quake -segfault, but I think that's from my libRush using the wrong libc. - -Yes, mixing libc5 and glibc is a major pain. I've been working to get -all my libraries compiling correctly with this setup. Someone should -make an RPM out of it and feed changes back to Brian once they get it -all working. If no one else has done so by the time I get the rest of my -stuff straightened out, I'll try to do it myself. - - - |Daryll - - - -********************* - -David Bucciarelli (tech.hmw@plus.it) writes: - -I'm using the Mesa-3.0beta7 and the RedHat 5.1 and QuakeII is -working fine for me. I had only to make a small change to the -Mesa-3.0/mklib.glide file, from: - - - GLIDELIBS="-L/usr/local/glide/lib -lglide2x --L/usr/i486-linux-libc5/lib -lm" - -to: - - GLIDELIBS="-L/usr/i486-linux-libc5/lib -lglide2x" - -and to make two symbolic links: - -[david@localhost Mesa]$ ln -s libMesaGL.so libMesaGL.so.2 -[david@localhost Mesa]$ ln -s libMesaGLU.so libMesaGLU.so.2 - -I'm using the Daryll's Linux glide rpm for the Voodoo2 and glibc (it -includes also the Glide for the libc5). I'm not using the /dev/3Dfx and -running QuakeII as root with the following env. var: - -export -LD_LIBRARY_PATH=/dsk1/home/david/src/gl/Mesa/lib:/usr/i486-linux-libc5/lib - -I think that all problems are related to the glibc, Quake will never -work if you get the following output: - -[david@localhost Mesa]$ ldd lib/libMesaGL.so - libglide2x.so => /usr/lib/libglide2x.so (0x400f8000) - libm.so.6 => /lib/libm.so.6 (0x40244000) - libc.so.6 => /lib/libc.so.6 (0x4025d000) - /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x00000000) - -You must get the following outputs: - -[david@localhost Mesa]# ldd lib/libMesaGL.so - libglide2x.so => /usr/i486-linux-libc5/lib/libglide2x.so -(0x400f3000) - -[root@localhost quake2]# ldd quake2 - libdl.so.1 => /lib/libdl.so.1 (0x40005000) - libm.so.5 => /usr/i486-linux-libc5/lib/libm.so.5 (0x40008000) - libc.so.5 => /usr/i486-linux-libc5/lib/libc.so.5 (0x40010000) - -[root@localhost quake2]# ldd ref_gl.so - libMesaGL.so.2 => -/dsk1/home/david/src/gl/Mesa/lib/libMesaGL.so.2 (0x400eb000) - libglide2x.so => /usr/i486-linux-libc5/lib/libglide2x.so -(0x401d9000) - libX11.so.6 => /usr/i486-linux-libc5/lib/libX11.so.6 -(0x40324000) - libXext.so.6 => /usr/i486-linux-libc5/lib/libXext.so.6 -(0x403b7000) - libvga.so.1 => /usr/i486-linux-libc5/lib/libvga.so.1 -(0x403c1000) - libm.so.5 => /usr/i486-linux-libc5/lib/libm.so.5 (0x403f5000) - libc.so.5 => /usr/i486-linux-libc5/lib/libc.so.5 (0x403fd000) - - -*********************** - -Steve Davies (steve@one47.demon.co.uk) writes: - - -Try using: - - export LD_LIBRARY_PATH=/usr/i486-linux-libc5/lib - ./quake2 +set vid_ref gl - -to start the game... Works for me, but assumes that you have the -compatability libc5 RPMs installed. - - -*************************** - -WWW resources - you may find additional Linux Quake help at these URLs: - - -http://quake.medina.net/howto - -http://webpages.mr.net/bobz - -http://www.linuxgames.com/quake2/ - - - ----------------------------------------------------------------------- -$Id: README.QUAKE,v 1.1.1.3 2004/08/12 23:43:27 anholt Exp $ diff --git a/nx-X11/extras/Mesa/docs/README.THREADS b/nx-X11/extras/Mesa/docs/README.THREADS deleted file mode 100644 index fb6e0ff3d..000000000 --- a/nx-X11/extras/Mesa/docs/README.THREADS +++ /dev/null @@ -1,52 +0,0 @@ - - -Mesa Threads README -------------------- - -Thread safety was introduced in Mesa 2.6 by John Stone and -Christoph Poliwoda. - -It was redesigned in Mesa 3.3 so that thread safety is -supported by default (on systems which support threads, -that is). There is no measurable penalty on single -threaded applications. - -NOTE that the only _driver_ which is thread safe at this time -is the OS/Mesa driver! - - -At present the mthreads code supports three thread APIS: - 1) POSIX threads (aka pthreads). - 2) Solaris / Unix International threads. - 3) Win32 threads (Win 95/NT). - -Support for other thread libraries can be added src/glthread.[ch] - - -In order to guarantee proper operation, it is -necessary for both Mesa and application code to use the same threads API. -So, if your application uses Sun's thread API, then you should build Mesa -using one of the targets for Sun threads. - -The mtdemos directory contains some example programs which use -multiple threads to render to osmesa rendering context(s). - -Linux users should be aware that there exist many different POSIX -threads packages. The best solution is the linuxthreads package -(http://pauillac.inria.fr/~xleroy/linuxthreads/) as this package is the -only one that really supports multiprocessor machines (AFAIK). See -http://pauillac.inria.fr/~xleroy/linuxthreads/README for further -information about the usage of linuxthreads. - -If you are interested in helping with thread safety work in Mesa -join the Mesa developers mailing list and post your proposal. - - -Regards, - John Stone -- j.stone@acm.org johns@cs.umr.edu - Christoph Poliwoda -- poliwoda@volumegraphics.com - - -Version info: - Mesa 2.6 - initial thread support. - Mesa 3.3 - thread support mostly rewritten (Brian Paul) diff --git a/nx-X11/extras/Mesa/docs/README.VMS b/nx-X11/extras/Mesa/docs/README.VMS deleted file mode 100644 index c435727c0..000000000 --- a/nx-X11/extras/Mesa/docs/README.VMS +++ /dev/null @@ -1,32 +0,0 @@ - -VMS support contributed by Jouk Jansen (joukj@hrem.stm.tudelft.nl) - - -The latest version was tested on a VMSAlpha7.2 system using DECC6.0, but -probably also works for other versions. - -At the moment only the libraries LIBMESGL.EXE/LIBMESGL.OLB, -LIBMESAGLU.EXE/LIBMESAGLU.OLB and LIBGLUT.EXE/LIBGLUT.OLB and the demos of the -directory [.DEMOS] can be build. -However, feel free to create the missing "decrip.mms-files" in the other -directories. - - The make files were tested -using the DIGITAL make utility called MMS. There is also a public domain -clone available (MMK) and I think, but it is not tested, that this -utility will give (hardly) any problem. - -To make everything just type MMS (or MMK) in the main directory of -mesagl. For MMS the deafult makefile is called descrip.mms, and -that is what I have called it. I included alse some config files, -all having mms somewhere in the name which all the makefiles need -(just as your unix makefiles). - -On Alpha platforms at default a sharable images for the libraries are created. -To get a static library make it by typing MMS/MACRO=(NOSHARE=1). -On VAX platforms only static libraries can be build. - - -You may want to compile Mesa to use IEEE floating point arithmetic, instead -of VAX floating point by specifying the /float=IEEE flag to the compiler. -For more information see https://bugs.freedesktop.org/show_bug.cgi?id=4270 diff --git a/nx-X11/extras/Mesa/docs/README.WIN32 b/nx-X11/extras/Mesa/docs/README.WIN32 deleted file mode 100644 index 675a3b364..000000000 --- a/nx-X11/extras/Mesa/docs/README.WIN32 +++ /dev/null @@ -1,139 +0,0 @@ -File: docs/README.WIN32 - -Last updated: Jul 01, 2005 - Karl Schultz - kschultz@users.sourceforge.net - -Quick Start ------ ----- - -Unzip both ZIP files (MesaLib and MesaDemos) into the same directory. -The libs and demos build separately, so if you do not care about the -demos, you do not have to unzip that zip file. But if you do, it does -need to be unzipped into the same directory as the lib zip file -because the demos depend on the libs. - -The Windows build system uses Microsoft Visual Studio. Project files -for a specific version of Visual Studio are in their own directory in -the top-level "windows" directory. For example, Visual Studio 6 files -are in windows/VC6. If a directory does not exist for your version of -Visual Studio, you can try importing the project files from an earlier -version of Visual Studio. At this time, project files exist for -Version 6 and Version 7. The code has been built with a beta version -of Version 8 and it runs on 64-bit Windows. If you want to try this, -start by importing the VC7 files and create the 64-bit targets in the -configuration manager. - -The project files to build the core Mesa library, Windows Mesa -drivers, OSMesa, and GLU are in the mesa directory. The project files -to build GLUT and some demo programs are in the progs directory. - -Makefiles are no longer shipped or supported, but can be generated -from the projects using Visual Studio. - - -Windows Drivers -------- ------- - -At this time, only the GDI driver is known to work, as it has been -ported and rewritten to the latest Mesa DD interfaces. Source code -also exists in the tree for other drivers in src/mesa/drivers/windows, -but the status of this code is unknown. - -The GDI driver operates basically by writing pixel spans into a DIB -section and then blitting the DIB to the window. The driver was -recently cleaned up and rewitten and so may have bugs or may be -missing some functionality. The older versions of the CVS source may -be useful in figuring out any problems, or report them to me. - -To build Mesa with the GDI driver, build the mesa, gdi, and glu -projects in the Visual Studio workspace found at - - windows/VC6/mesa/mesa.dsw -or - windows/VC7/mesa/mesa.sln - -The osmesa DLL can also be built with the osmesa project. - -The build system creates a lib top-level directory and copies -resulting LIB and DLL files to this lib directory. The files are: - - OPENGL32.LIB, GLU32.LIB, OSMESA32.LIB - OPENGL32.DLL, GLU32.DLL, OSMESA32.DLL - -If the MesaDemos ZIP file was extracted, the DLL files are also copied -to the demos directory. This facilitates running the demos as described -below. - - -GLUT and Demos ----- --- ----- - -A Visual Studio workspace can be found at - - windows/VC6/progs/progs.dsw -or - windows/VC7/progs/progs.sln - -It can be used to build GLUT and a few demos. The GLUT lib and DLL -are copied to the top-level lib directory, along with the Mesa libs. - -The demo build system expects to find the LIB files in the top level -lib directory, so you must build the Mesa libs first. The demo -executables are placed in the demos directory, because some of them -rely on data files found there. Also, the Mesa lib DLL's were copied -there by the Mesa lib build process. Therefore, you should be able to -simply run the demo executables from the demo directory. - -If you want to run the demos from the Visual Studio, you may have to -change the startup directory and explicitly state where the executables are. - - -Build System Notes ------ ------ ----- - -VC6 ---- - -Visual Studio 6 does not recognize files with the .cc extension as C++ -language files, without a lot of unnatural tweaking. So, the VC6 -build process uses custom build steps to compile these files in the -GLU library. - - -VC7 ---- - -The above-mentioned .cc problem does not exist in this version. - - -General -------- - -After building, you can copy the above DLL files to a place in your -PATH such as $SystemRoot/SYSTEM32. If you don't like putting things -in a system directory, place them in the same directory as the -executable(s). Be careful about accidentially overwriting files of -the same name in the SYSTEM32 directory. - -The DLL files are built so that the external entry points use the -stdcall calling convention. - -Static LIB files are not built. The LIB files that are built with are -the linker import files associated with the DLL files. - -The si-glu sources are used to build the GLU libs. This was done -mainly to get the better tessellator code. - -To build "mangled" Mesa, add the preprocessor define USE_MGL_NAMESPACE -to the project settings. You will also need to edit src/mesa.def to -change all the gl* symbols to mgl*. Because this is easy to do with a -global replace operation in a text editor, no additional mangled -version of mesa.def is maintained or shipped. - -If you have a Windows-related build problem or question, it is -probably better to direct it to me (kschultz@users.sourceforge.net), -rather than directly to the other Mesa developers. I will help you as -much as I can. I also monitor the Mesa mailing lists and will answer -questions in this area there as well. - - -Karl Schultz diff --git a/nx-X11/extras/Mesa/docs/README.WINDML b/nx-X11/extras/Mesa/docs/README.WINDML deleted file mode 100644 index 448db71f8..000000000 --- a/nx-X11/extras/Mesa/docs/README.WINDML +++ /dev/null @@ -1,146 +0,0 @@ - - WindML Driver for Mesa 4.0 - - -Requirements ------------- - -Tornado 2 + WindML, Cumulative Patchs are recommended. - -I suppose you have a valid WindML installation. Double buffer hardware -gives better performance than double buffer software so if you can -compile your WindML driver with this option, just do it. I/O -redirection is adviced in target server. - - -Tested on ---------- - -During the development, my main target was a CoolMonster: -- Video card: CT69000 -- CPU: PENTIUM 266MHz - -and my host a Windows NT + Tornado 2. - - -Installation ------------- - -1. Mesa sources must be in root directory (C:\) - -2. Add the following line to your torVars.bat: -set MESA_BASE=C:\Mesa - -OR copy the new torVars.bat in your bin path: -c:/Mesa/src/ugl/tornado/torVars.sample -> -/mnt/nt/Tornado/host/x86-win32/bin/torVars (for example) - -3. In a command prompt: -$ torVars -$ cd c:\Mesa -$ make -f Makefile.ugl CPU=PENTIUM - -Take a long while... - -5. Include all the files from ugldemos folder to build some downloadable - application modules - -4. Download UGL/Mesa object files on target - -For example via the WindShell: -ld < c:\Tornado\target\lib\objMesaGL.o -ld < c:\Tornado\target\lib\objMesaUGL.o -ld < c:\Tornado\target\lib\objMesaGLU.o -ld < c:\Tornado\target\lib\objGLUTshapes.o -ld < c:\Tornado\target\lib\objMesaOS.o - -You can put the previous lines in a file and use: -< filename - -6. Download the application modules. - -7. In WindShell, run: --> uglalldemos - -During the show some messages will appear, it provides some useful -information on key management. - - -Coding ------- - -Sample Usage: - -In addition to the usual ugl calls to initialize UGL, (may be find an -input driver), you must do the following to use the UGL/Mesa interface: - -1. Call uglMesaCreateContext() to create a UGL/Mesa rendering context, - given the display format. - -2. Call uglMesaMakeCurrent() to bind the UGL/Mesa buffers to an - UGL/Mesa Context and to make the context the current one. - -3. Make gl* calls to render your graphics. - -4. Use uglMesaSwapBuffers() when double buffering to swap front/back buffers. - -5. Before the UGL is destroyed, call MesaDestroyContext(). - -6. Before exiting, call if required uglEventQDestroy and then - uglDeinitialize(); - -Limitations ------------ - -I found the following limitations in my driver : - - Color Indexed management is only in 8 bits - - It's possible to mix UGL/OpenGL application with a software - double buffer - -Modifications ------------- - -New files in Mesa: -- Makefile.ugl -- rules.windmlmesa -- docs/README.UGL -- include/GL/uglmesa.h -- si-glu/Makefile.ugl -- src/Makefile.ugl -- src/ugl/torGLUTShapesInit.c -- src/ugl/torMesaUGLInit.c -- src/ugl/ugl_api.c -- src/ugl/ugl_dd.c -- src/ugl/ugl_glutshapes.c -- src/ugl/ugl_line.c -- src/ugl/ugl_span.c -- src/ugl/ugl_tri.c -- src/ugl/uglmesaP.h -- ugldemos/* - -Modified files in Tornado 2.0: -- c:\Tornado\host\x86-win32\bin\torVars.bat -rem Command line build environments -set WIND_HOST_TYPE=x86-win32 -set WIND_BASE=C:\Tornado -set MESA_BASE=C:\Mesa -set PATH=%WIND_BASE%\host\%WIND_HOST_TYPE%\bin;%PATH% -- c:\Tornado\target\config\comps\VxWorks\01uglmesa.cdf -- c:\Tornado\target\h\GL\* - -Todo ----- -- GCC 2.96, ASM compilation - -Thanks to: ----------- - -Precision Insight team for their great job around Mesa, XFree, and DRI. -Wind River Systems to take me as an intern. - - -Stephane Raimbault - - - -July 24, 2001 diff --git a/nx-X11/extras/Mesa/docs/README.X11 b/nx-X11/extras/Mesa/docs/README.X11 deleted file mode 100644 index 45c424273..000000000 --- a/nx-X11/extras/Mesa/docs/README.X11 +++ /dev/null @@ -1,314 +0,0 @@ - - Mesa Unix/X11 Information - - - -Installation -============ - -There are two ways to compile Mesa on Unix/X11 systems: - -1. The old way: - First type 'make' alone to see the list of system - configurations currently supported. If you see your configuration on the - list, type 'make '. Most popular Unix/X workstations are currently - supported. - - If your system configuration is not listed by 'make', you'll have to modify - the top-level Makefile and Make-config files. There are instructions in - each file. - - When finished, the Mesa libraries will be in the Mesa-x.y/lib/ directory. - - -2. The new way: - Type './configure' and then 'make'. This uses GNU autoconfig. - Run 'make check' to build the demos. - See docs/INSTALL for more details. - When finished, the Mesa libraries will be in the Mesa-x.y/src/.libs/, - Mesa-x.y/si-glu/.libs, etc directories. - - -Notes on assembly language optimizations: - - When using the old-style Makefiles, you can specify a configuration - that uses X86 assembly language optimizations (linux-3dnow for example). - - The detection of MMX, 3DNow!, PIII/SSE, etc capability is done at - runtime. That means you can compile Mesa for 3DNow! optimizations - even if you don't have an AMD CPU. - - However, your Linux binutils and assembler must understand the - special instructions in order to compile them. If you have - compilation problems, try upgrading your binutils. - - -Header and library files: - After you've compiled Mesa and tried the demos I recommend the following - procedure for "installing" Mesa. - - Copy the Mesa include/GL directory to /usr/local/include: - cp -r include/GL /usr/local/include - - Copy the Mesa library files to /usr/local/lib: - cp lib/* /usr/local/lib - - (actually, use "cp -d" on Linux to preserve symbolic links) - - -Xt/Motif widgets: - If you want to use Mesa or OpenGL in your Xt/Motif program you can build - the widgets found in either the widgets-mesa or widgets-sgi directories. - The former were written for Mesa and the later are the original SGI - widgets. Look in those directories for more information. - - -Notes: - HP users: a Mesa user reports that the HP-UX 10.01 C compiler has - a bug which effects glReadPixels. A patch for the compiler (PHSS_5743) is - available. Otherwise be sure your compiler is version 10.13 or later. - - QNX users: if you have problems running the demos try setting the - stack size to 200K or larger with -N200K, for example. - - SunOS 5.x users: The X shared memory extension may not work - correctly. If Mesa prints an error message to the effect of "Shared memory - error" then you'll have to append the following three lines to the end of - your /etc/system file then reboot: - set shmsys:shminfo_shmmax = 0x2000000 - set shmsys:shminfo_shmmni = 0x1000 - set shmsys:shminfo_shmseg = 0x100 - - - -Using the library -================= - -Configuration options: - The file src/mesa/main/config.h has many parameters which you can adjust - such as maximum number of lights, clipping planes, maximum texture size, - etc. In particular, you may want to change DEPTH_BITS from 16 to 32 - if a 16-bit depth buffer isn't precise enough for your application. - - -Shared libraries: - If you compile shared libraries you may have to set an environment - variable to specify where the Mesa libraries are located. On Linux and - Sun systems for example, set the LD_LIBRARY_PATH variable to include - /your-dir/Mesa-2.6/lib. Otherwise, when you try to run a demo it - may fail with a message saying that one or more libraries couldn't be - found. - - -Remote display of OpenGL/GLX programs: - As of version 1.2.3, Mesa's header files use the same GLenum and GLUenum - values as SGI's (and most/all other vendor's) OpenGL headers. This means - you can freely mix object files compiled with OpenGL or Mesa headers. - In fact, on systems with dynamic runtime linkers it's possible to dynam- - ically link with Mesa or OpenGL shared libraries at runtime, without - recompiling or relinking anything! - - Using IRIX 5.x as an example, you can run SGI's OpenGL demos with the - Mesa shared libraries as follows. Let's assume you're installing Mesa - in /usr/local/Mesa and using the C-shell: - % cd /usr/local/Mesa - % make irix5-dso - % setenv _RLD_LIST "/usr/local/Mesa/lib/libGL.so:DEFAULT" - % /usr/demos/bin/ideas_ogl // this is a test - - You can now run OpenGL executables on almost any X display! There may - be some problems from the fact that Mesa supports many X visual types - that an OpenGL client may not expect (grayscale for example). In this - case the application may abort, print error messages, or just behave - strangely. You may have to experiment with the MESA_RGB_VISUAL envi- - ronment variable. - - -Xt/Motif Widgets: - Two versions of the Xt/Motif OpenGL drawing area widgets are included: - - widgets-sgi/ SGI's stock widgets - widgets-mesa/ Mesa-tuned widgets - - Look in those directories for details - - -Togl: - Togl is an OpenGL/Mesa widget for Tcl/Tk. - See http://togl.sourceforge.net for more information. - - - -X Display Modes: - Mesa supports RGB(A) rendering into almost any X visual type and depth. - - The glXChooseVisual function tries its best to pick an appropriate visual - for the given attribute list. However, if this doesn't suit your needs - you can force Mesa to use any X visual you want (any supported by your - X server that is) by setting the MESA_RGB_VISUAL and MESA_CI_VISUAL - environment variables. When an RGB visual is requested, glXChooseVisual - will first look if the MESA_RGB_VISUAL variable is defined. If so, it - will try to use the specified visual. Similarly, when a color index - visual is requested, glXChooseVisual will look for the MESA_CI_VISUAL - variable. - - The format of accepted values is: - Here are some examples: - - using the C-shell: - % setenv MESA_RGB_VISUAL "TrueColor 8" // 8-bit TrueColor - % setenv MESA_CI_VISUAL "PseudoColor 12" // 12-bit PseudoColor - % setenv MESA_RGB_VISUAL "PseudoColor 8" // 8-bit PseudoColor - - using the KornShell: - $ export MESA_RGB_VISUAL="TrueColor 8" - $ export MESA_CI_VISUAL="PseudoColor 12" - $ export MESA_RGB_VISUAL="PseudoColor 8" - - -Double buffering: - Mesa can use either an X Pixmap or XImage as the backbuffer when in - double buffer mode. Using GLX, the default is to use an XImage. The - MESA_BACK_BUFFER environment variable can override this. The valid - values for MESA_BACK_BUFFER are: Pixmap and XImage (only the first - letter is checked, case doesn't matter). - - A pixmap is faster when drawing simple lines and polygons while an - XImage is faster when Mesa has to do pixel-by-pixel rendering. If you - need depth buffering the XImage will almost surely be faster. Exper- - iment with the MESA_BACK_BUFFER variable to see which is faster for - your application. - - -Colormaps: - When using Mesa directly or with GLX, it's up to the application writer - to create a window with an appropriate colormap. The aux, tk, and GLUT - toolkits try to minimize colormap "flashing" by sharing colormaps when - possible. Specifically, if the visual and depth of the window matches - that of the root window, the root window's colormap will be shared by - the Mesa window. Otherwise, a new, private colormap will be allocated. - - When sharing the root colormap, Mesa may be unable to allocate the colors - it needs, resulting in poor color quality. This can happen when a - large number of colorcells in the root colormap are already allocated. - To prevent colormap sharing in aux, tk and GLUT, define the environment - variable MESA_PRIVATE_CMAP. The value isn't significant. - - -Gamma correction: - To compensate for the nonlinear relationship between pixel values - and displayed intensities, there is a gamma correction feature in - Mesa. Some systems, such as Silicon Graphics, support gamma - correction in hardware (man gamma) so you won't need to use Mesa's - gamma facility. Other systems, however, may need gamma adjustment - to produce images which look correct. If in the past you thought - Mesa's images were too dim, read on. - - Gamma correction is controlled with the MESA_GAMMA environment - variable. Its value is of the form "Gr Gg Gb" or just "G" where - Gr is the red gamma value, Gg is the green gamma value, Gb is the - blue gamma value and G is one gamma value to use for all three - channels. Each value is a positive real number typically in the - range 1.0 to 2.5. The defaults are all 1.0, effectively disabling - gamma correction. Examples using csh: - - % setenv MESA_GAMMA "2.3 2.2 2.4" // separate R,G,B values - % setenv MESA_GAMMA "2.0" // same gamma for R,G,B - - The demos/gamma.c program may help you to determine reasonable gamma - value for your display. With correct gamma values, the color intensities - displayed in the top row (drawn by dithering) should nearly match those - in the bottom row (drawn as grays). - - Alex De Bruyn reports that gamma values of 1.6, 1.6 and 1.9 work well - on HP displays using the HP-ColorRecovery technology. - - Mesa implements gamma correction with a lookup table which translates - a "linear" pixel value to a gamma-corrected pixel value. There is a - small performance penalty. Gamma correction only works in RGB mode. - Also be aware that pixel values read back from the frame buffer will - not be "un-corrected" so glReadPixels may not return the same data - drawn with glDrawPixels. - - For more information about gamma correction see: - http://www.inforamp.net/~poynton/notes/colour_and_gamma/GammaFAQ.html - - -Overlay Planes - - Overlay planes in the frame buffer are supported by Mesa but require - hardware and X server support. To determine if your X server has - overlay support you can test for the SERVER_OVERLAY_VISUALS property: - - xprop -root | grep SERVER_OVERLAY_VISUALS - - -HPCR glClear(GL_COLOR_BUFFER_BIT) dithering - - If you set the MESA_HPCR_CLEAR environment variable then dithering - will be used when clearing the color buffer. This is only applicable - to HP systems with the HPCR (Color Recovery) system. - - -Extensions -========== - There are three Mesa-specific GLX extensions at this time. - - GLX_MESA_pixmap_colormap - - This extension adds the GLX function: - - GLXPixmap glXCreateGLXPixmapMESA( Display *dpy, XVisualInfo *visual, - Pixmap pixmap, Colormap cmap ) - - It is an alternative to the standard glXCreateGLXPixmap() function. - Since Mesa supports RGB rendering into any X visual, not just True- - Color or DirectColor, Mesa needs colormap information to convert RGB - values into pixel values. An X window carries this information but a - pixmap does not. This function associates a colormap to a GLX pixmap. - See the xdemos/glxpixmap.c file for an example of how to use this - extension. - - GLX_MESA_release_buffers - - Mesa associates a set of ancillary (depth, accumulation, stencil and - alpha) buffers with each X window it draws into. These ancillary - buffers are allocated for each X window the first time the X window - is passed to glXMakeCurrent(). Mesa, however, can't detect when an - X window has been destroyed in order to free the ancillary buffers. - - The best it can do is to check for recently destroyed windows whenever - the client calls the glXCreateContext() or glXDestroyContext() - functions. This may not be sufficient in all situations though. - - The GLX_MESA_release_buffers extension allows a client to explicitly - deallocate the ancillary buffers by calling glxReleaseBuffersMESA() - just before an X window is destroyed. For example: - - #ifdef GLX_MESA_release_buffers - glXReleaseBuffersMESA( dpy, window ); - #endif - XDestroyWindow( dpy, window ); - - This extension is new in Mesa 2.0. - - GLX_MESA_copy_sub_buffer - - This extension adds the glXCopySubBufferMESA() function. It works - like glXSwapBuffers() but only copies a sub-region of the window - instead of the whole window. - - This extension is new in Mesa version 2.6 - - - -Summary of X-related environment variables: - MESA_RGB_VISUAL - specifies the X visual and depth for RGB mode (X only) - MESA_CI_VISUAL - specifies the X visual and depth for CI mode (X only) - MESA_BACK_BUFFER - specifies how to implement the back color buffer (X only) - MESA_PRIVATE_CMAP - force aux/tk libraries to use private colormaps (X only) - MESA_GAMMA - gamma correction coefficients (X only) - - ----------------------------------------------------------------------- -$Id: README.X11,v 1.1.1.3 2004/08/12 23:43:27 anholt Exp $ diff --git a/nx-X11/extras/Mesa/docs/README.directfb b/nx-X11/extras/Mesa/docs/README.directfb deleted file mode 100644 index 169ebe486..000000000 --- a/nx-X11/extras/Mesa/docs/README.directfb +++ /dev/null @@ -1,28 +0,0 @@ - - Mesa DirectFB Information - - -Requirements -============ - - To build Mesa with DirectFB (DirectFBGL) support you need: - - DirectFB at least 0.9.21 (http://directfb.org) - - pkg-config at least 0.9 (http://pkgconfig.sf.net) - - -Installation -============ - Run - - make linux-directfb - - to build Mesa and DirectFBGL module, - - make install - - to install OpenGL libraries and - - make linux-directfb-install - - to install DirectFBGL module in the proper location. - diff --git a/nx-X11/extras/Mesa/docs/RELNOTES-3.1 b/nx-X11/extras/Mesa/docs/RELNOTES-3.1 deleted file mode 100644 index c1d5d8f9f..000000000 --- a/nx-X11/extras/Mesa/docs/RELNOTES-3.1 +++ /dev/null @@ -1,146 +0,0 @@ - - Mesa 3.1 release notes - - PLEASE READ!!!! - - -New copyright -------------- - -Mesa 3.1 will be distributed under an XFree86-style copyright instead -of the GNU LGPL. - - -New directories ---------------- - -All documentation files are now in the docs/ directory. -All shell scripts are now in the bin/ directory. - - -New library names ------------------ - -Formerly, the main Mesa library was named libMesaGL.so (or libMesaGL.a) -and the GLU library was named libMesaGLU.so (or libMesaGLU.a). - -Now, the main library is named libGL.so (or libGL.a) and the GLU library -is named libGLU.so (or libGLU.a). - -The change allows Mesa to be more easily substituted for OpenGL. -Specifically, the linker/loader on some Unix-like systems won't -allow libMesaGL.so to be used instead of libGL.so if the application -was linked with the former. - -Warning: if you have another OpenGL implementation installed on your -system (i.e. you have another OpenGL libGL.so) you'll have to be -carefull about which library (OpenGL or Mesa) you link against. Be -aware of -L linker flags and the value of the LD_LIBRARY_PATH environment -variable. - - -New library versioning ----------------------- - -Previously, the Mesa GL library was named libMesaGL.so.3.0 -To better support Linux/OpenGL standards, the Mesa GL library is now -named libGL.so.1.2.030100 This indicates version 1.2 of the OpenGL spec -and Mesa implementation 3.1.0 - -In the long term this will allow better interoperability with other -OpenGL implementations, especially on Linux. In the short term, -OpenGL apps may have to be relinked to use the new library naming. - - - -New makefiles -------------- - -The old Makefiles found in the various directories have been renamed -to Makefile.X11 in order to prevent filename collisions with autoconfig- -generated Makefiles. - -The top-level Makefile simply includes Makefile.X11 -If your top-level Makefile get's overwritten/destroyed you can restore -it by copying Makefile.X11 to Makefile - - -New extensions --------------- - -GL_EXT_stencil_wrap - Implements two new stencil operations: GL_INCR_WRAP_EXT and - GL_DECR_WRAP_EXT which allow stencil increment and decrement - without clamping. - -GL_INGR_blend_func_separate - Allows specification of blend factors for RGB and Alpha independently. - (INGR = Intergraph) - -GL_ARB_multitexture - Multiple simultaneous textures. (ARB = Architecture Review Board) - -GL_NV_texgen_reflection - nVidia texgen extension for better reflection mapping. - -GL_PGI_misc_hints - Assorted transformation hints. - -GL_EXT_compiled_vertex_array - Compiled vertex arrays. - -GL_EXT_clip_volume_hint - Allows one to disable clip volume (frustum) testing. - - - -Extensions removed ------------------- - -GL_EXT_multitexture - obsolete in favor of GL_ARB_multitexture - - - -Config file ------------ - -By default, /etc/mesa.conf will be read when Mesa starts. This -file controls default hints, enable/disable of extensions, and -more. See the CONFIG file for documentation. - - - -Optimizations -------------- - -Keith Whitwell has contributed significant optimizations to Mesa's -vertex transformation code. Basically, the whole transformation -stage of Mesa has been rewritten. - -It's impossible to give a speedup factor. You'll just have to -try your app and see how it performs. - - - -Device Driver changes ---------------------- - -A bunch of new device driver functions have been added. See src/dd.h -Keith Harrison contributed many of them. I've been planning on adding -a bunch of functions like these to make writing hardware drivers easier. -More such function will probably be added in the near future. - - - -Miscellaneous -------------- - -util/glstate.c has some handy functions for debugging. Basically, it -offers a simple function for printing GL state variables. It's not -finished yet. There's a LOT more GLenum records to be added (see the -code). Anyone want to help? - - - ----------------------------------------------------------------------- -$Id: RELNOTES-3.1,v 1.1.1.3 2004/08/12 23:43:27 anholt Exp $ diff --git a/nx-X11/extras/Mesa/docs/RELNOTES-3.2 b/nx-X11/extras/Mesa/docs/RELNOTES-3.2 deleted file mode 100644 index 476d97545..000000000 --- a/nx-X11/extras/Mesa/docs/RELNOTES-3.2 +++ /dev/null @@ -1,12 +0,0 @@ - - Mesa 3.2 release notes - - PLEASE READ!!!! - - -Mesa 3.2 is a stabilization of the Mesa 3.1 release. No new features -have been added. For a list of bug fixes please read the VERSIONS file. - - ----------------------------------------------------------------------- -$Id: RELNOTES-3.2,v 1.1.1.3 2004/08/12 23:43:27 anholt Exp $ diff --git a/nx-X11/extras/Mesa/docs/RELNOTES-3.2.1 b/nx-X11/extras/Mesa/docs/RELNOTES-3.2.1 deleted file mode 100644 index 5245a2ed6..000000000 --- a/nx-X11/extras/Mesa/docs/RELNOTES-3.2.1 +++ /dev/null @@ -1,32 +0,0 @@ - - Mesa 3.2.1 release notes - - PLEASE READ!!!! - - - -The Mesa 3.2.1 release mainly just fixes bugs since the 3.2 release. -See the VERSIONS file for the exact list. - - - -GLU Polygon Tessellator ------------------------ - -The GLU tessellator has been reverted back to the version included -with Mesa 3.0 since it's more stable. The Mesa 3.1/3.2 tessellator -implemented the GLU 1.3 specification but suffered from a number of -bugs. - -Mesa implements GLU 1.1. - -Ideally, people should use the GLU 1.3 library included in SGI's -OpenGL Sample Implementation (SI) available from -http://oss.sgi.com/projects/ogl-sample/ -People are working to make easy-to-install Linux RPMs of the -GLU library. - - - ----------------------------------------------------------------------- -$Id: RELNOTES-3.2.1,v 1.1.1.3 2004/08/12 23:43:27 anholt Exp $ diff --git a/nx-X11/extras/Mesa/docs/RELNOTES-3.3 b/nx-X11/extras/Mesa/docs/RELNOTES-3.3 deleted file mode 100644 index 552d07674..000000000 --- a/nx-X11/extras/Mesa/docs/RELNOTES-3.3 +++ /dev/null @@ -1,271 +0,0 @@ - - Mesa 3.3 release notes - - July 21, 2000 - - PLEASE READ!!!! - - - -Introduction ------------- - -Mesa uses an even/odd version number scheme like the Linux kernel. -Odd numbered versions (such as 3.3) designate new developmental releases. -Even numbered versions (such as 3.2.1) designate stable releases. - -Mesa 3.3 has a undergone many internal changes since version 3.2 -and features a lot of new extensions. 3.3 is expected to be pretty -stable, but perhaps not as stable as 3.2 which has been used by -thousands of users over the past months. - -Everyone is encouraged to try Mesa 3.3. Bugs should be reported to -the Mesa bug database on www.sourceforge.net. - - - -Header file / GLenum changes ----------------------------- - -The gl.h and glu.h headers now use #defines to define all GL_* tokens -instead of C-language enums. This change improves Mesa/OpenGL -interoperability. - - - -New API dispatch code ---------------------- - -The core Mesa gl* functions are now implemented with a new dispatch -(jump table) which will allow simultaneous direct/indirect rendering. - -The code is found in the glapi*.[ch] files. - -Of interest: the actual "glFooBar" functions are generated with -templatized code defined in glapitemp.h and included by glapi.c -The glapitemp.h template should be reusable for all sorts of OpenGL -projects. - -The new dispatch code has also optimized with x86 assembly code. -This optimization eliminates copying the function arguments during -dispatch. - - - -New thread support ------------------- - -Thread support in Mesa has been rewritten. The glthread.[ch] files -replace mthreads.[ch]. Thread safety is always enabled (on platforms -which support threads, that is). There is virtually no performance -penalty for typical single-thread applications. See the glapi.c -file for details. - -The Xlib driver (XMesa) is now thread-safe as well. Be sure to -call XInitThreads() in your app first. See the xdemos/glthreads.c -demo for an example. - - - -Make configuration changes --------------------------- - -If you use the old-style (non GNU automake) method to build Mesa note -that several of the configuration names have changed: - - Old name New name - ------------- ---------------- - linux-elf linux - linux linux-static - linux-386-elf linux-386 - linux-386 linux-386-static - etc. - - - -New extensions --------------- - -GL_ARB_transpose_matrix - Adds glLoadTransposeMatrixARB() and glMultTransposeMatrixARB() - functions. - -GL_ARB_texture_cube_map - For cube-based reflection mapping. - -GL_EXT_texture_add_env - Adds GL_ADD texture environment mode. - See http://www.berkelium.com/OpenGL/EXT/texture_env_add.txt - -GL_EXT_texture_lod_bias - Allows mipmapped texture blurring and sharpening. - -GLX_EXT_visual_rating extension - This extension has no effect in stand-alone Mesa (used for DRI). - -GL_HP_occlusion_test - Used for bounding box occlusion testing (see demos/occlude.c). - -GL_SGIX_pixel_texture / GL_SGIS_pixel_texture - Lets glDraw/CopyPixels draw a texture coordinate image. - -GL_SGI_color_matrix - Adds a color matrix and another set of scale and bias parameters - to the glDraw/CopyPixels paths. - -GL_SGI_color_table - Adds additional color tables to the glDraw/Read/CopyPixels paths. - -GL_EXT_histogram - Compute histograms for glDraw/Read/CopyPixels. - -GL_EXT_blend_func_separate - This is the same as GL_INGR_blend_func_separate. - -GL_ARB_texture_cube_mapping - 6-face cube mapping, nicer than sphere mapping - -GL_EXT_texture_env_combine - For advanced texture environment effects. - - -Documentation for all these functions can be found at -http://oss.sgi.com/projects/ogl-sample/registry/ - - - -GLX_SGI_make_current_read functionality ---------------------------------------- - -The functionality of this extension is needed for GLX 1.3 (and required -for the Linux/OpenGL standards base). - -Implementing this function required a **DEVICE DRIVER CHANGE**. -The old SetBuffer() function has been replaced by SetReadBuffer() and -SetDrawBuffer(). All device drivers will have to be updated because -of this change. - -The new function, glXMakeContextCurrent(), in GLX 1.3 now works in Mesa. -The xdemos/wincopy.c program demonstrates it. - - - -Image-related code changes --------------------------- - -The imaging path code used by glDrawPixels, glTexImage[123]D, -glTexSubImage[123], etc has been rewritten. It's now faster, -uses less memory and has several bug fixes. This work was -actually started in Mesa 3.1 with the glTexImage paths but has now -been carried over to glDrawPixels as well. - - - -Device driver interface changes -------------------------------- - -Added new functions for hardware stencil buffer support: - WriteStencilSpan - ReadStencilSpan - WriteStencilPixels - ReadStencilPixels - - -Removed old depth buffer functions: - AllocDepthBuffer - DepthTestSpan - DepthTestPixels - ReadDepthSpanFloat - ReadDepthSpanInt - - -Added new depth buffer functions: - WriteDepthSpan - ReadDepthSpan - WriteDepthPixels - ReadDepthPixels - - These functions always read/write 32-bit GLuints. This will allow - drivers to have anywhere from 0 to 32-bit Z buffers without - recompiling for 16 vs 32 bits as was previously needed. - - -New texture image functions - The entire interface for texture image specification has been updated. - With the new functions, it's optional for Mesa to keep an internal copy - of all textures. Texture download should be a lot faster when the extra - copy isn't made. - -Misc changes - TexEnv now takes a target argument - Removed UseGlobalTexturePalette (use Enable function instead) - - -Also added - ReadPixels - CopyPixels - - -The SetBufffer function has been replaced by SetDrawBuffer and -SetReadBuffer functions. This lets core Mesa independently -specify which buffer is to be used for reading and which for -drawing. - -The Clear function's mask parameter has changed. Instead of -mask being the flags specified by the user to glClear, the -mask is now a bitmask of the DD_*_BIT flags in dd.h. Now -multiple color buffers can be specified for clearing (ala -glDrawBuffers). The driver's Clear function must also -check the glColorMask glIndexMask, and glStencilMask settings -and do the right thing. See the X/Mesa, OS/Mesa, or FX/Mesa -drivers for examples. - - -The depth buffer changes shouldn't be hard to make for existing -drivers. In fact, it should simply the code. Be careful with -the depthBits value passed to gl_create_context(). 1 is a bad -value! It should normally be 0, 16, 24, or 32. - - -gl_create_framebuffer() takes new arguments which explicitly tell -core Mesa which ancillary buffers (depth, stencil, accum, alpha) -should be implemented in software. Mesa hardware drivers should -carefully set these flags depending on which buffers are in the -graphics card. - - - -Internal constants ------------------- - -Point and line size range and granularity limits are now stored -in the gl_constants struct, which is the Const member of GLcontext. -The limits are initialized from values in config.h but may be -overridden by device drivers to reflect the limits of that driver's -hardware. - -Also added constants for NumAuxBuffers and SubPixelBits. - - - -OpenGL Conformance ------------------- - -Mesa now passes all the OpenGL 1.1 conformance tests, except for -antialiased lines. AA lines fail on some, but not all, the tests. -In order to fix the remaining failures, a new AA line algorithm will -be needed (which computes coverage values for end-point fragments). -This will be done for Mesa 3.5/3.6. - - - -OpenGL 1.2 GL_ARB_imaging subset --------------------------------- - -Mesa 3.3 implements all the features of GL_ARB_imaging except for -image convolution. This will (hopefully) be done for Mesa 3.5/3.6. - - - ----------------------------------------------------------------------- -$Id: RELNOTES-3.3,v 1.1.1.3 2004/08/12 23:43:27 anholt Exp $ diff --git a/nx-X11/extras/Mesa/docs/RELNOTES-3.4 b/nx-X11/extras/Mesa/docs/RELNOTES-3.4 deleted file mode 100644 index 9d61b9ded..000000000 --- a/nx-X11/extras/Mesa/docs/RELNOTES-3.4 +++ /dev/null @@ -1,22 +0,0 @@ - - Mesa 3.4 release notes - - November 3, 2000 - - PLEASE READ!!!! - - - -Introduction ------------- - -Mesa uses an even/odd version number scheme like the Linux kernel. -Odd numbered versions (such as 3.3) designate new developmental releases. -Even numbered versions (such as 3.4) designate stable releases. - -Mesa 3.4 simply fixes bugs found in the Mesa 3.3 release. For details, -see the VERSIONS file. - - ----------------------------------------------------------------------- -$Id: RELNOTES-3.4,v 1.1.1.3 2004/08/12 23:43:27 anholt Exp $ diff --git a/nx-X11/extras/Mesa/docs/RELNOTES-3.4.1 b/nx-X11/extras/Mesa/docs/RELNOTES-3.4.1 deleted file mode 100644 index 4d343bef1..000000000 --- a/nx-X11/extras/Mesa/docs/RELNOTES-3.4.1 +++ /dev/null @@ -1,22 +0,0 @@ - - Mesa 3.4.1 release notes - - February 9, 2001 - - PLEASE READ!!!! - - - -Introduction ------------- - -Mesa uses an even/odd version number scheme like the Linux kernel. -Odd numbered versions (such as 3.3) designate new developmental releases. -Even numbered versions (such as 3.4) designate stable releases. - -Mesa 3.4.1 is a maintenance release that simply fixes bugs found since -the Mesa 3.4 release. For details, see the VERSIONS file. - - ----------------------------------------------------------------------- -$Id: RELNOTES-3.4.1,v 1.1.1.3 2004/08/12 23:43:27 anholt Exp $ diff --git a/nx-X11/extras/Mesa/docs/RELNOTES-3.4.2 b/nx-X11/extras/Mesa/docs/RELNOTES-3.4.2 deleted file mode 100644 index 3d4be7e76..000000000 --- a/nx-X11/extras/Mesa/docs/RELNOTES-3.4.2 +++ /dev/null @@ -1,22 +0,0 @@ - - Mesa 3.4.2 release notes - - May 17, 2001 - - PLEASE READ!!!! - - - -Introduction ------------- - -Mesa uses an even/odd version number scheme like the Linux kernel. -Odd numbered versions (such as 3.3) designate new developmental releases. -Even numbered versions (such as 3.4) designate stable releases. - -Mesa 3.4.2 is a maintenance release that simply fixes bugs found since -the Mesa 3.4.1 release. For details, see the VERSIONS file. - - ----------------------------------------------------------------------- -$Id: RELNOTES-3.4.2,v 1.1.1.3 2004/08/12 23:43:27 anholt Exp $ diff --git a/nx-X11/extras/Mesa/docs/RELNOTES-3.5 b/nx-X11/extras/Mesa/docs/RELNOTES-3.5 deleted file mode 100644 index d0bba7f5b..000000000 --- a/nx-X11/extras/Mesa/docs/RELNOTES-3.5 +++ /dev/null @@ -1,228 +0,0 @@ - - Mesa 3.5 release notes - - June 21, 2001 - - PLEASE READ!!!! - - - -Introduction ------------- - -Mesa uses an even/odd version number scheme like the Linux kernel. -Odd numbered versions (such as 3.5) designate new developmental releases. -Even numbered versions (such as 3.4) designate stable releases. - -The biggest change in Mesa 3.5 is a complete overhaul of the source -code in order to make it more modular. This was driven by the DRI -hardware drivers. It simplifies the DRI drivers and opens the door -to hardware transform/clip/lighting (TCL). Keith Whitwell can take -the credit for that. - - - -Driver Support --------------- - -The device driver interface in Mesa 3.5 has changed a lot since Mesa 3.4 -Not all of the older Mesa drivers have been updated. Here's the status: - -Driver Status ----------------------- ----------- -XMesa (Xlib) updated -OSMesa (off-screen) updated -FX (3dfx Voodoo1/2) updated -SVGA updated -GGI not updated -Windows/Win32 not updated -DOS/DJGPP not updated -BeOS not updated -Allegro not updated -D3D not updated -DOS not updated - -We're looking for volunteers to update the remaining drivers. Please -post to the Mesa3d-dev mailing list if you can help. - - - -GLU 1.3 -------- - -Mesa 3.5 includes the SGI Sample Implementation (SI) GLU library. -This version of GLU supports the GLU 1.3 specification. The old -Mesa GLU library implemented the 1.1 specification. The SI GLU -library should work much better. - -You'll need a C++ compiler to compile the SI GLU library. This may -be a problem on some systems. - - - -New Extensions --------------- - -GL_EXT_convolution - Adds image convolution to glRead/Copy/DrawPixels/TexImage. - -GL_ARB_imaging - This is the optional imaging subset of OpenGL 1.2. - It's the GL_EXT_convolution, GL_HP_convolution_border_modes, - GL_EXT_histogram, GL_EXT_color_table, GL_EXT_color_subtable - GL_EXT_blend_color, GL_EXT_blend_minmax, GL_EXT_blend_subtract - and GL_SGI_color_matrix extensions all rolled together. - This is supported in all software renderers but not in all - hardware drivers (3dfx for example). - -GL_ARB_texture_compression - This is supported in Mesa but only used by the 3dfx DRI drivers - for Voodoo4 and later. - -GL_ARB_texture_env_add - This is identical to GL_EXT_texture_env_add. - -GL_NV_blend_square - Adds extra blend source and dest factors which allow squaring - of color values. - -GL_EXT_fog_coord - Allows specification of a per-vertex fog coordinate instead of - having fog always computed from the eye distance. - -GL_EXT_secondary_color - Allows specifying the secondary (specular) color for each vertex - instead of getting it only from lighting in GL_SEPARATE_SPECULAR_COLOR - mode. - -GL_ARB_texture_env_combine - Basically the same as GL_EXT_texture_env_combine - -GL_ARB_texture_env_add extension - Texture addition mode. - -GL_ARB_texture_env_dot3 extension - Dot product texture environment. - -GL_ARB_texture_border_clamp - Adds GL_CLAMP_TO_BORDER_ARB texture wrap mode - -GL_SGIX_depth_texture, GL_SGIX_shadow and GL_SGIX_shadow_ambient - Implements a shadow casting algorithm based on depth map textures - -GL_SGIS_generate_mipmap - Automatically generate lower mipmap images whenever the base mipmap - image is changed with glTexImage, glCopyTexImage, etc. - - - -libOSMesa.so ------------- - -libOSMesa.so is a new library which contains the OSMesa interface for -off-screen rendering. Apps which need the OSMesa interface should link -with both -lOSMesa and -lGL. This change was made so that stand-alone -Mesa works the same way as XFree86/DRI's libGL. - - - -Device Driver Changes / Core Mesa Changes ------------------------------------------ - -The ctx->Driver.LogicOp() function has been removed. It used to -be called during state update in order to determine if the driver -could do glLogicOp() operations, and if not, set the SWLogicOpEnabled -flag. Drivers should instead examine the LogicOp state themselves -and choose specialized point, line, and triangle functions appropriately, -or fall back to software rendering. The Xlib driver was the only driver -to use this function. And since the Xlib driver no longer draws -points, lines or triangles using Xlib, the LogicOp function isn't needed. - -The ctx->Driver.Dither() function has been removed. Drivers should -detect dither enable/disable via ctx->Driver.Enable() instead. - -The ctx->Driver.IndexMask() and ctx->Driver.ColorMask() functions -are now just called from glIndexMask and glColorMask like the other -GL state-changing functions. They are no longer called from inside -gl_update_state(). Also, they now return void. The change was made -mostly for sake of uniformity. - -The NEW_DRVSTATE[0123] flags have been removed. They weren't being used -and are obsolete w.r.t. the way state updates are done in DRI drivers. - - -Removed obsolete gl_create_visual() and gl_destroy_visual(). - -Renamed functions (new namespace): - -old new -gl_create_framebuffer _mesa_create_framebuffer -gl_destroy_framebuffer _mesa_destroy_framebuffer -gl_create_context _mesa_create_context -gl_destroy_context _mesa_destroy_context -gl_context_initialize _mesa_context_initialize -gl_copy_context _mesa_copy_context -gl_make_current _mesa_make_current -gl_make_current2 _mesa_make_current2 -gl_get_current_context _mesa_get_current_context -gl_flush_vb _mesa_flush_vb -gl_warning _mesa_warning -gl_compile_error _mesa_compile_error - - -All the drivers have been updated, but not all of them have been -tested since I can't test some platforms (DOS, Windows, Allegro, etc). - - -X/Mesa Driver -------------- - -The source files for the X/Mesa driver in src/X have been renamed. -The xmesa[1234].c files are gone. The new files are xm_api.c, -xm_dd.c, xm_line.c, xm_span.c and xm_tri.c. - - - -Multitexture ------------- - -Eight texture units are now supported by default. - - - -OpenGL SI related changes -------------------------- - -In an effort to make Mesa's internal interfaces more like the OpenGL -SI interfaces, a number of changes have been made: - -1. Importing the SI's glcore.h file which defines a number of -interface structures like __GLimports and __GLexports. - -2. Renamed "struct gl_context" to "struct __GLcontextRec". - -3. Added __glCoreCreateContext() and __glCoreNopDispatch() functions. - -4. The GLcontext member Visual is no longer a pointer. - -5. New file: imports.c to setup default import functions for Mesa. - - - - -16-bit color channels ---------------------- - -There's experimental support for 16-bit color channels (64-bit pixels) -in Mesa 3.5. Only the OSMesa interface can be used for 16-bit rendering. -Type "make linux-osmesa16" in the top-level directory to build the -special libOSMesa16.so library. - -This hasn't been tested very thoroughly yet so please file bug reports -if you have trouble. - -In the future I hope to implement support for 32-bit, floating point -color channels. - ----------------------------------------------------------------------- -$Id: RELNOTES-3.5,v 1.1.1.3 2004/08/12 23:43:27 anholt Exp $ diff --git a/nx-X11/extras/Mesa/docs/RELNOTES-4.0 b/nx-X11/extras/Mesa/docs/RELNOTES-4.0 deleted file mode 100644 index 125a7020e..000000000 --- a/nx-X11/extras/Mesa/docs/RELNOTES-4.0 +++ /dev/null @@ -1,163 +0,0 @@ - - Mesa 4.0 release notes - - October 18, 2001 - - PLEASE READ!!!! - - - -Introduction ------------- - -Mesa uses an even/odd version number scheme like the Linux kernel. -Odd numbered versions (such as 3.3) designate new developmental releases. -Even numbered versions (such as 3.4) designate stable releases. - -Mesa version 4.0 signifies two things: - - 1. A stabilization of the 3.5 development release - 2. Implementation of the OpenGL 1.3 specification - - -Note that the Mesa major version number is incremented with the OpenGL -minor version number: - - Mesa 1.x == OpenGL 1.0 - Mesa 2.x == OpenGL 1.1 - Mesa 3.x == OpenGL 1.2 - Mesa 4.x == OpenGL 1.3 - - - -New Features ------------- - -Mesa 3.5 already had all the new features of OpenGL 1.3, implemented as -extensions. These extensions were simply promoted to standard features: - - GL_ARB_multisample - GL_ARB_multitexture - GL_ARB_texture_border_clamp - GL_ARB_texture_compression - GL_ARB_texture_cube_map - GL_ARB_texture_env_add - GL_ARB_texture_env_combine - GL_ARB_texture_env_dot3 - GL_ARB_transpose_matrix - -In Mesa 4.0 the functions defined by these extensions are now available -without the "ARB" suffix. For example, glLoadTransposeMatrixf() is now -a standard API function. The new functions in OpenGL 1.3 and Mesa 4.0 are: - - glActiveTexture - glClientActiveTexture - glCompressedTexImage1D - glCompressedTexImage2D - glCompressedTexImage3D - glCompressedTexSubImage1D - glCompressedTexSubImage2D - glCompressedTexSubImage3D - glGetCompressedTexImage - glLoadTransposeMatrixd - glLoadTransposeMatrixf - glMultiTexCoord1d - glMultiTexCoord1dv - glMultiTexCoord1f - glMultiTexCoord1fv - glMultiTexCoord1i - glMultiTexCoord1iv - glMultiTexCoord1s - glMultiTexCoord1sv - glMultiTexCoord2d - glMultiTexCoord2dv - glMultiTexCoord2f - glMultiTexCoord2fv - glMultiTexCoord2i - glMultiTexCoord2iv - glMultiTexCoord2s - glMultiTexCoord2sv - glMultiTexCoord3d - glMultiTexCoord3dv - glMultiTexCoord3f - glMultiTexCoord3fv - glMultiTexCoord3i - glMultiTexCoord3iv - glMultiTexCoord3s - glMultiTexCoord3sv - glMultiTexCoord4d - glMultiTexCoord4dv - glMultiTexCoord4f - glMultiTexCoord4fv - glMultiTexCoord4i - glMultiTexCoord4iv - glMultiTexCoord4s - glMultiTexCoord4sv - glMultTransposeMatrixd - glMultTransposeMatrixf - glSampleCoverage - glSamplePass - - -GLX 1.4 is the companion to OpenGL 1.3. The only new features in GLX 1.4 -are support for multisampling and the GLX_ARB_get_proc_address extension. -glXGetProcAddress() is the only new function in GLX 1.4. - - - -Multisample and Texture Compression ------------------------------------ - -The OpenGL 1.3 specification allows the multisample and texture compression -features to essentially be no-ops. For example, if you query for multisample -support you'll find none, but the API functions work. - -Similarly, texture compression is not implemented by any of the software -drivers but you can specify a generic compressed texture format (like -GL_COMPRESSED_RGBA) to glTexImage2D and it'll be accepted. - - - -Device Drivers --------------- - -Mesa advertises itself as either OpenGL 1.2 or OpenGL 1.3 depending on the -device driver. If the driver enables all the ARB extensions which are part -of OpenGL 1.3 then glGetString(GL_VERSION) will return "1.3". Otherwise, -it'll return "1.2". - -A number of Mesa's software drivers haven't been actively maintained for -some time. We rely on volunteers to maintain many of the drivers. -Here's the current status of all included drivers: - - -Driver Status ----------------------- --------------------- -XMesa (Xlib) implements OpenGL 1.3 -OSMesa (off-screen) implements OpenGL 1.3 -FX (3dfx Voodoo1/2) implements OpenGL 1.3 -SVGA implements OpenGL 1.3 -Wind River UGL implements OpenGL 1.3 -Windows/Win32 implements OpenGL 1.3 -GGI needs updating -DOS/DJGPP needs updating -BeOS needs updating -Allegro needs updating -D3D needs updating -DOS needs updating - -Special thanks go to Karl Schultz for updating the Windows driver. - -The XFree86/DRI drivers have not yet been updated to use Mesa 4.0 as of -September 2001, but that should happen eventually. - - - -Other Changes -------------- - -See the VERSIONS file for more details about bug fixes, etc. in Mesa 4.0. - - ----------------------------------------------------------------------- -$Id: RELNOTES-4.0,v 1.1.1.4 2004/08/12 23:43:27 anholt Exp $ diff --git a/nx-X11/extras/Mesa/docs/RELNOTES-4.0.1 b/nx-X11/extras/Mesa/docs/RELNOTES-4.0.1 deleted file mode 100644 index 52490d23b..000000000 --- a/nx-X11/extras/Mesa/docs/RELNOTES-4.0.1 +++ /dev/null @@ -1,22 +0,0 @@ - - Mesa 4.0.1 release notes - - December 17, 2001 - - PLEASE READ!!!! - - - -Introduction ------------- - -Mesa uses an even/odd version number scheme like the Linux kernel. -Odd numbered versions (such as 3.3) designate new developmental releases. -Even numbered versions (such as 3.4) designate stable releases. - -Mesa 4.0.1 only contains bug fixes since version 4.0. - -See the docs/VERSIONS file for the list of bug fixes. - ----------------------------------------------------------------------- -$Id: RELNOTES-4.0.1,v 1.1.1.4 2004/08/12 23:43:27 anholt Exp $ diff --git a/nx-X11/extras/Mesa/docs/RELNOTES-4.0.2 b/nx-X11/extras/Mesa/docs/RELNOTES-4.0.2 deleted file mode 100644 index ed697ca50..000000000 --- a/nx-X11/extras/Mesa/docs/RELNOTES-4.0.2 +++ /dev/null @@ -1,50 +0,0 @@ - - Mesa 4.0.2 release notes - - March 25, 2002 - - PLEASE READ!!!! - - - -Introduction ------------- - -Mesa uses an even/odd version number scheme like the Linux kernel. -Odd numbered versions (such as 3.3) designate new developmental releases. -Even numbered versions (such as 3.4) designate stable releases. - -Mesa 4.0.2 only contains bug fixes and a new DOS driver since version 4.0.1. - -See the docs/VERSIONS file for the list of bug fixes. - - -Device Drivers --------------- - -Mesa advertises itself as either OpenGL 1.2 or OpenGL 1.3 depending on the -device driver. If the driver enables all the ARB extensions which are part -of OpenGL 1.3 then glGetString(GL_VERSION) will return "1.3". Otherwise, -it'll return "1.2". - -A number of Mesa's software drivers haven't been actively maintained for -some time. We rely on volunteers to maintain many of the drivers. -Here's the current status of all included drivers: - -Driver Status ----------------------- --------------------- -XMesa (Xlib) implements OpenGL 1.3 -OSMesa (off-screen) implements OpenGL 1.3 -FX (3dfx Voodoo1/2) implements OpenGL 1.3 -SVGA implements OpenGL 1.3 -Wind River UGL implements OpenGL 1.3 -Windows/Win32 implements OpenGL 1.3 -DOS/DJGPP implements OpenGL 1.3 (new in Mesa 4.0.2) -GGI needs updating -BeOS needs updating -Allegro needs updating -D3D needs updating - - ----------------------------------------------------------------------- -$Id: RELNOTES-4.0.2,v 1.1.1.5 2004/08/12 23:43:27 anholt Exp $ diff --git a/nx-X11/extras/Mesa/docs/RELNOTES-4.0.3 b/nx-X11/extras/Mesa/docs/RELNOTES-4.0.3 deleted file mode 100644 index 053813dd0..000000000 --- a/nx-X11/extras/Mesa/docs/RELNOTES-4.0.3 +++ /dev/null @@ -1,52 +0,0 @@ - - Mesa 4.0.3 release notes - - June 25, 2002 - - PLEASE READ!!!! - - - -Introduction ------------- - -Mesa uses an even/odd version number scheme like the Linux kernel. -Odd numbered versions (such as 3.3) designate new developmental releases. -Even numbered versions (such as 3.4) designate stable releases. - -Mesa 4.0.3 basically just contains bug fixes version 4.0.2. - -See the docs/VERSIONS file for the list of bug fixes. - -The GGI driver has been updated, thanks to Filip Spacek. - - -Device Drivers --------------- - -Mesa advertises itself as either OpenGL 1.2 or OpenGL 1.3 depending on the -device driver. If the driver enables all the ARB extensions which are part -of OpenGL 1.3 then glGetString(GL_VERSION) will return "1.3". Otherwise, -it'll return "1.2". - -A number of Mesa's software drivers haven't been actively maintained for -some time. We rely on volunteers to maintain many of the drivers. -Here's the current status of all included drivers: - -Driver Status ----------------------- --------------------- -XMesa (Xlib) implements OpenGL 1.3 -OSMesa (off-screen) implements OpenGL 1.3 -FX (3dfx Voodoo1/2) implements OpenGL 1.3 -SVGA implements OpenGL 1.3 -Wind River UGL implements OpenGL 1.3 -Windows/Win32 implements OpenGL 1.3 -DOS/DJGPP implements OpenGL 1.3 (new in Mesa 4.0.2) -GGI implements OpenGL 1.3 -BeOS needs updating -Allegro needs updating -D3D needs updating - - ----------------------------------------------------------------------- -$Id: RELNOTES-4.0.3,v 1.1.1.5 2004/08/12 23:43:27 anholt Exp $ diff --git a/nx-X11/extras/Mesa/docs/RELNOTES-4.1 b/nx-X11/extras/Mesa/docs/RELNOTES-4.1 deleted file mode 100644 index 7bb790190..000000000 --- a/nx-X11/extras/Mesa/docs/RELNOTES-4.1 +++ /dev/null @@ -1,308 +0,0 @@ - - Mesa 4.1 release notes - - October 29, 2002 - - PLEASE READ!!!! - - - -Introduction ------------- - -Mesa uses an even/odd version number scheme like the Linux kernel. -Even numbered versions (such as 4.0) designate stable releases. -Odd numbered versions (such as 4.1) designate new developmental releases. - - -New Features in Mesa 4.1 ------------------------- - -New extensions. Docs at http://oss.sgi.com/projects/ogl-sample/registry/ - -GL_NV_vertex_program - - NVIDIA's vertex programming extension - -GL_NV_vertex_program1_1 - - A few features built on top of GL_NV_vertex_program - -GL_ARB_window_pos - - This is the ARB-approved version of GL_MESA_window_pos - -GL_ARB_depth_texture - - This is the ARB-approved version of GL_SGIX_depth_texture. - It allows depth (Z buffer) data to be stored in textures. - This is used by GL_ARB_shadow - -GL_ARB_shadow - - Shadow mapping with depth textures. - This is the ARB-approved version of GL_SGIX_shadow. - -GL_ARB_shadow_ambient - - Allows one to specify the luminance of shadowed pixels. - This is the ARB-approved version of GL_SGIX_shadow_ambient. - -GL_EXT_shadow_funcs - - Extends the set of GL_ARB_shadow texture comparision functions to - include all eight of standard OpenGL dept-test functions. - -GL_ARB_point_parameters - - This is basically the same as GL_EXT_point_parameters. - -GL_ARB_texture_env_crossbar - - Allows any texture combine stage to reference any texture source unit. - -GL_NV_point_sprite - - For rendering points as textured quads. Useful for particle effects. - -GL_NV_texture_rectangle (new in 4.0.4 actually) - - Allows one to use textures with sizes that are not powers of two. - Note that mipmapping and several texture wrap modes are not allowed. - -GL_EXT_multi_draw_arrays - - Allows arrays of vertex arrays to be rendered with one call. - -GL_EXT_stencil_two_side - - Separate stencil modes for front and back-facing polygons. - -GLX_SGIX_fbconfig & GLX_SGIX_pbuffer - - Off-screen rendering support. - -GL_ATI_texture_mirror_once - - Adds two new texture wrap modes: GL_MIRROR_CLAMP_ATI and - GL_MIRROR_CLAMP_TO_EDGE_ATI. - - - -Device Driver Status --------------------- - -A number of Mesa's software drivers haven't been actively maintained for -some time. We rely on volunteers to maintain many of these drivers. -Here's the current status of all included drivers: - - -Driver Status ----------------------- --------------------- -XMesa (Xlib) implements OpenGL 1.3 -OSMesa (off-screen) implements OpenGL 1.3 -FX (3dfx Voodoo1/2) implements OpenGL 1.3 -SVGA implements OpenGL 1.3 -Wind River UGL implements OpenGL 1.3 -Windows/Win32 implements OpenGL 1.3 -DOS/DJGPP implements OpenGL 1.3 -GGI implements OpenGL 1.3 -BeOS needs updating (underway) -Allegro needs updating -D3D needs updating -DOS needs updating - - - -New features in GLUT --------------------- - -1. Frames per second printing - - GLUT now looks for an environment variable called "GLUT_FPS". If it's - set, GLUT will print out a frames/second statistic to stderr when - glutSwapBuffers() is called. By default, frames/second is computed - and displayed once every 5 seconds. You can specify a different - interval (in milliseconds) when you set the env var. For example - 'export GLUT_FPS=1000' or 'setenv GLUT_FPS 1000' will set the interval - to one second. - - NOTE: the demo or application must call the glutInit() function for - this to work. Otherwise, the env var will be ignored. - - Finally, this feature may not be reliable in multi-window programs. - - -2. glutGetProcAddress() function - - The new function: - - void *glutGetProcAddress(const char *procName) - - is a wrapper for glXGetProcAddressARB() and wglGetProcAddress(). It - lets you dynamically get the address of an OpenGL function at runtime. - The GLUT_API_VERSION has been bumped to 5, but I haven't bumped the - GLUT version number from 3.7 since that's probably Mark Kilgard's role. - - This function should probably also be able to return the address of - GLUT functions themselves, but it doesn't do that yet. - - - -XXX Things To Do Yet XXXX -------------------------- - -isosurf with vertex program exhibits some missing triangles (probably -when recycling the vertex buffer for long prims). - - - -Porting Info ------------- - -If you're porting a DRI or other driver from Mesa 4.0.x to Mesa 4.1 here -are some things to change: - -1. ctx->Texture._ReallyEnabled is obsolete. - - Since there are now 5 texture targets (1D, 2D, 3D, cube and rect) that - left room for only 6 units (6*5 < 32) in this field. - This field is being replaced by ctx->Texture._EnabledUnits which has one - bit per texture unit. If the bit k of _EnabledUnits is set, that means - ctx->Texture.Unit[k]._ReallyEnabled is non-zero. You'll have to look at - ctx->Texture.Unit[k]._ReallyEnabled to learn if the 1D, 2D, 3D, cube or - rect texture is enabled for unit k. - - This also means that the constants TEXTURE1_*, TEXTURE2_*, etc are - obsolete. - - The tokens TEXTURE0_* have been replaced as well (since there's no - significance to the "0" part: - - old token new token - TEXTURE0_1D TEXTURE_1D_BIT - TEXTURE0_2D TEXTURE_2D_BIT - TEXTURE0_3D TEXTURE_3D_BIT - TEXTURE0_CUBE TEXTURE_CUBE_BIT - TEXTURE_RECT_BIT - - These tokens are only used for the ctx->Texture.Unit[i].Enabled and - ctx->Texture.Unit[i]._ReallyEnabled fields. Exactly 0 or 1 bits will - be set in _ReallyEnabled at any time! - - Q: "What's the purpose of Unit[i].Enabled vs Unit[i]._ReallyEnabled?" - A: The user can enable GL_TEXTURE_1D, GL_TEXTURE_2D, etc for any - texure unit all at once (an unusual thing to do). - OpenGL defines priorities that basically say GL_TEXTURE_2D has - higher priority than GL_TEXTURE_1D, etc. Also, just because a - texture target is enabled by the user doesn't mean we'll actually - use that texture! If a texture object is incomplete (missing mip- - map levels, etc) it's as if texturing is disabled for that target. - The _ReallyEnabled field will have a bit set ONLY if the texture - target is enabled and complete. This spares the driver writer from - examining a _lot_ of GL state to determine which texture target is - to be used. - - -2. Tnl tokens changes - - During the implementation of GL_NV_vertex_program some of the vertex - buffer code was changed. Specifically, the VERT_* bits defined in - tnl/t_context.h have been renamed to better match the conventions of - GL_NV_vertex_program. The old names are still present but obsolete. - Drivers should use the newer names. - - For example: VERT_RGBA is now VERT_BIT_COLOR0 and - VERT_SPEC_RGB is now VERT_BIT_COLOR1. - - - -3. Read/Draw Buffer changes - - The business of setting the current read/draw buffers in Mesa 4.0.x - was complicated. It's much simpler now in Mesa 4.1. - - Here are the changes: - - - Renamed ctx->Color.DrawDestMask to ctx->Color._DrawDestMask - - Removed ctx->Color.DriverDrawBuffer - - Removed ctx->Pixel.DriverReadBuffer - - Removed ctx->Color.MultiDrawBuffer - - Removed ctx->Driver.SetDrawBuffer() - - Removed swrast->Driver.SetReadBuffer(). - - Added ctx->Color._DrawDestMask - a bitmask of FRONT/BACK_LEFT/RIGHT_BIT - values to indicate the current draw buffers. - - Added ctx->Pixel._ReadSrcMask to indicate the source for pixel reading. - The value is _one_ of the FRONT/BACK_LEFT/RIGHT_BIT values. - - Added ctx->Driver.DrawBuffer() and ctx->Driver.ReadBuffer(). - These functions exactly correspond to glDrawBuffer and glReadBuffer calls. - Many drivers will set ctx->Driver.DrawBuffer = _swrast_DrawBuffer and - leave ctx->Draw.ReadBuffer NULL. - DRI drivers should implement their own function for ctx->Driver.DrawBuffer - and use it to set the current hardware drawing buffer. You'll probably - also want to check for GL_FRONT_AND_BACK mode and fall back to software. - Call _swrast_DrawBuffer() too, to update the swrast state. - - Added swrast->Driver.SetBuffer(). - This function should be implemented by all device drivers that use swrast. - Mesa will call it to specify the buffer to use for span reading AND - writing and point/line/triangle rendering. - There should be no confusion between current read or draw buffer anymore. - - Added swrast->CurrentBuffer to indicate which color buffer to read/draw. - Will be FRONT_LEFT_BIT, BACK_LEFT_BIT, FRONT_RIGHT_BIT or BACK_RIGHT_BIT. - This value is usually passed to swrast->Driver.SetBuffer(). - - -4. _mesa_create_context() changes. This function now takes a pointer to - a __GLimports object. The __GLimports structure contains function - pointers to system functions like fprintf(), malloc(), etc. - The _mesa_init_default_imports() function can be used to initialize - a __GLimports object. Most device drivers (like the DRI drivers) - should use this. - - -5. In tnl's struct vertex_buffer, the field "ProjectedClipCoords" - has been replaced by "NdcPtr" to better match the OpenGL spec's - terminology. - - -6. Since GL_EXT_stencil_two_side has been implemented, many of the - ctx->Stencil fields are now 2-element arrays. For example, - "GLenum Ref" is now "GLenum Ref[2]" The [0] elements are the front-face - values and the [1] elements are the back-face values. - ctx->Stencil.ActiveFace is 0 or 1 to indicate the current face for - the glStencilOp/Func/Mask() functions. - ctx->Stencil.TestTwoSide controls whether or not 1 or 2-sided stenciling - is enabled. - - -7. Removed ctx->Polygon._OffsetAny. Removed ctx->Polygon.OffsetMRD. - - -8. GLfloat / GLchan changes: - - - Changed ctx->Driver.ClearColor() to take GLfloat[4] instead of GLchan[4]. - ctx->Color.ClearColor is now GLfloat[4] too. - - Changed ctx->Driver.AlphaRef() to take GLfloat instead of GLchan. - - ctx->Color.AlphaRef is now GLfloat. - - texObj->BorderColor is now GLfloat[4]. texObj->_BorderChan is GLchan[4]. - - This is part of an effort to remove all GLchan types from core Mesa so - that someday we can support 8, 16 and 32-bit color channels dynamically - at runtime, instead of at compile-time. - - -9. GLboolean ctx->Tranform.ClipEnabled[MAX_CLIP_PLANES] has been replaced - by GLuint ctx->Transform.ClipPlanesEnabled. The later is a bitfield. - - -10. There's a new matrix_stack type in mtypes.h used for the Modelview, - Projection, Color and Texcoord matrix stacks. - - -11. The ctx->Current.* fields have changed a lot. Now, there's a - ctx->Current.Attrib[] array for all vertex attributes which matches - the NV vertex program conventions. - - ----------------------------------------------------------------------- -$Id: RELNOTES-4.1,v 1.1.1.5 2004/08/12 23:43:27 anholt Exp $ diff --git a/nx-X11/extras/Mesa/docs/RELNOTES-5.0 b/nx-X11/extras/Mesa/docs/RELNOTES-5.0 deleted file mode 100644 index f83e9e35b..000000000 --- a/nx-X11/extras/Mesa/docs/RELNOTES-5.0 +++ /dev/null @@ -1,85 +0,0 @@ - - Mesa 5.0 release notes - - November 13, 2002 - - PLEASE READ!!!! - - - -Introduction ------------- - -Mesa uses an even/odd version number scheme like the Linux kernel. -Even-numbered versions (such as 5.0) designate stable releases. -Odd-numbered versions (such as 4.1) designate new developmental releases. - -Mesa 5.0 is basically just a stabilization of Mesa 4.1. To see a list of -bug fixes, etc. see the VERSIONS file. - - - -New Features in Mesa 5.0 ------------------------- - -Mesa 5.0 supports OpenGL 1.4. Note Mesa's versioning convention: - - OpenGL Version Mesa Version - ------------------------------ - 1.0 1.x - 1.1 2.x - 1.2 3.x - 1.3 4.x - 1.4 5.x - -OpenGL 1.4 (and Mesa 5.0) incorporates the following OpenGL extensions as -standard features: - - GL_ARB_depth_texture - GL_ARB_shadow - GL_ARB_texture_env_crossbar - GL_ARB_texture_mirror_repeat - GL_ARB_window_pos - GL_EXT_blend_color - GL_EXT_blend_func_separate - GL_EXT_blend_logic_op - GL_EXT_blend_minmax - GL_EXT_blend_subtract - GL_EXT_fog_coord - GL_EXT_multi_draw_arrays - GL_EXT_point_parameters - GL_EXT_secondary_color - GL_EXT_stencil_wrap - GL_SGIS_generate_mipmap - - - -Device Driver Status --------------------- - -A number of Mesa's software drivers haven't been actively maintained for -some time. We rely on volunteers to maintain many of these drivers. -Here's the current status of all included drivers: - - -Driver Status ----------------------- --------------------- -XMesa (Xlib) implements OpenGL 1.4 -OSMesa (off-screen) implements OpenGL 1.4 -FX (3dfx Voodoo1/2) implements OpenGL 1.3 -SVGA implements OpenGL 1.3 -Wind River UGL implements OpenGL 1.3 -Windows/Win32 implements OpenGL 1.4 -DOS/DJGPP implements OpenGL 1.3 -GGI implements OpenGL 1.3 -DOS implements OpenGL 1.4 -BeOS needs updating (underway) -Allegro needs updating -D3D needs updating - -Note: supporting OpenGL 1.4 (vs. 1.3 or 1.2) usually only requires that the -driver call the _mesa_enable_1_4_extensions() function. - - ----------------------------------------------------------------------- -$Id: RELNOTES-5.0,v 1.1.1.5 2004/08/12 23:43:28 anholt Exp $ diff --git a/nx-X11/extras/Mesa/docs/RELNOTES-5.0.1 b/nx-X11/extras/Mesa/docs/RELNOTES-5.0.1 deleted file mode 100644 index d84b46464..000000000 --- a/nx-X11/extras/Mesa/docs/RELNOTES-5.0.1 +++ /dev/null @@ -1,46 +0,0 @@ - - Mesa 5.0.1 release notes - - March 30, 2003 - - - -Introduction ------------- - -Mesa uses an even/odd version number scheme like the Linux kernel. -Even-numbered versions (such as 5.0.x) designate stable releases. -Odd-numbered versions (such as 4.1.x) designate new developmental releases. - -Mesa 5.0.1 just fixes bugs found since the 5.0 release. See the VERSIONS -file for details. - - -Device Driver Status --------------------- - -A number of Mesa's software drivers haven't been actively maintained for -some time. We rely on volunteers to maintain many of these drivers. -Here's the current status of all included drivers: - - -Driver Status ----------------------- --------------------- -XMesa (Xlib) implements OpenGL 1.4 -OSMesa (off-screen) implements OpenGL 1.4 -FX (3dfx Voodoo1/2) implements OpenGL 1.3 -SVGA implements OpenGL 1.3 -Wind River UGL implements OpenGL 1.3 -Windows/Win32 implements OpenGL 1.4 -DJGPP implements OpenGL 1.4 -GGI implements OpenGL 1.3 -BeOS implements OpenGL 1.4 -Allegro needs updating -D3D needs updating - -Note: supporting OpenGL 1.4 (vs. 1.3 or 1.2) usually only requires that the -driver call the _mesa_enable_1_4_extensions() function. - - ----------------------------------------------------------------------- -$Id: RELNOTES-5.0.1,v 1.1.1.6 2004/08/12 23:43:28 anholt Exp $ diff --git a/nx-X11/extras/Mesa/docs/RELNOTES-5.0.2 b/nx-X11/extras/Mesa/docs/RELNOTES-5.0.2 deleted file mode 100644 index 3d3a5e5d9..000000000 --- a/nx-X11/extras/Mesa/docs/RELNOTES-5.0.2 +++ /dev/null @@ -1,46 +0,0 @@ - - Mesa 5.0.2 release notes - - September 5, 2003 - - - -Introduction ------------- - -Mesa uses an even/odd version number scheme like the Linux kernel. -Even-numbered versions (such as 5.0.x) designate stable releases. -Odd-numbered versions (such as 4.1.x) designate new developmental releases. - -Mesa 5.0.2 just fixes bugs found since the 5.0.1 release. See the VERSIONS -file for details. - - -Device Driver Status --------------------- - -A number of Mesa's software drivers haven't been actively maintained for -some time. We rely on volunteers to maintain many of these drivers. -Here's the current status of all included drivers: - - -Driver Status ----------------------- --------------------- -XMesa (Xlib) implements OpenGL 1.4 -OSMesa (off-screen) implements OpenGL 1.4 -FX (3dfx Voodoo1/2) implements OpenGL 1.3 -SVGA implements OpenGL 1.3 -Wind River UGL implements OpenGL 1.3 -Windows/Win32 implements OpenGL 1.4 -DJGPP implements OpenGL 1.4 -GGI implements OpenGL 1.3 -BeOS implements OpenGL 1.4 -Allegro needs updating -D3D needs updating - -Note: supporting OpenGL 1.4 (vs. 1.3 or 1.2) usually only requires that the -driver call the _mesa_enable_1_4_extensions() function. - - ----------------------------------------------------------------------- -$Id: RELNOTES-5.0.2,v 1.1.1.6 2004/08/12 23:43:28 anholt Exp $ diff --git a/nx-X11/extras/Mesa/docs/RELNOTES-5.1 b/nx-X11/extras/Mesa/docs/RELNOTES-5.1 deleted file mode 100644 index aed6e102b..000000000 --- a/nx-X11/extras/Mesa/docs/RELNOTES-5.1 +++ /dev/null @@ -1,279 +0,0 @@ - - Mesa 5.1 release notes - - December 17, 2003 - - PLEASE READ!!!! - - - -Introduction ------------- - -Mesa uses an even/odd version number scheme like the Linux kernel. -Even-numbered versions (such as 5.0) designate stable releases. -Odd-numbered versions (such as 5.1) designate new developmental releases. - - -Bug fixes ---------- -See the VERSIONS file for a list of bugs fixed in this release. - - - -New Features in Mesa 5.1 ------------------------- - -GL_ARB_vertex_program / GL_ARB_fragment_program - Michal Krol and Karl Rasche implemented these extensions. Thanks! - Be aware that there may be some rough edges and lurking bugs. - -GL_ATI_texture_env_combine3 extension - This adds a few new texture combine modes. - Contributed by Ian Romanick. - -GL_SGI_texture_color_table - Adds a color table lookup to the RGBA texture path. There's a separate - color table for each texture unit. - Contributed by Eric Plante. - -GL_NV_fragment_program - NVIDIA's fragment-level programming feature. - Possible lurking bugs: - - the DDX and DDY commands aren't fully tested - - there may be bugs in the parser - - the TEX and TXP instructions both do perspective correction - - the pack/unpack instructions may not be correct - -GL_EXT_depth_bounds_test - This extension adds a scissor-like test for the Z axis. It's used to - optimize stencil-volume shadow algorithms. - -GL_NV_light_max_exponent - Lifts the 128 limit for max light exponent. - -GL_EXT_texture_rectangle - Identical to GL_NV_texture_rectangle - -GL_ARB_occlusion_query - Useful for visibility-based culling. - -GL_ARB_texture_non_power_of_two - Removes the restriction that texture dimensions must be powers of two. - -GL_ARB_vertex_buffer_object - Allows server-side vertex arrays, optimized host/card data transfers, etc. - -GL_ARB_point_sprite - ARB-approved version of GL_NV_point_sprite. Basically allows textures - to be applied to points. - -GL_IBM_multimode_draw_arrays - Allows multiple vertex arrays to be drawn with one call, including arrays - of different types of primitives. - -GL_SUN_multi_draw_arrays - An alias for GL_EXT_multi_draw_arrays, standard in OpenGL 1.4. - -Faster glDrawPixels / glCopyPixels in X11 driver - If your X screen is 32bpp, glDrawPixels to the front color buffer will - be accelerated (via XPutImage()) if the image format is GL_BGRA and the - type is GL_UNSIGNED_BYTE. No raster operations, such as depth test, - blend, fog, etc. can be enabled. - - If your X screen is 16bpp, glDrawPixels to the front color buffer will - be accelerated (via XPutImage()) if the image format is GL_RGB and the - type is GL_UNSIGNED_SHORT_5_6_5. No raster operations, such as depth - test, blend, fog, etc. can be enabled. - - glCopyPixels() calls for the front color buffer will be accelerated - (via XCopyArea()) if no raster operations, such as depth test, blend, - fog, pixel zoom, etc. are enabled. - - The speed-up over typical software rendering is a factor of 10 for - glDrawPixels and 100 for glCopyPixels. - - -With the addition of GL_ARB_occlusion_query, GL_ARB_vertex_buffer_object, -GL_ARB_texture_non_power_of_two and GL_EXT_shadow_funcs, Mesa 5.1 supports -all the new features of OpenGL 1.5. Mesa 6.0 (the next stable release) -will advertise GL_VERSION = "1.5". - - - -Vertex/Fragment program debugger --------------------------------- - -GL_MESA_program_debug is an experimental extension to support -interactive debugging of vertex and fragment programs. See the -docs/MESA_program_debug.spec file for details. - -The bulk of the vertex/fragment program debugger is implemented -outside of Mesa. The GL_MESA_program_debug extension just has minimal -hooks for stopping running programs and inspecting programs. - -The progs/tests/debugger.c (only in CVS) program is an example of how -the extension can be used. Presently, the debugger code and demo code -is in the same file. Eventually the debugger code should be moved -into a reusable module. - -As it is now, the demo lets you set breakpoings in vertex/fragment -programs, single step, and print intermediate register values. It's -basically just a proof of concept. - - - -Directory tree reorganization ------------------------------ - -The directory structure for Mesa has been overhauled to improve its layout. -All source code for Mesa, GLU, GLUT, etc is now under the src/ directory -in appropriate subdirectories. - -The Mesa source code and drivers has been reorganized under src/mesa/. - -All demonstration programs and tests are now in subdirectories under progs/. - - - -Build System Changes --------------------- - -The GNU automake/autoconf support has been removed. As it was, it seldom -worked on anything but Linux. The Mesa developers aren't big fans of -automake/autoconf/libtool and didn't have the time to maintain it. -If someone wants to contribute new automake/autoconf support (and is -willing to maintain it), it may be re-incorporated into Mesa, subject -to some requirements. - -The "old style" makefile system has been updated: - 1. Make-config has been trimmed down to fewer, modern configurations. - 2. Most of the bin/mklib.* scripts have been rolled into a new "mklib" - script that works on all sorts of systems. There are probably some - bugs in it, but it's been tested on Linux, SunOS 5.8 and IRIX 6.5. - Improvements/contributes are greatly appreciated. - 3. The Makefile.X11 files have been cleaned up in various ways - - - -Source File Changes -------------------- - -The mmath.[ch] files are obsolete. Their contents have been moved -into the imports.[ch] and macros.[ch] files. - -The files related to vertex and fragment programming have changed. -Old files: - vpexec.[ch] - vpparse.[ch] - vpstate.[ch] -New files: - program.[ch] - generic ARB/NV program code - arbprogram.[ch] - ARB program API functions - arbfragparse.[ch] - ARB fragment program parsing - arbvertparse.[ch] - ARB vertex program parsing - arbparse.[ch] - ARB vertex/fragment parsing - arbparse_syn.h - vertex/fragment program syntax - nvprogram.[ch] - NV program API functions - nvvertprog.h - NV vertex program definitions - nvfragprog.h - NV fragment program definitions - nvvertparse.[ch] - NV vertex program parser - nvfragparse.[ch] - NV fragment program parser - nvvertexec.[ch] - NV vertex program execution - swrast/s_nvfragprog.[ch] - NV fragment program execution - -The files related to per-vertex handling have changed. -Old files: - tnl/t_eval_api.c - old per-vertex code - tnl/t_imm_alloc.c - old per-vertex code - tnl/t_imm_api.c - old per-vertex code - tnl/t_imm_debug.c - old per-vertex code - tnl/t_imm_dlist.c - old per-vertex code - tnl/t_imm_elt.c - old per-vertex code - tnl/t_imm_eval.c - old per-vertex code - tnl/t_imm_exec.c - old per-vertex code - tnl/t_imm_fixup.c - old per-vertex code - tnl/t_vtx_sse.c - old per-vertex code - tnl/t_vtx_x86.c - old per-vertex code -New files: - tnl/t_save_api.c - new per-vertex code - tnl/t_save_loopback.c - new per-vertex code - tnl/t_save_playback.c - new per-vertex code - tnl/t_vtx_eval.c - old per-vertex code - -Other new files: - bufferobj.[ch] - GL_ARB_vertex_buffer_object functions - version.h - defines the Mesa version info - -Other removed files: - swrast/s_histogram.[ch] - moved into src/histogram.c - - - -Other Changes -------------- - -The ctx->Driver.CreateTexture function has been removed - it wasn't used. - -New device driver hook functions: - NewTextureObject - used to allocate struct gl_texture_objects - NewTextureImage - used to allocate struct gl_texture_images - -New ctx->Texture._EnabledCoordUnits field: - With the addition of GL_NV_fragment_program we may need to interpolate - various sets of texture coordinates even when the corresponding texture - unit is not enabled. That is, glEnable(GL_TEXTURE_xD) may never get - called but we still may have to interpolate texture coordinates across - triangles so that the fragment program will get them. - This new field indicates which sets of texture coordinates are needed. - If a bit is set in the ctx->Texture._EnabledUnits bitmask is set, the - same bit MUST be set in ctx->Texture._EnabledCoordUnits. - -The ctx->_TriangleCaps field is deprecated. - Instead of testing the DD_* bits in _TriangleCaps, you should instead - directly test the relevant state variables, or use one of the helper - functions like NEED_SECONDARY_COLOR() at the bottom of context.h - While testing _TriangleCaps bits was fast, it was kludgey, and setting - the bits in the first place could be error prone. - -New vertex processing code. - The code behind glBegin, glEnd, glVertex, glNormal, etc. has been - totally rewritten. It's a cleaner implementation now and should use - less memory. (Keith) - - - -To Do ------ -Add screen-awareness to fakeglx.c - - - - -Device Driver Status --------------------- - -A number of Mesa's software drivers haven't been actively maintained for -some time. We rely on volunteers to maintain many of these drivers. -Here's the current status of all included drivers: - - -Driver Status ----------------------- --------------------- -XMesa (Xlib) implements OpenGL 1.4 -OSMesa (off-screen) implements OpenGL 1.4 -FX (3dfx Voodoo1/2) implements OpenGL 1.3 -SVGA implements OpenGL 1.3 -Wind River UGL implements OpenGL 1.3 -Windows/Win32 implements OpenGL 1.4 -DJGPP implements OpenGL 1.4 -GGI implements OpenGL 1.3 -BeOS implements OpenGL 1.4 -Allegro needs updating -D3D needs updating - -Note: supporting OpenGL 1.4 (vs. 1.3 or 1.2) usually only requires that the -driver call the _mesa_enable_1_4_extensions() function. - - ----------------------------------------------------------------------- diff --git a/nx-X11/extras/Mesa/docs/RELNOTES-6.0 b/nx-X11/extras/Mesa/docs/RELNOTES-6.0 deleted file mode 100644 index c154472af..000000000 --- a/nx-X11/extras/Mesa/docs/RELNOTES-6.0 +++ /dev/null @@ -1,87 +0,0 @@ - - Mesa 6.0 release notes - - January 16, 2004 - - PLEASE READ!!!! - - - -Introduction ------------- - -Mesa uses an even/odd version number scheme like the Linux kernel. -Odd numbered versions (such as 5.1) designate new developmental releases. -Even numbered versions (such as 6.0) designate stable releases. - -Mesa version 6.0 signifies two things: - - 1. A stabilization of the 5.1 development release - 2. Implementation of the OpenGL 1.5 specification. When you query - glGetString(GL_VERSION) "1.5" will be returned (as long as the - driver supports all the required features). - - -Note that the Mesa major version number is incremented with the OpenGL -minor version number: - - Mesa 1.x == OpenGL 1.0 - Mesa 2.x == OpenGL 1.1 - Mesa 3.x == OpenGL 1.2 - Mesa 4.x == OpenGL 1.3 - Mesa 5.x == OpenGL 1.4 - Mesa 6.x == OpenGL 1.5 - - - -New Features ------------- - -Mesa 5.1 already had all the new features of OpenGL 1.5, implemented as -extensions. These extensions were simply promoted to standard features: - - GL_ARB_occlusion_query extension - GL_ARB_texture_non_power_of_two extension - GL_ARB_vertex_buffer_object extension - GL_EXT_shadow_funcs - - - -Device Drivers --------------- - -Mesa advertises itself as either OpenGL 1.2 or OpenGL 1.3 depending on -the device driver. For example, if the driver enables all the ARB -extensions which are part of OpenGL 1.3 then glGetString(GL_VERSION) -will return "1.3". Otherwise, it'll return "1.2". - -A number of Mesa's software drivers haven't been actively maintained for -some time. We rely on volunteers to maintain many of the drivers. -Here's the current status of all included drivers: - - -Driver Status ----------------------- --------------------- -XMesa (Xlib) implements OpenGL 1.5 -OSMesa (off-screen) implements OpenGL 1.5 -FX (3dfx Voodoo1/2) implements OpenGL 1.3 -SVGA implements OpenGL 1.3 -Wind River UGL implements OpenGL 1.3 -Windows/Win32 implements OpenGL 1.5 -DJGPP implements OpenGL 1.5 -GGI implements OpenGL 1.3 -BeOS implements OpenGL 1.5 -Allegro needs updating -D3D needs updating - - - - -Other Changes -------------- - -See the VERSIONS file for more details about bug fixes, etc. in Mesa 6.0. - - ----------------------------------------------------------------------- -$Id: RELNOTES-6.0,v 1.1.1.3 2004/08/12 23:43:28 anholt Exp $ diff --git a/nx-X11/extras/Mesa/docs/RELNOTES-6.0.1 b/nx-X11/extras/Mesa/docs/RELNOTES-6.0.1 deleted file mode 100644 index 063d6f2d4..000000000 --- a/nx-X11/extras/Mesa/docs/RELNOTES-6.0.1 +++ /dev/null @@ -1,50 +0,0 @@ - - Mesa 6.0.1 release notes - - April 2, 2003 - - - -Introduction ------------- - -Mesa uses an even/odd version number scheme like the Linux kernel. -Even-numbered versions (such as 6.0.x) designate stable releases. -Odd-numbered versions (such as 6.1.x) designate new developmental releases. - -Mesa 6.0.1 just fixes bugs found since the 6.0 release. See the VERSIONS -file for details. - - - -Device Drivers --------------- - -Mesa advertises itself as supporting OpenGL 1.2, 1.3, 1.4 or 1.5 -depending on the device driver's capabilities. For example, if the -driver enables all the ARB extensions which are part of OpenGL 1.5 -then glGetString(GL_VERSION) will return "1.5". Otherwise, it'll -return "1.4" or the next lower version that implements all required -functionality. - -A number of Mesa's software drivers haven't been actively maintained for -some time. We rely on volunteers to maintain many of the drivers. -Here's the current status of all included drivers: - -Driver Status ----------------------- --------------------- -XMesa (Xlib) implements OpenGL 1.5 -OSMesa (off-screen) implements OpenGL 1.5 -FX (3dfx Voodoo1/2) implements OpenGL 1.3 -SVGA implements OpenGL 1.3 -Wind River UGL implements OpenGL 1.3 -Windows/Win32 implements OpenGL 1.5 -DJGPP implements OpenGL 1.5 -GGI implements OpenGL 1.3 -BeOS implements OpenGL 1.5 -Allegro needs updating -D3D needs updating - - ----------------------------------------------------------------------- -$Id: RELNOTES-6.0.1,v 1.1.1.3 2004/08/12 23:43:28 anholt Exp $ diff --git a/nx-X11/extras/Mesa/docs/RELNOTES-6.1 b/nx-X11/extras/Mesa/docs/RELNOTES-6.1 deleted file mode 100644 index 3ae3f02c8..000000000 --- a/nx-X11/extras/Mesa/docs/RELNOTES-6.1 +++ /dev/null @@ -1,112 +0,0 @@ - - Mesa 6.1 release notes - - August 18, 2004 - - PLEASE READ!!!! - - - -Introduction ------------- - -Mesa uses an even/odd version number scheme like the Linux kernel. -Odd numbered versions (such as 6.1) designate new developmental releases. -Even numbered versions (such as 6.0) designate stable releases. - - -New Features ------------- - -Half-precision floating point (GLhalf) pixel formats are supported -in Mesa, but the feature isn't exposed yet since the ARB extension -hasn't been finalized yet. - - -Texture image handling ----------------------- - -The code which implements image conversion, pixel transfer ops, etc -for glTexImage commands has been rewritten. - -Now the gl_texture_format struct has a new StoreImage function -pointer. Each texture format must implement this function. The -function is totally responsible for converting the user's texture -image into the specific format. A few helper functions makes this -relatively simple. - -Overall, the code is much simpler, cleaner and easier to work with -now. Adding new texture formats is straight-forward and there's no -longer any distinction between "hardware" and "software" formats. - -Finally, the code for compressed texture images has been reorganized -as well. - -Removed files: - texutil.c - texutil.h - texutil_tmp.h - -New files: - texcompress_s3tc.c - texcompress_fxt1.c - - - -Driver / context changes ------------------------- - -The _mesa_create_context() and _mesa_initialize_context() function -parameters have changed. They now take a pointer to a struct -dd_function_table. Drivers can initialize this table by calling -_mesa_init_driver_functions(). Drivers should then plug in the special -functions they implement. In particular, the ctx->Driver.NewTextureObject -pointer _must_ be set so that the default texture objects created in -_mesa_create/initialize_context() are correctly built. - -The _mesa_init_driver_functions() function allows a lot of redundant code -to be removed from the device drivers (such as initializing -ctx->Driver.Accum to point to _swrast_Accum). Adding new functions to -the dd_function_table can be done with less hassle since the pointer can -be initialized in _mesa_init_driver_functions() rather than in _all_ the -drivers. - - -Device Drivers --------------- - -Mesa advertises itself as supporting OpenGL 1.2, 1.3, 1.4 or 1.5 -depending on the device driver's capabilities. For example, if the -driver enables all the ARB extensions which are part of OpenGL 1.5 -then glGetString(GL_VERSION) will return "1.5". Otherwise, it'll -return "1.4" or the next lower version that implements all required -functionality. - -A number of Mesa's software drivers haven't been actively maintained for -some time. We rely on volunteers to maintain many of the drivers. -Here's the current status of all included drivers: - -Driver Status ----------------------- --------------------- -XMesa (Xlib) implements OpenGL 1.5 -OSMesa (off-screen) implements OpenGL 1.5 -Glide (3dfx Voodoo1/2) implements OpenGL 1.3 -SVGA implements OpenGL 1.3 -Wind River UGL implements OpenGL 1.3 -Windows/Win32 implements OpenGL 1.5 -DJGPP implements OpenGL 1.5 -GGI implements OpenGL 1.3 -BeOS implements OpenGL 1.5 -Allegro needs updating -D3D needs updating - - - -Other Changes -------------- - -See the VERSIONS file for more details about bug fixes, etc. in Mesa 6.1. - - ----------------------------------------------------------------------- -$Id: RELNOTES-6.1,v 1.1.1.4 2004/08/28 04:27:00 kem Exp $ diff --git a/nx-X11/extras/Mesa/docs/RELNOTES-6.2 b/nx-X11/extras/Mesa/docs/RELNOTES-6.2 deleted file mode 100644 index ad931d065..000000000 --- a/nx-X11/extras/Mesa/docs/RELNOTES-6.2 +++ /dev/null @@ -1,52 +0,0 @@ - - Mesa 6.2 release notes - - October 2, 2004 - - PLEASE READ!!!! - - - -Introduction ------------- - -Mesa uses an even/odd version number scheme like the Linux kernel. -Odd numbered versions (such as 6.1) designate new developmental releases. -Even numbered versions (such as 6.2) designate stable releases. - - -This release primarily just fixes bugs found in the Mesa 6.1 release. -See the VERSIONS file for details. - - -ToDo: PBO for polygon stipple, convolution filter, etc. - - - -Known Issues ------------- - -The GL_EXT_pixel_buffer_object extension isn't fully implemented for -functions like glPolygonStipple, glConvolutionFilter, glColorTable, -etc. The important functions like glRead/DrawPixels, glTex[Sub]Image, -and glBitmap work with PBOs. - - - -Driver Status ----------------------- --------------------- -XMesa (Xlib) implements OpenGL 1.5 -OSMesa (off-screen) implements OpenGL 1.5 -Glide (3dfx Voodoo1/2) implements OpenGL 1.3 -SVGA implements OpenGL 1.3 -Wind River UGL implements OpenGL 1.3 -Windows/Win32 implements OpenGL 1.5 -DJGPP implements OpenGL 1.5 -GGI implements OpenGL 1.3 -BeOS implements OpenGL 1.5 -Allegro needs updating -D3D needs updating - - ----------------------------------------------------------------------- -$Id: RELNOTES-6.2,v 1.1.1.2 2005/07/31 16:45:50 ajax Exp $ diff --git a/nx-X11/extras/Mesa/docs/RELNOTES-6.2.1 b/nx-X11/extras/Mesa/docs/RELNOTES-6.2.1 deleted file mode 100644 index ec33f9113..000000000 --- a/nx-X11/extras/Mesa/docs/RELNOTES-6.2.1 +++ /dev/null @@ -1,50 +0,0 @@ - - Mesa 6.2.1 release notes - - December 9, 2004 - - PLEASE READ!!!! - - - -Introduction ------------- - -Mesa uses an even/odd version number scheme like the Linux kernel. -Odd numbered versions (such as 6.1) designate new developmental releases. -Even numbered versions (such as 6.2.x) designate stable releases. - - -This release primarily just fixes bugs found in the Mesa 6.2 release. -See the VERSIONS file for details. - - - -Known Issues ------------- - -The GL_EXT_pixel_buffer_object extension isn't fully implemented for -functions like glPolygonStipple, glConvolutionFilter, glColorTable, -etc. The important functions like glRead/DrawPixels, glTex[Sub]Image, -and glBitmap work with PBOs. This has been fixed for Mesa 6.3. - - - - -Driver Status ----------------------- --------------------- -XMesa (Xlib) implements OpenGL 1.5 -OSMesa (off-screen) implements OpenGL 1.5 -Glide (3dfx Voodoo1/2) implements OpenGL 1.3 -SVGA implements OpenGL 1.3 -Wind River UGL implements OpenGL 1.3 -Windows/Win32 implements OpenGL 1.5 -DJGPP implements OpenGL 1.5 -GGI implements OpenGL 1.3 -BeOS implements OpenGL 1.5 -Allegro needs updating -D3D needs updating - - ----------------------------------------------------------------------- -$Id: RELNOTES-6.2.1,v 1.1.1.2 2005/07/31 16:45:45 ajax Exp $ diff --git a/nx-X11/extras/Mesa/docs/RELNOTES-6.3 b/nx-X11/extras/Mesa/docs/RELNOTES-6.3 deleted file mode 100644 index c61fa98a6..000000000 --- a/nx-X11/extras/Mesa/docs/RELNOTES-6.3 +++ /dev/null @@ -1,115 +0,0 @@ - - Mesa 6.3 release notes - - July 20, 2005 - - PLEASE READ!!!! - - - -Introduction ------------- - -Mesa uses an even/odd version number scheme like the Linux kernel. -Odd numbered versions (such as 6.3) designate new developmental releases. -Even numbered versions (such as 6.2) designate stable releases. - - - -New Features ------------- - -GL_ARB_draw_buffers - allows a fragment program to write to a number of - separate color buffers, instead of just one. - -GL_OES_read_format - allows one to query the fastest glReadPixels format - and datatype. - -GL_ARB_pixel_buffer_object - buffer objects for pixel read/write functions. - -GL_EXT_framebuffer_object - allows render-to-texture and provides a - window-system indepedent Pbuffer facility. - The Mesa CVS tree contains a couple tests of this extension. - -DirectFB driver, contributed by Claudio Ciccani. See docs/README.directfb -for details. - - - -Vertex/Fragment Program PRINT Instruction ------------------------------------------ - -The GL_NV_vertex_program and GL_NV_fragment_program languages have been -extended with a PRINT instruction. - - - -glDeleteTextures(), glDeletePrograms() and glDeleteBuffers() Changed --------------------------------------------------------------------- - -To match the behaviour of other OpenGL implementations, glDeleteTextures, -glDeletePrograms and glDeleteBuffers have been modified so that: - - * The named texture/program/buffer ID is immediately freed for re-use. - - * The actual texture object, program or buffers isn't really deleted until - it is no longer bound in any rendering context (the reference count - is zero). - -Previously, the texture/program/buffer ID wasn't freed until the object -was really deleted. - -Note that textures, programs and buffers can be shared by several rendering -contexts so they can't be deleted until they're unbound in _all_ contexts. - - - -GL_EXT_framebuffer_object changes ---------------------------------- - -Implementing this extension involved changing a lot of code (for the better). - -The gl_framebuffer object now a collection of gl_renderbuffer objects. -Renderbuffers may store colors, stencil indices, or depth values. The -gl_framebuffer and gl_renderbuffer types are object-oriented in design. - -All the old RGB, color index, stencil and depth-related span functions for -reading/writing pixels from/to buffers has changed. Now, all pixels are -read/written through a set of common renderbuffer functions (methods). - -Most device drivers have been updated for these changes, but some haven't. - - - -To Do (someday) items ---------------------- - Switch to freeglut - Increase MAX_DRAWBUFFERS - driver hooks for BeginQuery/EndQuery - - - -Miscellaneous -------------- - -The main/get.c file is now generated with a Python script (get_gen.py). - - - -Driver Status ----------------------- --------------------- -XMesa (Xlib) implements OpenGL 1.5 -OSMesa (off-screen) implements OpenGL 1.5 -Glide (3dfx Voodoo1/2) implements OpenGL 1.3 -SVGA implements OpenGL 1.3 -Wind River UGL implements OpenGL 1.3 -Windows/Win32 implements OpenGL 1.5 -DJGPP implements OpenGL 1.5 -GGI implements OpenGL 1.3 -BeOS implements OpenGL 1.5 -Allegro needs updating -D3D needs updating - - ----------------------------------------------------------------------- -$Id: RELNOTES-6.3,v 1.1.1.1 2005/07/31 16:45:49 ajax Exp $ diff --git a/nx-X11/extras/Mesa/docs/RELNOTES-6.3.1 b/nx-X11/extras/Mesa/docs/RELNOTES-6.3.1 deleted file mode 100644 index 7d2e4d030..000000000 --- a/nx-X11/extras/Mesa/docs/RELNOTES-6.3.1 +++ /dev/null @@ -1,49 +0,0 @@ - - Mesa 6.3.1 release notes - - July XX, 2005 - - PLEASE READ!!!! - - - -Introduction ------------- - -Mesa uses an even/odd version number scheme like the Linux kernel. -Odd numbered versions (such as 6.3) designate new developmental releases. -Even numbered versions (such as 6.2) designate stable releases. - - - -DRI drivers ------------ - -This release includes the DRI drivers and GLX code for hardware rendering. - - - -Bug fixes ---------- - -Bugs fixed in 6.3.1 are listed in the VERSIONS file. - - - -Driver Status ----------------------- --------------------- -XMesa (Xlib) implements OpenGL 1.5 -OSMesa (off-screen) implements OpenGL 1.5 -Glide (3dfx Voodoo1/2) implements OpenGL 1.3 -SVGA implements OpenGL 1.3 -Wind River UGL implements OpenGL 1.3 -Windows/Win32 implements OpenGL 1.5 -DJGPP implements OpenGL 1.5 -GGI implements OpenGL 1.3 -BeOS implements OpenGL 1.5 -Allegro needs updating -D3D needs updating - - ----------------------------------------------------------------------- -$Id: RELNOTES-6.3.1,v 1.1.1.1 2005/07/31 16:45:45 ajax Exp $ diff --git a/nx-X11/extras/Mesa/docs/RELNOTES-6.3.2 b/nx-X11/extras/Mesa/docs/RELNOTES-6.3.2 deleted file mode 100644 index 7cdb08131..000000000 --- a/nx-X11/extras/Mesa/docs/RELNOTES-6.3.2 +++ /dev/null @@ -1,37 +0,0 @@ - - Mesa 6.3.2 Release Notes - - August 19, 2005 - - - -Introduction ------------- - -Mesa uses an even/odd version number scheme like the Linux kernel. -Odd numbered versions (such as 6.3) designate new developmental releases. -Even numbered versions (such as 6.2) designate stable releases. - - -6.3.2 is primarily a bug-fix release. See the VERSIONS file for details. - - - -Driver Status ----------------------- ---------------------- -DRI drivers varies with the driver -XMesa (Xlib) implements OpenGL 1.5 -OSMesa (off-screen) implements OpenGL 1.5 -Glide (3dfx Voodoo1/2) implements OpenGL 1.3 -SVGA implements OpenGL 1.3 -Wind River UGL implements OpenGL 1.3 -Windows/Win32 implements OpenGL 1.5 -DJGPP implements OpenGL 1.5 -GGI implements OpenGL 1.3 -BeOS implements OpenGL 1.5 -Allegro needs updating -D3D needs updating - - ----------------------------------------------------------------------- -$Id: RELNOTES-6.3.2,v 1.1.1.1 2005/10/18 02:51:43 kem Exp $ diff --git a/nx-X11/extras/Mesa/docs/RELNOTES-6.4 b/nx-X11/extras/Mesa/docs/RELNOTES-6.4 deleted file mode 100644 index b9ab4975e..000000000 --- a/nx-X11/extras/Mesa/docs/RELNOTES-6.4 +++ /dev/null @@ -1,50 +0,0 @@ - - Mesa 6.4 Release Notes - - October 24, 2005 - - - -Introduction ------------- - -Mesa uses an even/odd version number scheme like the Linux kernel. -Odd numbered versions (such as 6.3) designate new developmental releases. -Even numbered versions (such as 6.4) designate stable releases. - - -6.4 is a bug-fix release. See the VERSIONS file for details. - - - -GLUT tarball ------------- - -Starting with 6.4, the GLUT library sources are distributed in a separate -tarball. This was done at the request of Linux distro vendors who prefer -to use freeglut. - - - - -Driver Status ----------------------- ---------------------- -DRI drivers varies with the driver -XMesa (Xlib) implements OpenGL 1.5 -OSMesa (off-screen) implements OpenGL 1.5 -Windows/Win32 implements OpenGL 1.5 -Glide (3dfx Voodoo1/2) requires updates -SVGA requires updates -DJGPP requires updates -GGI requires updates -BeOS requires updates -Allegro requires updates -D3D requires updates - -The drivers which require updates mostly need to be updated to work -with the new gl_renderbuffer / gl_framebuffer infrastructure introduced -in Mesa 6.3. - - ----------------------------------------------------------------------- -$Id: RELNOTES-6.4,v 1.1.1.2 2005/11/09 01:13:43 kem Exp $ diff --git a/nx-X11/extras/Mesa/docs/RELNOTES-6.4.1 b/nx-X11/extras/Mesa/docs/RELNOTES-6.4.1 deleted file mode 100644 index 0386f6026..000000000 --- a/nx-X11/extras/Mesa/docs/RELNOTES-6.4.1 +++ /dev/null @@ -1,47 +0,0 @@ - - Mesa 6.4.1 Release Notes - - -Introduction ------------- - -Mesa uses an even/odd version number scheme like the Linux kernel. -Odd numbered versions (such as 6.3) designate new developmental releases. -Even numbered versions (such as 6.4) designate stable releases. - - -6.4.1 is a bug-fix release. See the VERSIONS file for details. - - - -GLUT tarball ------------- - -Starting with 6.4, the GLUT library sources are distributed in a separate -tarball. This was done at the request of Linux distro vendors who prefer -to use freeglut. - - - - -Driver Status ----------------------- ---------------------- -DRI drivers varies with the driver -XMesa (Xlib) implements OpenGL 1.5 -OSMesa (off-screen) implements OpenGL 1.5 -Windows/Win32 implements OpenGL 1.5 -Glide (3dfx Voodoo1/2) requires updates -SVGA requires updates -DJGPP requires updates -GGI requires updates -BeOS requires updates -Allegro requires updates -D3D requires updates - -The drivers which require updates mostly need to be updated to work -with the new gl_renderbuffer / gl_framebuffer infrastructure introduced -in Mesa 6.3. - - ----------------------------------------------------------------------- -$Id: RELNOTES-6.4.1,v 1.1.1.1 2005/12/01 03:11:29 kem Exp $ diff --git a/nx-X11/extras/Mesa/docs/VERSIONS b/nx-X11/extras/Mesa/docs/VERSIONS deleted file mode 100644 index 52d394bd4..000000000 --- a/nx-X11/extras/Mesa/docs/VERSIONS +++ /dev/null @@ -1,1423 +0,0 @@ - - -Mesa Version History -==================== - -1.0 beta February 1995 - Initial release - -1.1 beta March 4, 1995 - Changes: - faster point and line drawing (2x faster) - more systems supported, better Makefiles - Renamed lib*.a files to avoid collisions - many small bug fixes - New: - pseudo-GLX functions added - new implementation of evaluators (eval2.c) - GLUT support - -1.1.1 beta March 7, 1995 - Changes: - Reverted from eval2.c to eval.c due to FPE on Linux - more speed improvements - more Makefile changes - -1.1.2 beta March 14, 1995 - New: - implementation of SGI's blending extensions - glXUseXFont implemented - added MESA_DEBUG environment variable support - Changes: - Using eval2.c again - more FPE-prevention checks (0-length normals are OK) - a few small bug fixes - much faster pixel logic ops! - faster transformation arithmetic - -1.1.3 beta March 31, 1995 - New: - gluScaleImage() and gluBuild2DMipMaps() implemented - Mesa widgets for Xt/Motif - blendEXT demos - added environment variables for selecting visuals - Changes: - almost all GLUT demos work correctly now - faster X device driver functions - more bug fixes - -1.1.4 beta April 20, 1995 - Bug fixes: - - missing #define SEEK_SET in src-tk/image.c - - compile glShadeModel into display lists - - fixed pow() domain error in src/light.c - - fixed "flickering bitmaps" in double buffer mode - - fixed tk.h and aux.h for C++ - - state of LIGHT_MODEL_LOCAL_VIEWER was inverted - New features: - - MUCH, MUCH nicer dithering in 8-bit RGB mode - - updated widgets and widget demos - - Implemented GLXPixmap functions - - Added GLU 1.1 and GLX 1.1 functions - - Changed the X/Mesa interface API, more versatile - - Implemented gluPartialDisk() - -1.2 May 22, 1995 - Bug fixes: - - IRIX 4.x makefile problem - - modified tk to share root colormap as needed - - gluLookAt normalization problem - - suppress Expose, NoExpose events in swapbuffers - - glBitmap() and glDrawPixels() clipping - New features: - - GL_BLEND, GL_MODULATE, GL_DECAL, and GL_REPLACE_EXT texture - modes implemented - - texture maps stored more efficiently - - texture maps can be compiled into display lists - - Bogdan Sikorski's GLU polygon tesselation code - - Linas Vepstas's sweep and extrusion library - - glXCreateContext()'s shareList parameter works as it's supposed to. - XMesaCreateContext() updated to accept a shareList parameter too. - - Mesa can be compiled with real OpenGL .h files - - MESA_BACK_BUFFER environment variable - - better GLX error checking - -1.2.1 June 22, 1995 - Bug fixes: - - X/Mesa double buffer window resize crash - - widgets now pass PointerMotion events - - X/Mesa incorrect default clear color and drawing color - - more robust X MIT-SHM support in X/Mesa - - glTexImage( format=GL_LUMINANCE ) didn't work - - GL_LINE mode polygons with line width > 1.0 could cause a crash - - numerous feedback bugs - - glReadPixels() from depth buffer was wrong - - error prone depth and stencil buffer allocation - New features: - - Preliminary Microsoft Windows driver - - Implemented a number of missing functions: glEvalCoord[12][df]v(), - glGet...(), etc. - - Added a few missing symbols to gl.h and glu.h - - Faster rendering of smooth-shaded, RGBA, depth-buffered polygons. - - Faster rendering of lines when width=2.0 - - Stencil-related functions now work in display lists - Changes: - - renamed aux.h as glaux.h (MS-DOS names can't start with aux) - - most filenames are in 8.3 format to accomodate MS-DOS - - use GLubytes to store arrays of colors instead of GLints - -1.2.2 August 2, 1995 - New features: - - texture mapped points and lines - - NURBS! (but not 100% complete) - - viewports may safely extend beyond window boundaries - - MESA_PRIVATE_CMAP environment variable - - Grayscale X display support - - two new demos: demos/gears.c and demos/shadow.c - - MachTen for Macintosh configuration - Bug fixes: - - glGet*(GL_DEPTH_BITS) returned bytes, not bits - - point, line, and bitmap rasterization suffered from roundoff errors - - fixed a division by zero error in line clippping - - occasional wrong default background color really fixed! - - glDepthFunc(GL_ALWAYS) with glDepthMask(GL_FALSE) didn't work - - gluBuild2DMipmaps malloc problem fixed - - view volume clipping of smooth shaded lines resulted in bad colors - Changes: - - new visual selection method in glXChooseVisual() - - improved GLU quadric functions - - call XSync for glFinish and XFlush for glFlush - - glVertex() calls now use a function pointer to avoid conditionals - - removed contrib directory from Mesa tar file (available on ftp site) - - AIX shared library support - - Removed GLUenum type as it's not in OpenGL - -1.2.3 September 26, 1995 - New features: - - Mesa header files now equivalent to SGI OpenGL headers - - Support for HP's Color Recovery dithering displays - - Faster vertex transformation - - Faster raster operations into X windows under certain conditions - - New configurations: HP w/ shared libs, Ultrix w/ GCC, Data General - - 4-bit visuals now supported - Bug fixes: - - glScissor bug fixed - - round-off errors in clipping lines against clip planes fixed - - byte swapping between hosts and display servers implemented - - glGetError() can be called without a current rendering context - - problem with accidentally culled polygons is fixed - - fixed some widget compilation problems - -1.2.4 November 17, 1995 - New features: - - More speed improvements (lighting, fogging, polygon drawing) - - Window system and OS-independent off-screen rendering - - Preliminary Fortran bindings - - glPolygonOffsetEXT implemented - - glColorMask and glIndexMask now fully implemented - - glPixelZoom implemented - - display lists fully implemented - - gamma correction - - dithering in 8-bit TrueColor/DirectColor visuals - Changes: - - Improved device driver interface - - tk.h renamed to gltk.h to avoid conflicts with Tcl's Tk - - Dithering support moved from core into device driver - Bug fixes: - - glEnable/Disable( GL_LIGHTING ) didn't always take effect - - glReadPixels byte swapping was broken - - glMaterial with pname==GL_AMBIENT_AND_DIFFUSE was broken - - duplicate glColor4b() prototype in GL/gl.h removed - - stripes in wave -ci demo fixed - - GL_LINEAR_MIPMAP_NEAREST had wrong value - - bugs in HP Color Recovery support fixed - - fixed bug when blending lines, points, bitmaps outside of window - -1.2.5 November 30, 1995 - New Features: - - updated MS Windows driver - - new implementation of StaticGray/GrayScale visual support - Bug fixes: - - pixelzooming with gamma correction or blending didn't work - - HP color recovery visual wasn't being picked by glXChooseVisual - - glClear didn't always observe glColorMask changes - - olympic and offset demos didn't compile on some Suns - - texcoord clamping wasn't correct - - a polygon optimization introduced an occasional sampling problem - -1.2.6 January 26, 1996 - New Features: - - faster line and polygon rendering under certain conditions. See - Performance Tips 9 and 10 in README - - profiling - - lighting is a bit faster - - better perspective corrected texture mapping - - Amiga AmiWin (X11) support - - preliminary Linux SVGA driver - Changes: - - now using a 16-bit depth buffer, faster, smaller - - GL_NORMALIZE is disabled by default - Bug fixes: - - projective texture mapping - - fixed a memory leak in the context destroy function - - GL_POLYGON with less than 3 vertices caused a crash - - glGet*() returned wrong result for GL_INDEX_MODE - - reading pixels from an unmapped X window caused a BadMatch error - -1.2.7 March 5, 1996 - New: - - faster lighting - - faster 16-bit TrueColor rendering on Linux - - faster 32-bit TrueColor rendering on Linux, HP, IBM - - non-depth-buffered XImage polygons are faster - - vertex array extension - - software alpha planes - - updated Macintosh driver - - new NeXT driver - - GLU quadric functions generate texture coordinates - - reflect.c demo - reflective, textured surface demo - Changes: - - gamma correction code moved into the X driver for better performance - Bug fixes: - - multiple glClipPlane()'s didn't work reliably - - glPolygonMode() didn't always work - - glCullFace( GL_FRONT_AND_BACK ) didn't work - - texture mapping with gamma correction was buggy - - floating point exceptions in texture coordinate interpolation - - XImage byte swapping didn't always work - - polygon edge flags weren't always used correctly - -1.2.8 May 22, 1996 - New: - - overlay planes on X servers with the SERVER_OVERLAY_VISUALS property - - better monochrome output - - more IRIX 6.x configurations - - more robust RGB mode color allocation - - added MESA_XSYNC environment variable - - GLX_MESA_pixmap_colormap and GLX_EXT_visual_info extensions - - GL_MESA_window_pos extension - - faster glReadPixels/glDrawPixels for GL_DEPTH and GL_UNSIGNED_SHORT - and GL_UNSIGNED_INT - - driver for prototype Cirrus Mondello 3-D board - - updated AmigaDOS driver - - a few small speed optimizations in polygon rendering - Changes: - - internal device driver interface modified to simplify device - driver implementations and to support hardware Z buffers - - several changes to the X/Mesa interface (xmesa.h) - Bug fixes: - - fixed pow(0,0) domain error triggered on some systems - - glStencilClear() in a display list caused an infinite loop - - glRasterPos*() was sometimes off by +/-0.5 in X and Y - - color masking and blending were performed in wrong order - - auxSolidCylinder() sometimes drew a wire-frame cylinder - - fixed file writing bug in osdemo.c - - pixel mapping didn't always work - - the GL_GEQUAL stencil func didn't work - - the GL_INVERT stencil op didn't work - - the stencil write mask didn't work - - glPush/PopAttrib() didn't do enough error checking - - glIsList() didn't always work correctly - -2.0 October 10, 1996 - New: - - Implements OpenGL 1.1 API functions - - all texture filtering modes supported (mipmapping) - - faster texture mapping, see Performance Tip 11 in README - - antialiased RGB points - - X support for line and polygon stippling - - glDrawBuffer( GL_FRONT_AND_BACK ) works - - util/ directory of useful stuff - - demos/texobj demo of texture objects - Changes: - - major internal changes for thread-safeness - - new device driver interface - - MESA_ALPHA env variable removed - - triangle rasterizer replaces polygon rasterizer - Bug fixes: - - glPopAttrib() bug - - glDrawBuffer(GL_NONE) works now - -2.1 December 14, 1996 - New: - - VMS support - - MS-DOS driver - - OpenStep support - - updated, combined Windows 95/NT driver - - implemented glGetLighti() and glGetTexGen*() - - GLX does garbage collection of ancillary buffers - Bug fixes: - - removed unused _EXT constants from gl.h - - fixed polygon offset bugs - - Z coordinates of clipped lines were incorrect - - glEdgeFlag() in display lists didn't always work - - glLight*() in display lists didn't work - - fixed X line stipple bugs (Michael Pichler) - - glXUseXfonts XFreeFont/XFreeFontInfo bug fixed - - fixed a feedback bug - - glTexGen*() now transforms GL_EYE_PLANE by inverse modelview matrix - - polygons were sometimes culled instead of clipped - - triangle rasterizer suffered from float/int overflow exceptions - - fixed FP underflow exception in lighting (specular exponent) - - glEnable/glDisable of GL_EXT_vertex_array enums didn't work - - fixed free(NULL) in GLU tesselator code - - using 24-bit color on some X servers resulted in garbage rendering - - 32-bit per pixel mode for XFree86 now works - - glRotate(a,0,0,0) gave unpredictable results - - GL_LINE_STRIP with > 480 vertices had occasional clipping problems - - 8-bit TrueColor GLXPixmap rendering incorrectly required a colormap - - glMaterial() wasn't ignored when GL_COLOR_MATERIAL was enabled - - glEnable(GL_COLOR_MATERIAL) followed by glColor() didn't work right - - accumulation buffer was limited to positive values - - projective textures didn't work - - selection buffer overflows weren't handled correctly - Changes: - - restored the GL_EXT_polygon_offset extension - - slightly faster RGB dithering - - the SVGA driver works again - - Amiga driver now distributed separately - - NeXT driver updated for Mesa 2.x - -2.2 March 14, 1997 - New: - - better color selection when dithering - - added GL_EXT_texture_object extension - - updated MS-DOS driver for DJGPP - - added openbsd make configuration - - faster dithered flat-shaded triangles - - various compilation problems with Motif widgets fixed - - gl.h, glx.h and glu.h name mangling option - - BeOS driver - - 3D texture mapping extension - - GL_MESA_resize_buffers extension - - morph3d, stex3d and spectex demos - - 3Dfx support - Bug fixes: - - glColorMaterial should finally work right in all respects - - linear interpolation of mipmap levels was incorrectly weighted - - readpix.c didn't compile on Macintosh - - GL_INVERT and related logic ops didn't work right - - glTexImage[12]D() didn't check its parameters consistantly - - fixed a memory leak in glTexImage[12]D() - - kludged around a SunOS 5.x/GCC compiler bug in the feedback code - - glReadPixels aborted instead of normally catching some errors - - a few 1.1 constants were missing or misnamed in gl.h - - glBegin(p); glBegin(q); didn't generate an error - - fixed a memory leak in GLX code - - clipping of concave polygons could cause a core dump - - 1-component alpha texture maps didn't work - - fixed a GLU polygon tesselator bug - - polygons with colinear vertices were sometimes culled - - feedback triangle colors were wrong when using smooth shading - - textures with borders didn't work correctly - - colors returned in feedback mode were wrong when using lighting - - spotlights didn't effect ambient lighting correctly - - gluPartialDisk() had a few bugs - Changes: - - device driver interface expanded to support texture mapping - - faster matrix inversion subroutine - - commented out #include "wmesa_extend.h" from src/wmesa.c - - fixed many compiler warnings in the demo programs - -2.3 June 30, 1997 - New: - - Mesa distribution divided into two pieces: library code and demos - - faster vertex transformation, clip testing, lighting - - faster line drawing - - TrueColor visuals how have dithering (for depths < 24 bits) - - added MESA_NO_DITHER environment variable - - new device driver function: NearFar(), RenderVB(), RasterSetup() - - added LynxOS configuration - - added cygnus Win32 configuration - - added texcyl.c GLUT demo - - added XMesaDitherColor() to X/Mesa interface - - new NURBS code from Bogdan Sikorski - - added demos/shape.c (non-rectangular X window!) - Bug fixes: - - glEnable/DisableClientState() were missing from GL/gl.h - - GL_SPHERE_MAP texcoord generation didn't work correctly - - glXGetConfig() returned wrong number of depth, stencil, accum bits - - glDrawPixels feedback/selection didn't examine RasterPos valid bit - - black and white were reversed on some monochrome displays - - fixed potential image memory leak (wasn't setting reference counter) - - glDrawPixels sometimes didn't recognize some GL state changes - - gluProject/UnProject() didn't check for divide by zero - - stex3d demo called random() and srandom(), not portable - - fixed memory leaks in context.c and drawpix.c - - fixed NULL dereferencing problem in gl_update_texture_state() - - glReadPixels between glBegin/glEnd didn't generate an error. - - fixed memory leak in polygon tesselator (Randy Frank) - - fixed seg fault bug drawing flat-shaded, depth-tested lines - - clipped GL_TRIANGLE_STRIPs sometimes had wrong color when flat-shaded - - glBindTexture sometimes didn't work - - fixed a bug deep in glXReleaseBuffersMESA() - - fog was mistakenly applied to alpha - - glPopMatrix didn't set "dirty matrix" flag - - glPolygonStipple pattern was sometimes wrong - - glClear wasn't disabled during feedback and selection - - fixed memory leak in glTexSubImage[123]D - Changes: - - many library source files reorganized - - faster X color allocation, colors also freed when finished with them - - new texture sampling function pointer in texture objects - - incorporated 3Dfx VooDoo driver v0.16 into main source tree - - many 3Dfx driver updates - - cygnus Makefiles now included - - updated DOS driver - - made a few changes to dosmesa.c and wmesa.c (VB->Unclipped) - - internally, colors now stored in GLubytes, not GLfixed - - optimized changing of GL_SHININESS parameter - -2.4 September 18, 1997 - New: - - updated 3Dfx Glide driver - - hacks for 3Dfx rendering into an X window or fullscreen - - added depth buffer access functions to X/Mesa and OS/Mesa interfaces - Bug fixes: - - pixel buffer could overflow with long, wide lines - - fixed FP underflow problems in lighting - - glTexSubImage1D() had an unitialized variable - - incomplete texture objects could cause a segfault - - glDrawPixels with GL_COMPILE_AND_EXECUTE caused infinite loop - - flat-shaded quads in a strip were miscolored if clipped - - mipmapped triangle lod computation now works correctly - - fixed a few under/overflow bugs in triangle rasterizer - - glArrayElement() assigned bad normal if normal array disabled - - changed argument to glXReleaseBuffersMESA() - - fixed small triangle underflow bugs in tritemp.h (hopefully) - - glBindTexture(target, 0) caused a crash - - glTexImage[123]D() with NULL image pointer caused crash - - glPixelStore parameters are now ignored during display list execution - - fixed a two-sided lighting w/ clipping bug (black vertices) - - textures with width!=height were sometimes mis-rendered - - "weird" projection matrices could cause div by 0, other fp errors - Changes: - - changed precompiled header symbol from PCH to PC_HEADER - - split api.c into api1.c and api2.c - - added hash.c source file (but not used yet) - - a few Sun and HP configuration file changes - - MESA_GLX_FX env var replaces MESA_FX_WINDOW and MESA_FX_FULLSCREEN - - fixed a few cygnus build problems (src/Makefile.cygnus, src/wmesa.c) - -2.5 November 20, 1997 - New: - - updated 3Dfx driver (v20) for GLQuake - - added GL_EXT_paletted_texture extension - - added GL_EXT_shared_texture_palette extension - - added GL_EXT_point_parameters extension - - now including Mark Kilgard's GLUT library v3.6 - - new GLUT-based demos in gdemos/ - - added a few more Unix config targets - - added Intel X86 assembly language vertex transformation code - - 3Dfx/Glide driver for Mesa now recognizes SST_SCREENREFRESH env var - - Windows 95 S3 Virge driver - Bug fixes: - - glCopyTexImage?D would crash due to uninitialized variable - - glColor w/ glColorMaterial in a display list caused a bug - - fixed several glDrawPixels() and ReadPixels() bugs in 3Dfx driver - - glVertex4*() vertices weren't always projected correctly - - trying to use mipmapped textured points or lines caused crash - - glColor[34][fd]() values now clamped to [0,1] before int conversion - Changes: - - new device driver functions for texture mapping - - hash tables used for display list and texture object lookup - - fixed GLX visual handling code to avoid saving redundant visuals - - 3Dfx Glide libraries automatically linked to libMesaGL.so - - dropped the Cirrus Logic Mondello code since it's obsolete - - updated Cygnus Makefiles (Stephane Rehel) - - updated Windows MSVC++ Makefiles (Oleg Letsinsky) - - procedure for making library files has changed: scripts now take - a major and minor version arguments. Make-config changed a lot. - - new implementation of glTexSubImage2D() - - updated widgets-mesa directory to create libMesaGLwM.a (Motif widget) - - separate linux-glide and linux-386-glide configurations - -2.6 February 12, 1998 - New: - - Windows WGL functions - - updated VMS, DOS, Windows, Cygnus, BeOS, Amiga compilation support - - v0.22 of 3Dfx Glide driver - - more X86 assembly language optimizations - - faster blending for some modes - - XMesaSetFXmode() to switch between 3Dfx window and full-screen mode - - added preliminary thread support - - added GLX_MESA_copy_sub_buffer extension - - some clipping optimizations - Bug fixes: - - fixed shading/material bug when drawing long primitive strips - - fixed clipping problem in long primitive strips - - fixed clipping bug when using 3Dfx driver - - fixed a problem when trying to use X fonts w/ 3Dfx driver - - fixed a texture filter bug in 3Dfx/Glide driver - - fixed bug in 3Dfx/Glide driver involving depth mask & clearing - - glLoadMatrix to set projection matrix confused the 3Dfx driver - - non-identity texture matrices didn't work with linux-386 configs - - glGenTextures() didn't reserve the returned texture IDs - - NULL proxy image sent to glTexImageXD() caused crash - - added texture state validation optimization (Henk Kok) - - fixed colormap reuse problem when using both RGB and CI windows - - 32bpp True/DirectColor X visuals weren't recognized - - fixed potential problem in evaluators memory allocation - - fixed assorted demo compilation bugs - Changes: - - replaced old Mesa/windows/ directory with Mesa/WIN32/ directory - - converted a few old glaux/gltk demos to GLUT - - renamed directories: demos -> xdemos, gdemos -> demos - - -3.0 September 17, 1998 - New: - - OpenGL 1.2 API - - GL_EXT_abgr pixel format extension - - GL_SGIS_texture_edge_clamp extension - - GL_SGIS_multitexture extension (to be replaced by GL_ARB_multitex) - - GL_EXT_multitexture extension (to be replaced by GL_ARB_multitex) - - GL_EXT_rescale_normal extension and renormal.c demo - - GLX_SGI_video_sync extension (a no-op) - - antialiased lines - - glGetTexImage() now implemented - - glDraw/Copy/ReadPixels() optimizations - - optimized textured triangle code (Marten Stromberg) - - more optimization of dithered TrueColor triangles in X driver - - Linux GGI driver - - updated MGL driver - Bug fixes: - - lots of assorted compilation fixes - - glInitNames didn't write initial hit record - - glBitmap didn't always check for invalid raster position - - switching between GLX and OSMesa contexts caused a crash - - fixed uninitialized variable in Mesa widget code - - fixed typo in texture code which caused book/texgen to crash - - fixed texture sampling bug when filter=GL_LINEAR and wrap=GL_CLAMP - - gluDisk() in POINT or LINE mode sometimes failed - - fixed texture + fog bug - - GL_COMPILE_AND_EXECUTE mode didn't work reliably - - glMultMatrix in projection matrix mode w/ 3Dfx driver could fail - - glDrawPixels(color index pixels) weren't converted to RGBA - - fixed possible getenv() buffer overflow security bug - - glBitmap in feedback mode was offset by xOrig, yOrig params - - device driver's DrawPixels hook was never used - - glDrawPixels with zoomY!=1 and top/bottom clipping didn't work - - glDrawPixels optimized for GL_LUMINANCE, GL_LUMINANCE_ALPHA, GLubyte - - fixed MakeCurrent bug in GLwRedrawObjects() in MesaWorkstation.c - - glCopyTexSubImage2D() didn't work with 3Dfx driver - - lines with width = 2 could cause crash - - glClear with scissor rect sometimes cleared whole buffer - - glTexSubImage2D( .. GL_COLOR_INDEX .. ) didn't work - - glTexImageXD( .. GL_ABGR_EXT .. ) didn't work - - computation of inverse modelview matrix sometimes failed - - fixed GL_CLAMP mode texture sampling bug - - textured line interpolation was somewhat broken - - textured triangle interpolation was also somewhat broken - - glGet(MODELVIEW/PROJECTION/TEXTURE_MATRIX_STACK_DEPTH) off by one - - evaluator state wasn't fully initialized - - texture coordinate clipping was buggy - - evaluator surfaces could be mis-colored - - glAccum(GL_RETURN, s) didn't obey glColorMask() settings - - zero area polygons shouldn't be culled if polygon mode is point/line - - clipped width and height of glReadPixels was sometimes off by one - - blending with alpha = 0 or 1.0 wasn't always exact - - reading of pixels from clipped region was buggy - - minor tweaking of X visual management in GLX emulator - - glPolygonStipple now obeys pixel unpacking parameters - - glGetPolygonStipple now obeys pixel packing parameters - - interleaved vertex array texture coordinates were broken - - query of proxy texture internal format was broken - - alpha channel wasn't reliably cleared - - fixed divide by zero error in gluScaleImage if dest size = 1 x 1 - Conformance bug fixes: - - GL_SELECTION_BUFFER_POINTER and GL_SELECTION_BUFFER_SIZE were missing - - GL_TEXTURE_INTERNAL_FORMAT was missing - - glGet*(GL_POLYGON_STIPPLE) was broken - - glPush/PopAttrib() didn't save/restore all texture state - - glBitmap in feedback mode didn't work - - feedback of texture coords didn't always work - - glDrawPixels w/ format=GL_DEPTH_COMPONENT, type=GLbyte was broke - - glDrawPixels w/ format=GL_DEPTH_COMPONENT, type=GLubyte was broke - - glDrawPixels w/ format=GL_STENCIL_INDEX, type=GL_BITMAP was broke - Changes: - - upgraded GLUT to version 3.7 - - only GL and GLU library code included in MesaLib.tar.gz - - GLUT and all demos now in MesaDemos.tar.gz - - glaux and gltk libraries removed - - IRIX -n32 and -64 libs go in lib32/ and lib64/ directories - - -3.1 beta 1 November 19, 1998 - New: - - GL_EXT_stencil_wrap extension - - GL_INGR_blend_func_separate extension - - GL_ARB_multitexture extension - - GL_NV_texgen_reflection extension - - newly optimized vertex transformation code - - updated GLUT 3.7 code - - better precision when using 32-bit Z buffer - - Allegro DJGPP driver - Bug fixes: - - glCopyPixels between front/back buffers didn't copy alpha correctly - - fixed out-of-bounds memory access in optimized 2-D texture code - - glPixelStorei didn't accept GL_PACK/UNPACK_IMAGE_HEIGHT parameter - - glGet*() didn't accept GL_MAX_3D_TEXTURE_SIZE parameter - - clipping of texture coordinates sometimes had bad R,Q values - - GL_CLAMP_TO_EDGE texture sampling was off by 0.5 texels - - glEdgeFlagPointer() now takes a GLvoid * instead of GLboolean * - - texture was sometimes applied twice with 3Dfx driver - - glPush/PopAttrib() fouled up texture object reference counts - - glDeleteLists(0, n) caused assertion failure - - bilinear texture sampling wasn't accurate enough - - glClear w/ glDepthMask(GL_FALSE) didn't work right on 3Dfx - - color components were reversed on big endian 32 bpp X visuals - Changes: - - removed GL_EXT_multitexture extension - - -3.1 beta 2 May 24, 1999 - New: - - multi-textured points and lines (mjk@nvidia.com) - - optimized 24bpp X rendering (bernd.paysan@gmx.de) - - added allegro support (bernie-t@geocities.com) - - cleaned-up Windows-related stuff (Ted Jump) - - minor stereo changes (KendallB@scitechsoft.com) - - new BeOS driver which implements BGLView class - - new Direct3D driver (see src/D3D) - - more efficient filled gluCylinder() function - - utilities: util/showbuffer.[ch] and util/glstate.[ch] - - fixed some IRIX compiler warnings - - added support for building Mesa in XFree86 with - SGI's GLX (kevin@precisioninsight.com) - Bug fixes: - - a variety of Windows/Mesa bug fixes (mjk@nvidia.com) - - packed pixel images weren't unpacked correctly - - patches some win32 files in GLUT (mjk@nvidia.com) - - glTexImage[123]D() didn't accept internalFormat == GL_COLOR_INDEX - - fixed lighting bug in Keith's new shading code - - fixed texture segfault seen in Lament screensaver - - fixed miscellaneous low-memory bugs - - glClear(GL_COLOR_BUFFER_BIT) with RGBA or CI masking was broken - - GL_LINEAR sampling of 3D textures was broken - - fixed SVR4 'cc' compiler macro problem (dawes@xfree86.org) - - added GL_TEXTURE_PRIORITY fix (keithh@netcomuk.co.uk) - - fixed wide point and wide line conformance bugs (brianp) - Changes: - - some device driver changes (see src/dd.h) - - new copyright on core Mesa code - - -3.1 beta 3 September 17, 1999 - New: - - optimized glAccum function - - optimized 24bpp rendering in XMesa driver - - GLU 1.2 polygon tessellator - Bug Fixes: - - glGetTexLevelParameter wasn't fully implemented - - glXUseXFont now handles multi-byte fonts - - glIsEnabled(GL_TEXTURE_2D / 3D) returned wrong result - - alpha channel of blending points, lines was sometimes incorrect - Changes: - - New library names: "libGL" instead of "libMesaGL" - - New library numbering: libGL.so.1.2.310 - - New subdirectories: docs/ and bin/ - - New Makefile-system (autoconf,automake,libtool) - - -3.1 final December 14, 1999 - New: - - added demos/gloss.c - - added xdemos/glxdpyinfo.c - - added GLX_ARB_get_proc_address extension - - rewritten glTexImage code paths (faster, less memory, bug fixes) - Bug Fixes: - - several vertex array bug fixes - - overlapping glCopyPixels with pixel zooming now works - - glXUseXFont() bitmaps were vertically shifted by one pixel - - glCopyPixels with pixel zooming now works - - -3.2 final April 24, 2000 - Bug fixes: - - fixed memcpy bugs in span.c - - fixed missing glEnd problem in demos/tessdemo.c - - fixed bug when clearing 24bpp Ximages - - fixed clipping problem found in Unreal Tournament - - fixed Loki's "ice bug" and "crazy triangles" seen in Heretic2 - - fixed Loki's 3dfx RGB vs BGR bug - - fixed Loki's 3dfx smooth/flat shading bug in SoF - Changes: - - updated docs/README file - - use bcopy() optimizations on FreeBSD - - re-enabled the optimized persp_textured_triangle() function - - -3.2.1 July 19, 2000 - Bug fixes: - - gluBuild2DMipmaps() didn't accept GL_BGRA - - Fixed compile/makefile problems on IRIX - - fixed segfault in 3dfx driver when using GL selection/feedback - - no longer cull very, very tiny triangles - - blending w/ drawbuffer==GL_FRONT_BACK caused segfault (sw rendering) - - fixed Motif detection code in widgets-mesa/configure.in - - glColorMaterial and glMaterial updates to emissive and ambient - didn't always work right - - Specular highlights weren't always in the right place - - clipped GL_LINE mode polygons had interior lines appear - - blend term GL_ONE_MINUS_CONSTANT_ALPHA was broken - - GL_NICEST fog didn't always work with flat shading - - glRect commands in display lists were sometimes miscolored - - Line Z offset didn't always work - - fixed texgen normal vector problem (gloss's teapot) - - numerous GL conformance bugs fixed - Changes: - - glColorMask(false, false, false, false) handled better/faster - - reverted to old GLU polygon tessellator, GLU 1.1 - - updated Win32 build files - - -3.3 July 21, 2000 - New: - - antialiased triangles now implemented - - GL_EXT_texture_env_add texture mode extension - - GLX 1.3 API - - support for separate draw/read buffers (ie GL_SGI_make_current_read) - - thread-safe API dispath - - improved glxinfo program - - demos/texdown program to measure texture download performance - - glext.h header file - - demos/geartrain program - - GL_EXT_texture_lod_bias extension - - demos/lodbias program - - further optimized glRead/DrawPixels for 16-bit TrueColor X visuals - - GLX_EXT_visual_rating extension (a no-op, however) - - GL_HP_occlusion_test extension (for X and OS/Mesa drivers) - - demos/occlude program - - GL_SGIS_pixel_texture and GL_SGIX_pixel_texture extensions - - demos/pixeltex program - - GL_SGI_color_matrix extension - - GL_SGI_color_table extension - - GL_EXT_histogram extension - - GL_ARB_texture_cube_map extension - - added xdemos/glxheads and xdemos/manywin - - demos/texenv.c demo - - GL_EXT_texture_env_combine extension (by Holger Waechtler) - - Xlib driver is now thread-safe (see xdemos/glthreads) - Bug Fixes: - - various GL conformance failures fixed since 3.2.1 - Changes: - - gl.h now uses #defines instead of C enums for all tokens - - glu.h now uses #defines instead of C enums for all tokens - - moved programs from 3Dfx/demos/ into demos/ directory - - -3.4 November 3, 2000 - New: - - optimized glDrawPixels for glPixelZoom(1,-1) - Bug Fixes: - - widgets-mesa/src/*.c files were missing from 3.3 distro - - include/GL/mesa_wgl.h file was missing from 3.3 distro - - fixed some Win32 compile problems - - texture object priorities weren't getting initialized to 1.0 - - glAreTexturesResident return value was wrong when using hardware - - glXUseXFont segfaulted when using 3dfx driver (via MESA_GLX_FX) - - glReadPixels with GLushort packed types was broken - - fixed a few bugs in the GL_EXT_texture_env_combine texture code - - glPush/PopAttrib(GL_ENABLE_BIT) mishandled multi-texture enables - - fixed some typos/bugs in the VB code - - glDrawPixels(GL_COLOR_INDEX) to RGB window didn't work - - optimized glDrawPixels paths weren't being used - - per-fragment fog calculation didn't work without a Z buffer - - improved blending accuracy, fixes Glean blendFunc test failures - - glPixelStore(GL_PACK/UNPACK_SKIP_IMAGES) wasn't handled correctly - - glXGetProcAddressARB() didn't always return the right address - - gluBuild[12]DMipmaps() didn't grok the GL_BGR pixel format - - texture matrix changes weren't always detected (GLUT projtex demo) - - fixed random color problem in vertex fog code - - fixed Glide-related bug that let Quake get a 24-bit Z buffer - Changes: - - finished internal support for compressed textures for DRI - - -3.4.1 February 14, 2001 - New: - - fixed some Linux build problems - - fixed some Windows build problems - - GL_EXT_texture_env_dot3 extension (Gareth Hughes) - Bug fixes: - - added RENDER_START/RENDER_FINISH macros for glCopyTexImage in DRI - - various state-update code changes needed for DRI bugs - - disabled pixel transfer ops in glColorTable commands, not needed - - fixed bugs in glCopyConvolutionFilter1D/2D, glGetConvolutionFilter - - updated sources and fixed compile problems in widgets-mesa/ - - GLX_PBUFFER enum value was wrong in glx.h - - fixed a glColorMaterial lighting bug - - fixed bad args to Read/WriteStencilSpan in h/w stencil clear function - - glXCopySubBufferMESA() Y position was off by one - - Error checking of glTexSubImage3D() was broken (bug 128775) - - glPopAttrib() didn't restore all derived Mesa state correctly - - Better glReadPixels accuracy for 16bpp color - fixes lots of OpenGL - conformance problems at 16bpp. - - clearing depth buffer with scissoring was broken, would segfault - - OSMesaGetDepthBuffer() returned bad bytesPerValue value - - fixed a line clipping bug (reported by Craig McDaniel) - - fixed RGB color over/underflow bug for very tiny triangles - Known problems: - - NURBS or evaluator surfaces inside display lists don't always work - - -3.4.2 May 17, 2001 - Bug fixes: - - deleting the currently bound texture could cause bad problems - - using fog could result in random vertex alpha values - - AA triangle rendering could touch pixels outside right window bound - - fixed byteswapping problem in clear_32bit_ximage() function - - fixed bugs in wglUseFontBitmapsA(), by Frank Warmerdam - - fixed memory leak in glXUseXFont() - - fragment sampling in AA triangle function was off by 1/2 pixel - - Windows: reading pixels from framebuffer didn't always work - - glConvolutionFilter2D could segfault or cause FP exception - - fixed segfaults in FX and X drivers when using tex unit 1 but not 0 - - GL_NAND logicop didn't work right in RGBA mode - - fixed a memory corruption bug in vertex buffer reset code - - clearing the softwara alpha buffer with scissoring was broken - - fixed a few color index mode fog bugs - - fixed some bad assertions in color index mode - - fixed FX line 'stipple' bug #420091 - - fixed stencil buffer clear width/height typo - - fixed GL error glitches in gl[Client]ActiveTextureARB() - - fixed Windows compilation problem in texutil.c - - fixed 1/8-pixel AA triangle sampling error - Changes: - - optimized writing mono-colored pixel spans to X pixmaps - - increased max viewport size to 2048 x 2048 - - -3.5 June 21, 2001 - New: - - internals of Mesa divided into modular pieces (Keith Whitwell) - - 100% OpenGL 1.2 conformance (passes all conformance tests) - - new AA line algorithm - - GL_EXT_convolution extension - - GL_ARB_imaging subset - - OSMesaCreateContextExt() function - - GL_ARB_texture_env_add extension (same as GL_EXT_texture_env_add) - - GL_MAX_TEXTURE_UNITS_ARB now defaults to eight - - GL_EXT_fog_coord extension (Keith Whitwell) - - GL_EXT_secondary_color extension (Keith Whitwell) - - GL_ARB_texture_env_add extension (same as GL_EXT_texture_env_add) - - GL_SGIX_depth_texture extension - - GL_SGIX_shadow and GL_SGIX_shadow_ambient extensions - - demos/shadowtex.c demo of GL_SGIX_depth_texture and GL_SGIX_shadow - - GL_ARB_texture_env_combine extension - - GL_ARB_texture_env_dot3 extension - - GL_ARB_texture_border_clamp (aka GL_SGIS_texture_border_clamp) - - OSMesaCreateContextExt() function - - libOSMesa.so library, contains the OSMesa driver interface - - GL/glxext.h header file for GLX extensions - - somewhat faster software texturing, fogging, depth testing - - all color-index conformance tests now pass (only 8bpp tested) - - SPARC assembly language TCL optimizations (David Miller) - - GL_SGIS_generate_mipmap extension - Bug Fixes: - - fbiRev and tmuRev were unitialized when using Glide3 - - fixed a few color index mode conformance failures; all pass now - - now appling antialiasing coverage to alpha after texturing - - colors weren't getting clamped to [0,1] before color table lookup - - fixed RISC alignment errors caused by COPY_4UBV macro - - drawing wide, flat-shaded lines could cause a segfault - - vertices now snapped to 1/16 pixel to fix rendering of tiny triangles - Changes: - - SGI's Sample Implementation (SI) 1.3 GLU library replaces Mesa GLU - - new libOSMesa.so library, contains the OSMesa driver interface - - -4.0 October 22, 2001 - New: - - Mesa 4.0 implements the OpenGL 1.3 specification - - GL_IBM_rasterpos_clip extension - - GL_EXT_texture_edge_clamp extension (aka GL_SGIS_texture_edge_clamp) - - GL_ARB_texture_mirrored_repeat extension - - WindML UGL driver (Stephane Raimbault) - - added OSMESA_MAX_WIDTH/HEIGHT queries - - attempted compiliation fixes for Solaris 5, 7 and 8 - - updated glext.h and glxext.h files - - updated Windows driver (Karl Schultz) - Bug fixes: - - added some missing GLX 1.3 tokens to include/GL/glx.h - - GL_COLOR_MATRIX changes weren't recognized by teximage functions - - glCopyPixels with scale and bias was broken - - glRasterPos with lighting could segfault - - glDeleteTextures could leave a dangling pointer - - Proxy textures for cube maps didn't work - - fixed a number of 16-bit color channel bugs - - fixed a few minor memory leaks - - GLX context sharing was broken in 3.5 - - fixed state-update bugs in glPopClientAttrib() - - fixed glDrawRangeElements() bug - - fixed a glPush/PopAttrib() bug related to texture binding - - flat-shaded, textured lines were broken - - fixed a dangling pointer problem in the XMesa code (Chris Burghart) - - lighting didn't always produce the correct alpha value - - fixed 3DNow! code to not read past end of arrays (Andrew Lewycky) - - -4.0.1 December 17, 2001 - New: - - better sub-pixel sample positions for AA triangles (Ray Tice) - - slightly faster blending for (GL_ZERO, GL_ONE) and (GL_ONE, GL_ZERO) - Bug fixes: - - added missing break statements in glGet*() for multisample cases - - fixed uninitialized hash table mutex bug (display lists / texobjs) - - fixed bad teximage error check conditional (bug 476846) - - fixed demos readtex.c compilation problem on Windows (Karl Schultz) - - added missing glGet() query for GL_MAX_TEXTURE_LOD_BIAS_EXT - - silence some compiler warnings (gcc 2.96) - - enable the #define GL_VERSION_1_3 in GL/gl.h - - added GL 1.3 and GLX 1.4 entries to gl_mangle.h and glx_mangle.h - - fixed glu.h typedef problem found with MSDev 6.0 - - build libGL.so with -Bsymbolic (fixes bug found with Chromium) - - added missing 'const' to glXGetContextIDEXT() in glxext.h - - fixed a few glXGetProcAddress() errors (texture compression, etc) - - fixed start index bug in compiled vertex arrays (Keith) - - fixed compilation problems in src/SPARC/glapi_sparc.S - - fixed triangle strip "parity" bug found in VTK medical1 demo (Keith) - - use glXGetProcAddressARB in GLUT to avoid extension linking problems - - provoking vertex of flat-shaded, color-index triangles was wrong - - fixed a few display list bugs (GLUT walker, molecule, etc) (Keith) - - glTexParameter didn't flush the vertex buffer (Ray Tice) - - feedback attributes for glDraw/CopyPixels and glBitmap were wrong - - fixed bug in normal length caching (ParaView lighting bug) - - fixed separate_specular color bug found in Chimera (18 Dec 2001) - - -4.0.2 April 2, 2002 - New: - - New DOS (DJGPP) driver written by Daniel Borca - - New driver interface functions for TCL drivers (such as Radeon DRI) - - GL_RENDERER string returns "Mesa Offscreen16" or "Mesa Offscreen32" - if using deep color channels - - latest GL/glext.h and GL/glxext.h headers from SGI - Bug fixes: - - GL_BLEND with non-black texture env color wasn't always correct - - GL_REPLACE with GL_RGB texture format wasn't always correct (alpha) - - glTexEnviv( pname != GL_TEXTURE_ENV_COLOR ) was broken - - glReadPixels was sometimes mistakenly clipped by the scissor box - - glDraw/ReadPixels didn't catch all the errors that they should have - - Fixed 24bpp rendering problem in Windows driver (Karl Schultz) - - 16-bit GLchan mode fixes (m_trans_tmp.h, s_triangle.c) - - Fixed 1-bit float->int conversion bug in glDrawPixels(GL_DEPTH_COMP) - - glColorMask as sometimes effecting glXSwapBuffers() - - fixed a potential bug in XMesaGarbageCollect() - - N threads rendering into one window didn't work reliably - - glCopyPixels didn't work for deep color channels - - improved 8 -> 16bit/channel texture image conversion (Gerk Huisma) - - glPopAttrib() didn't correctly restore user clip planes - - user clip planes failed for some perspective projections (Chromium) - Known bugs: - - mipmap LOD computation - - -4.0.3 June 25, 2002 - New: - - updated GL/glext.h file (version 15) - - corrected MMX blend code (Jose Fonseca) - - support for software-based alpha planes in Windows driver - - updated GGI driver (Filip Spacek) - Bug fixes: - - glext.h had wrong values for GL_DOT3_RGB[A]_EXT tokens - - OSMesaMakeCurrent() didn't recognize buffer size changes - - assorted conformance fixes for 16-bit/channel rendering - - texcombine alpha subtraction mode was broken - - fixed lighting bug with non-uniform scaling and display lists - - fixed bug when deleting shared display lists - - disabled SPARC cliptest assembly code (Mesa bug 544665) - - fixed a couple Solaris compilation/link problems - - blending clipped glDrawPixels didn't always work - - glGetTexImage() didn't accept packed pixel types - - glPixelMapu[is]v() could explode given too large of pixelmap - - glGetTexParameter[if]v() didn't accept GL_TEXTURE_MAX_ANISOTROPY_EXT - - glXCopyContext() could lead to segfaults - - glCullFace(GL_FRONT_AND_BACK) didn't work (bug 572665) - Changes: - - lots of C++ (g++) code clean-ups - - lots of T&L updates for the Radeon DRI driver - Known bugs: - - mipmap LOD computation (fixed for Mesa 4.1) - - -4.0.4 October 3, 2002 - New: - - GL_NV_texture_rectangle extension - - updated glext.h header (version 17) - - updated DOS driver (Daniel Borca) - - updated BeOS R5 driver (Philippe Houdoin) - - added GL_IBM_texture_mirror_repeat - - glxinfo now takes -l option to print interesting OpenGL limits info - - GL_MESA_ycbcr_texture extension - - GL_APPLE_client_storage extension (for some DRI drivers only) - - GL_MESA_pack_invert extension - Bug fixes: - - fixed GL_LINEAR fog bug by adding clamping - - fixed FP exceptions found using Alpha CPU - - 3dfx MESA_GLX_FX=window (render to window) didn't work - - fixed memory leak in wglCreateContest (Karl Schultz) - - define GLAPIENTRY and GLAPI if undefined in glu.h - - wglGetProcAddress didn't handle all API functions - - when testing for OpenGL 1.2 vs 1.3, check for GL_ARB_texture_cube_map - - removed GL_MAX_CONVOLUTION_WIDTH/HEIGHT from glGetInteger/Float/etc() - - error checking in compressed tex image functions had some glitches - - fixed AIX compile problem in src/config.c - - glGetTexImage was using pixel unpacking instead of packing params - - auto-mipmap generation for cube maps was incorrect - Changes: - - max texture units reduced to six to accomodate texture rectangles - - removed unfinished GL_MESA_sprite_point extension code - - -4.1 October 29, 2002 - New: - - GL_NV_vertex_program extension - - GL_NV_vertex_program1_1 extension - - GL_ARB_window_pos extension - - GL_ARB_depth_texture extension - - GL_ARB_shadow extension - - GL_ARB_shadow_ambient extension - - GL_EXT_shadow_funcs extension - - GL_ARB_point_parameters extension - - GL_ARB_texture_env_crossbar - - GL_NV_point_sprite extension - - GL_NV_texture_rectangle extension - - GL_EXT_multi_draw_arrays extension - - GL_EXT_stencil_two_side extension - - GLX_SGIX_fbconfig and GLX_SGIX_pbuffer extensions - - GL_ATI_texture_mirror_once extension (Ian Romanick) - - massive overhaul/simplification of software rasterizer module, - many contributions from Klaus Niederkrueger - - faster software texturing in some cases (i.e. trilinear filtering) - - new OSMesaGetProcAddress() function - - more blend modes implemented with MMX code (Jose Fonseca) - - added glutGetProcAddress() to GLUT - - added GLUT_FPS env var to compute frames/second in glutSwapBuffers() - - pbinfo and pbdemo PBuffer programs - - glxinfo -v prints transprent pixel info (Gerd Sussner) - Bug fixes: - - better mipmap LOD computation (prevents excessive blurriness) - - OSMesaMakeCurrent() didn't recognize buffer size changes - - assorted conformance fixes for 16-bit/channel rendering - - texcombine alpha subtraction mode was broken - - fixed some blend problems when GLchan==GLfloat (Gerk Huisma) - - clamp colors to [0,inf] in OSMesa if GLchan==GLfloat (Gerk Huisma) - - fixed divide by zero error in NURBS tessellator (Jon Perry) - - fixed GL_LINEAR fog bug by adding clamping - - fixed FP exceptions found using Alpha CPU - - 3dfx/glide driver render-to-window feature was broken - - added missing GLX_TRANSPARENT_RGB token to glx.h - - fixed error checking related to paletted textures - - fixed reference count error in glDeleteTextures (Randy Fayan) - Changes: - - New spec file and Python code to generate some GL dispatch files - - Glide driver defaults to "no" with autoconf/automake - - updated demos/stex3d with new options - - -5.0 November 13, 2002 - New: - - OpenGL 1.4 support (glGetString(GL_VERSION) returns "1.4") - - removed some overlooked debugging code - - glxinfo updated to support GLX_ARB_multisample - - GLUT now support GLX_ARB_multisample - - updated DOS driver (Daniel Borca) - Bug fixes: - - GL_POINT and GL_LINE-mode polygons didn't obey cull state - - fixed potential bug in _mesa_align_malloc/calloc() - - fixed missing triangle bug when running vertex programs - - fixed a few HPUX compilation problems - - FX (Glide) driver didn't compile - - setting GL_TEXTURE_BORDER_COLOR with glTexParameteriv() didn't work - - a few EXT functions, like glGenTexturesEXT, were no-ops - - a few OpenGL 1.4 functions like glFogCoord*, glBlendFuncSeparate, - glMultiDrawArrays and glMultiDrawElements were missing - - glGet*(GL_ACTIVE_STENCIL_FACE_EXT) was broken - - Pentium 4 Mobile was mistakenly identified as having 3DNow! - - fixed one-bit error in point/line fragment Z calculation - - fixed potential segfault in fakeglx code - - fixed color overflow problem in DOT3 texture env mode - - -5.0.1 March 30, 2003 - New: - - DOS driver updates from Daniel Borca - - updated GL/gl_mangle.h file (Bill Hoffman) - Bug fixes: - - auto mipmap generation for cube maps was broken (bug 641363) - - writing/clearing software alpha channels was unreliable - - minor compilation fixes for OS/2 (Evgeny Kotsuba) - - fixed some bad assertions found with shadowtex demo - - fixed error checking bug in glCopyTexSubImage2D (bug 659020) - - glRotate(angle, -x, 0, 0) was incorrect (bug 659677) - - fixed potential segfault in texture object validation (bug 659012) - - fixed some bogus code in _mesa_test_os_sse_exception_support (Linus) - - fix fog stride bug in tnl code for h/w drivers (Michel Danzer) - - fixed glActiveTexture / glMatrixMode(GL_TEXTURE) bug (#669080) - - glGet(GL_CURRENT_SECONDARY_COLOR) should return 4 values, not 3 - - fixed compilation problem on Solaris7/x86 (bug 536406) - - fixed prefetch bug in 3DNow! code (Felix Kuhling) - - fixed NeXT build problem (FABSF macro) - - glDrawPixels Z values when glPixelZoom!=1 were invalid (bug 687811) - - zoomed glDraw/CopyPixels with clipping sometimes failed (bug 689964) - - AA line and triangle Z values are now rounded, not truncated - - fixed color interpolation bug when GLchan==GLfloat (bug 694461) - - glArePrograms/TexturesResident() wasn't 100% correct (Jose Fonseca) - - fixed a minor GL_COLOR_MATERIAL bug - - NV vertex program EXP instruction was broken - - glColorMask misbehaved with X window / pixmap rendering - - fix autoconf/libtool GLU C++ linker problem on Linux (a total hack) - - attempt to fix GGI compilation problem when MesaDemos not present - - NV vertex program ARL-relative fetches didn't work - Changes: - - use glPolygonOffset in gloss demo to avoid z-fighting artifacts - - updated winpos and pointblast demos to use ARB extensions - - disable SPARC normal transformation code (bug 673938) - - GLU fixes for OS/2 (Evgeny Kotsuba) - - -5.0.2 September 5, 2003 - Bug fixes: - - fixed texgen problem causing texcoord's Q to be zero (stex3d) - - default GL_TEXTURE_COMPARE_MODE_ARB was wrong - - GL_CURRENT_MATRIX_NV query was wrong - - GL_CURRENT_MATRIX_STACK_DEPTH_NV query was off by one - - GL_LIST_MODE query wasn't correct - - GL_FOG_COORDINATE_SOURCE_EXT query wasn't supported - - GL_SECONDARY_COLOR_ARRAY_SIZE_EXT query returned wrong value - - blended, wide lines didn't always work correctly (bug 711595) - - glVertexAttrib4svNV w component was always 1 - - fixed bug in GL_IBM_rasterpos_clip (missing return) - - GL_DEPTH_TEXTURE_MODE = GL_ALPHA didn't work correctly - - a few Solaris compilation fixes - - fixed glClear() problem for DRI drivers (non-existant stencil, etc) - - fixed int/REAL mixup in GLU NURBS curve evaluator (Eric Cazeaux) - - fixed delete [] bug in SI GLU (bug 721765) (Diego Santa Cruz) - - glFog() didn't clamp fog colors - - fixed bad float/int conversion for GL_TEXTURE_PRIORITY in the - gl[Get]TexParameteri[v] functions - - fixed invalid memory references in glTexGen functions (bug 781602) - - integer-valued color arrays weren't handled correctly - - glDrawPixels(GL_DEPTH_COMPONENT) with glPixelZoom didn't work - - GL_EXT_texture_lod_bias is part of 1.4, overlooked in 5.0.1 - Changes: - - build GLUT with -fexceptions so C++ apps propogate exceptions - - -5.1 December 17, 2003 - New: - - reorganized directory tree - - GL_ARB_vertex/fragment_program extensions (Michal Krol & Karl Rasche) - - GL_ATI_texture_env_combine3 extension (Ian Romanick) - - GL_SGI_texture_color_table extension (Eric Plante) - - GL_NV_fragment_program extension - - GL_NV_light_max_exponent extension - - GL_EXT_texture_rectangle (identical to GL_NV_texture_rectangle) - - GL_ARB_occlusion_query extension - - GL_ARB_point_sprite extension - - GL_ARB_texture_non_power_of_two extension - - GL_IBM_multimode_draw_arrays extension - - GL_EXT_texture_mirror_clamp extension (Ian Romanick) - - GL_ARB_vertex_buffer_object extension - - new X86 feature detection code (Petr Sebor) - - less memory used for display lists and vertex buffers - - demo of per-pixel lighting with a fragment program (demos/fplight.c) - - new version (18) of glext.h header - - new spriteblast.c demo of GL_ARB_point_sprite - - faster glDrawPixels in X11 driver in some cases (see RELNOTES-5.1) - - faster glCopyPixels in X11 driver in some cases (see RELNOTES-5.1) - Bug fixes: - - really enable OpenGL 1.4 features in DOS driver. - - fixed issues in glDrawPixels and glCopyPixels for very wide images - - glPixelMapf/ui/usv()'s size parameter is GLsizei, not GLint - - fixed some texgen bugs reported by Daniel Borca - - fixed wglMakeCurrent(NULL, NULL) bug (#835861) - - fixed glTexSubImage3D z-offset bug (Cedric Gautier) - - fixed RGBA blend enable bug (Ville Syrjala) - - glAccum is supposed to be a no-op in selection/feedback mode - - fixed texgen bug #597589 (John Popplewell) - Changes: - - dropped API trace feature (src/Trace/) - - documentation overhaul. merged with website content. more html. - - glxgears.c demo updated to use GLX swap rate extensions - - glTexImage1/2/3D now allows width/height/depth = 0 - - disable SPARC asm code on Linux (bug 852204) - - -6.0 January 16, 2004 - New: - - full OpenGL 1.5 support - - updated GL/glext.h file to version 21 - Changes: - - changed max framebuffer size to 4Kx4K (MAX_WIDTH/HEIGHT in config.h) - Bug fixes: - - fixed bug in UNCLAMPED_FLOAT_TO_UBYTE macro; solves a color - clamping issue - - updated suno5-gcc configs - - glColor3 functions sometimes resulted in undefined alpha values - - fixed FP divide by zero error seen on VMS with xlockmore, others - - fixed vertex/fragment program debug problem (bug 873011) - - building on AIX with gcc works now - - glDeleteProgramsARB failed for ARB fragment programs (bug 876160) - - glDrawRangeElements tried to modify potentially read-only storage - - updated files for building on Windows - - -6.0.1 April 2, 2004 - New: - - upgraded glext.h to version 22 - - new build targets (Dan Schikore) - - new linux-x86-opteron build target (Heath Feather) - Bug fixes: - - glBindProgramARB didn't update all necessary state - - fixed build problems on OpenBSD - - omit CVS directories from tarballs - - glGetTexImage(GL_COLOR_INDEX) was broken - - fixed an infinite loop in t&l module - - silenced some valgrind warnings about using unitialized memory - - fixed some compilation/link glitches on IRIX (Mike Stephens) - - glBindProgram wasn't getting compiled into display lists - - GLX_FBCONFIG_ID wasn't recognized in glXChooseFBConfig() (bug 888079) - - two-sided lighting and vertex program didn't work (bug 887330) - - stores to program parameter registers in vertex state programs - didn't work. - - fixed glOrtho bug found with gcc 3.2.2 (RH9) - - glXCreateWindow() wasn't fully implemented (bug 890894) - - generic vertex attribute arrays didn't work in display lists - - vertex buffer objects' default usage and access fields were wrong - - glDrawArrays with start!=0 was broken - - fragment program PK2H, UP2H, UP4B and UP4UB instructions were broken - - linux-osmesa16-static config didn't work - - fixed a few color index rendering problems (bug 910687) - - glInterleavedArrays didn't respect GL_CLIENT_ACTIVE_TEXTURE - - OSMesa RGB and BGR modes were broken - - glProgramStringARB mistakenly required a null-terminated string - - fragment program XPD instruction was incorrect - - glGetMaterial() didn't work reliably - - ARB_fragment_program KIL instruction was incorrect - - -6.1 August 18, 2004 - New: - - Revamped Makefile system - - glXUseRotatedXFont() utility (see xdemos/xuserotfont.c) - - internal driver interface changes related to texture object - allocation, vertex/fragment programs, BlendEquationSeparate, etc. - - option to walk triangle edges with double-precision floats - (Justin Novosad of Discreet) (see config.h file) - - support for AUX buffers in software GLX driver - - updated glext.h to version 24 and glxext.h to version 6 - - new MESA_GLX_FORCE_ALPHA and MESA_GLX_DEPTH_BITS env vars - - updated BeOS support (Philippe Houdoin) - Changes: - - fragment fog interpolation is perspective corrected now - - new glTexImage code, much cleaner, may be a bit faster - Bug fixes: - - glArrayElement in display lists didn't handle generic vertex attribs - - glFogCoord didn't always work properly - - ARB_fragment_program fog options didn't work - - frag prog TEX instruction no longer incorrectly divides s,t,r by q - - ARB frag prog TEX and TEXP instructions now use LOD=0 - - glTexEnviv in display lists didn't work - - glRasterPos didn't do texgen or apply texture matrix - - GL_DOUBLE-valued vertex arrays were broken in some cases - - fixed texture rectangle edge/border sampling bugs - - sampling an incomplete texture in a fragment program would segfault - - glTexImage was missing a few error checks - - fixed some minor glGetTexParameter glitches - - GL_INTENSITY was mistakenly accepted as a to glTexImage - - fragment program writes to RC/HC register were broken - - fixed a few glitches in GL_HP_occlusion_test extension - - glBeginQueryARB and glEndQueryARB didn't work inside display lists - - vertex program state references were broken - - fixed triangle color interpolation bug on AIX (Shane Blackett) - - fixed a number of minor memory leaks (bug #1002030) - - -6.2 October 2, 2004 - New: - - enabled GL_ARB_texture_rectangle (same as GL_NV_texture_rectangle) - - updated Doxygen support (Jose Fonseca) - Changes: - - some GGI driver updates (Christoph Egger, bug 1025977) - Bug fixes: - - Omit GL_ARB_texture_non_power_of_two from list of OpenGL 1.5 features - - fixed a few compilation issues on IRIX - - fixed a matrix classification bug (reported by Wes Bethel) - - we weren't reseting the vertex/fragment program error state - before parsing (Dave Reveman) - - adjust texcoords for sampling texture rectangles (Dave Reveman) - - glGet*(GL_MAX_VERTEX_ATTRIBS_ARB) wasn't implemented - - repeated calls to glDeleteTexture(t) could lead to a crash - - fixed potential ref count bugs in VBOs and vertex/fragment programs - - spriteblast demo didn't handle window size changes correctly - - glTexSubImage didn't handle pixels=NULL correctly for PBOs - - fixed color index mode glDrawPixels bug (Karl Schultz) - - -6.2.1 December 9, 2004 - Bug fixes: - - don't apply regular fog or color sum when using a fragment program - - glProgramEnvParameter4fARB always generated an error on - GL_FRAGMENT_PROGRAM_ARB (fdo bug 1645) - - glVertexAttrib3svNV and glVertexAttrib3svARB were broken - - fixed width/height mix-up in glSeparableFilter2D() - - fixed regression in glCopyPixels + convolution - - glReadPixels from a clipped front color buffer didn't always work - - glTexImage didn't accept GL_RED/GREEN/BLUE as the format - - Attempting queries/accesses of VBO 0 weren't detected as errors - - paletted textures failed if the palette had fewer than 256 entries - Changes: - - fixed a bunch of compiler warnings found with gcc 3.4 - - bug reports should to go bugzilla.freedesktop.org - - -6.3 July 20, 2005 - New: - - GL_EXT_framebuffer_object extension - - GL_ARB_draw_buffers extension - - GL_ARB_pixel_buffer_object extension - - GL_OES_read_format extension (Ian Romanick) - - DirectFB driver (Claudio Ciccani) - - x86_64 vertex transformation code (Mikko T.) - - Updated GL/glext.h to version 29 - Changes: - - added -stereo option for glxgears demo (Jacek Rosik) - - updated the PBuffer demo code in xdemos/ directory - - glDeleteTextures/Programs/Buffers() now makes the object ID - available for immediate re-use - - assorted 64-bit clean-ups fixes (x86_64 and Win64) - - lots of internal changes for GL_EXT_framebuffer_object - Bug fixes: - - some functions didn't support PBO functionality - - glGetTexImage didn't convert color index images to RGBA as required - - fragment program texcoords were sometimes wrong for points and lines - - fixed problem with negative dot product in arbfplight, fplight demos - - fixed bug in perspective correction of antialiased, textured lines - - querying GL_POST_CONVOLUTION_ALPHA_BIAS_EXT returned wrong value - - fixed a couple per-pixel fog bugs (Soju Matsumoto) - - glGetBooleanv(GL_FRAGMENT_PROGRAM_BINDING_NV) was broken - - fixed float parsing bug in ARB frag/vert programs (bug 2520) - - XMesaGetDepthBuffer() returned incorrect value for bytesPerValue - - GL_COLOR_MATERIAL with glColor3 didn't properly set diffuse alpha - - glXChooseFBConfig() crashed if attribList pointer was NULL - - program state.light[n].spot.direction.w was wrong value (bug 3083) - - fragment program fog option required glEnable(GL_FOG) - wrong. - - glColorTable() could produce a Mesa implementation error (bug 3135) - - RasterPos could get corrupted by color index rendering path - - Removed bad XTranslateCoordinates call when rendering to Pixmaps - - glPopAttrib() didn't properly restore GL_TEXTURE_GEN enable state - - fixed a few Darwin compilation problems - - -6.3.1 - This was an intermediate release for X.org which wasn't otherwise released. - - -6.3.2 August 19, 2005 - New: - - The distribution now includes the DRI drivers and GLX code - Changes: - - Made the DRI "new" driver interface standard, remove old code - Bug fixes: - - GL_ARB_vertex/fragment_shader were mistakenly listed in the - extensions string - - negative relative addressing in vertex programs was broken - - update/fix SPARC assembly code for vertex transformation - - fixed memory leak when freeing GLX drawables/renderbuffers - - fixed display list memory leak - - the GL_PIXEL_MAP_I_TO_I table is now floating point, not integer - - wglGetProcAddress() didn't handle wgl-functions - - fixed glxext.h cross-compile issue (Colin Harrison) - - assorted DRI driver fixes - - -6.4 October 24, 2005 - New: - - Added a fast XOR line drawing function in Xlib driver - - Added support for GL_ARB_texture_mirrored_repeat to savage - driver (supported only on Savage4 hardware). - Changes: - - Mesa now packaged in three parts: Library, Demos and GLUT - Bug fixes: - - GLX_X_RENDERABLE token wasn't accepted by glXChooseFBConfig - - Some files were present multiple times in the 6.3.2 tarballs - - r200_vtxtmp_x86.S file was missing from 6.3.2 tarball (bug 4207) - - glxgears_fbconfig demo didn't work (bug 4237) - - fixed bug when bilinear sampling 2d textures with borders - - glXCreatePbuffer() could segfault instead of returning 0 (bug 4235) - - fixed undefined frexp and rand in X.org libGLcore.a (bug 4242) - - fixed a few problems with proxy color tables (bug 4270) - - fixed precision problem in Z clearing (bug 4395) - - glBitmap, glDraw/CopyPixels mistakenly generated selection hits - - fixed potential segfault caused by reading pixels outside - of renderbuffer bounds - - glGetTexLevelParameter didn't accept GL_TEXTURE_DEPTH_SIZE_ARB - - fixed memory corruption bug involving software alpha buffers - - glReadPixels clipped by window bounds was sometimes broken - - glDraw/CopyPixels of stencil data ignored the stencil write mask - - glReadPixels from a texture bound to a framebuffer object didn't work - - glIsRender/FramebufferEXT weren't totally correct - - fixed a number of point size attenuation/fade bugs - - fixed glFogCoord bug 4729 - - GLX encoding for transpose matrix functions was broken - - fixed broken fragment program KIL and SWZ instructions - - fragment programs that wrote result.depth.z didn't work - - -6.4.1 November 30, 2005 - Bug fixes: - - redefining a vertex program string didn't take effect in TNL module - - fixed occasional segfault upon vertex/fragment parsing error - - vertex program LIT instruction didn't handle 0^0=1 correctly - - fragment program fog option didn't work with glDrawPixels, glBitmap - - USE_MGL_NAMESPACE didn't work for x86-64 - - OSMesa demos were missing from previous release tarballs - - fixed problem with float->ushort conversion in glClear (bug 4992) - - popping of GL_EYE_PLANE texgen state was broken (bug 4996) - - popping of GL_SPOT_DIRECTION light state was broken (bug 5005) - - fixed occasional triangle color interpolation problem on VMS - - work around invalid free() call (bug 5131) - - fixed BSD X server compilation problem by including stdint.h diff --git a/nx-X11/extras/Mesa/docs/banner.html b/nx-X11/extras/Mesa/docs/banner.html deleted file mode 100644 index 9cb27bb6d..000000000 --- a/nx-X11/extras/Mesa/docs/banner.html +++ /dev/null @@ -1,27 +0,0 @@ - - - - Banner - - -
- - - - - - - - -
-

-
The -Mesa 3D Graphics Library -

-
-


-

-
- - diff --git a/nx-X11/extras/Mesa/docs/bugs.html b/nx-X11/extras/Mesa/docs/bugs.html deleted file mode 100644 index d255f4292..000000000 --- a/nx-X11/extras/Mesa/docs/bugs.html +++ /dev/null @@ -1,49 +0,0 @@ - - -Mesa Bug Reporting - - - - - -

Bug Database

- -

-The Mesa bug database is now hosted on -freedesktop.org -instead of SourceForge. -

- -

-To file a Mesa bug, go to - -Bugzilla on freedesktop.org -

- -

-Please follow these bug reporting guidelines: -

- -
    -
  • Make sure you're using the most recent version of Mesa -
  • Make sure your bug isn't already reported -
  • Include as much information as possible in the report -
  • Provide a simple GLUT-based test program if possible -
  • Check back for follow-ups to the report -
- -

-Bug reports will automatically be forwarded to the Mesa developer's mailing -list. -

- -

-The easier a bug is to reproduce, the sooner it will be fixed. -Please do everything you can to facilitate quickly fixing bugs. -If your bug report is vague or your test program doesn't compile -easily, the problem may not be fixed very quickly. -

- - - diff --git a/nx-X11/extras/Mesa/docs/conform.html b/nx-X11/extras/Mesa/docs/conform.html deleted file mode 100644 index 3611f8c6f..000000000 --- a/nx-X11/extras/Mesa/docs/conform.html +++ /dev/null @@ -1,695 +0,0 @@ - - -Conformance - - - - - -

Conformance

- -

-The SGI OpenGL conformance tests verify correct operation of OpenGL -implementations. I, Brian Paul, have been given a copy of the tests -for testing Mesa. The tests are not publically available. -

-

-This file has the latest results of testing Mesa with the OpenGL 1.2 -conformance tests. Testing with the preliminary OpenGL 1.3 tests has -also been done. Mesa passes all the 1.3 tests. -

-

-The tests were run using the software X11 device driver on 24-bpp -and 16-bpp displays. -

-

-Mesa 4.0 and later pass all conformance tests at all path levels. -Note that this says nothing about the conformance of hardware drivers -based upon Mesa. -

- - -
-
-COVERAGE TESTS
---------------
-
-Test that all API functions accept the legal parameters and reject
-illegal parameters.  The result of each test is either pass or fail.
-
-% covgl
-OpenGL Coverage Test.
-Version 1.2
-
-covgl passed.
-
-covgl passed at 1.1 level.
-
-covgl passed at 1.2 level.
-
-covgl passed for ARB_multitexture.
-
-
-% covglu
-OpenGL GLU Coverage Test.
-Version 1.3
-
-covglu passed.
-
-covglu passed at 1.1 level.
-
-
-% covglx
-OpenGL X Coverage Test.
-Version 1.1.1
-
-covglx passed.
-
-
-% primtest -v
-Open GL Primitives Test.
-Version 1.2
-
-[lots of output deleted]
-
-292159 Combinations.
-primtest passed.
-
-
-
-
-GL CONFORMANCE TEST
-===================
-
-Render test images, read them back, then test for expected results.
-
-
-----------------------------------------------------------------------
-% conform -v 2
-
-OpenGL Conformance Test
-Version 1.2
-
-Setup Report.
-    Verbose level = 2.
-    Random number seed = 1.
-    Path inactive.
-
-Visual Report.
-    Display ID = 35. Indirect Rendering.
-    Double Buffered.
-    RGBA (5, 6, 5, 0).
-    Stencil (8).
-    Depth (16).
-    Accumulation (16, 16, 16, 16).
-
-Epsilon Report.
-    zero error epsilon = 0.000122.
-    RGBA error epsilon = 0.0324, 0.016, 0.0324, 0.000122.
-    Depth buffer error epsilon = 0.000137.
-    Stencil plane error epsilon = 0.00404.
-    Accumulation error epsilon = 0.000137, 0.000137, 0.000137, 0.000137.
-
-Default State test passed.
-Must Pass test passed.
-Divide By Zero test passed.
-Viewport Clamp test passed.
-Matrix Stack test passed.
-Matrix Stack Mixing test passed.
-Vertex Order test passed.
-Transformations test passed.
-Transformation Normal test passed.
-Viewport Transformation test passed.
-Buffer Clear test passed.
-Buffer Corners test passed.
-Buffer Color test passed.
-Color Ramp test passed.
-Mask test passed.
-Buffer Invariance test passed.
-Accumulation Buffer test passed.
-Select test passed.
-Feedback test passed.
-Scissor test passed.
-Alpha Plane Function test passed.
-Stencil Plane Clear test passed.
-Stencil Plane Corners test passed.
-Stencil Plane Operation test passed.
-Stencil Plane Function test passed.
-Depth Buffer Clear test passed.
-Depth Buffer Function test passed.
-Blend test passed.
-Dither test passed.
-LogicOp Function test does not exist for an RGB visual.
-DrawPixels test passed.
-CopyPixels test passed.
-Bitmap Rasterization test passed.
-Point Rasterization test passed.
-Anti-aliased Point test passed.
-Line Rasterization test passed.
-Line Stipple test passed.
-Anti-aliased Line test passed.
-Horizontal and Vertical Line test passed.
-Triangle Rasterization test passed.
-Triangle Tile test passed.
-Triangle Stipple test passed.
-Anti-aliased Triangles test passed.
-Quad Rasterization test passed.
-Polygon Face test passed.
-Polygon Cull test passed.
-Polygon Stipple test passed.
-Polygon Edge test passed.
-Ambient Material test passed.
-Ambient Scene test passed.
-Attenuation Position test passed.
-Diffuse Light test passed.
-Diffuse Material test passed.
-Diffuse Material Normal test passed.
-Diffuse Material Positioning test passed.
-Emissive Material test passed.
-Specular Exponent test passed.
-Specular Exponent Normal test passed.
-Specular Local Eye Half Angle test passed.
-Specular Light test passed.
-Specular Material test passed.
-Specular Normal test passed.
-Spot Positioning test passed.
-Spot Exponent and Positioning test passed.
-Spot Exponent and Direction test passed.
-Fog Exponential test passed.
-Fog Linear test passed.
-Texture Decal test passed.
-Texture Border test passed.
-Mipmaps Selection test passed.
-Mipmaps Interpolation test passed.
-Display Lists test passed.
-Evaluator test passed.
-Evaluator Color test passed.
-Texture Edge Clamp test passed.
-Packed Pixels test passed.
-Texture LOD test passed.
-Rescale Normal test passed.
-Color Table test passed.
-Convolution test passed.
-Convolution Border test passed.
-Histogram test passed.
-MinMax test passed.
-MultiTexture test passed.
-
-Conform passed.
-
-----------------------------------------------------------------------
-% conform -v 2 -p 1
-
-OpenGL Conformance Test
-Version 1.2
-
-Setup Report.
-    Verbose level = 2.
-    Random number seed = 1.
-    Path level = 1.
-
-Visual Report.
-    Display ID = 35. Indirect Rendering.
-    Double Buffered.
-    RGBA (5, 6, 5, 0).
-    Stencil (8).
-    Depth (16).
-    Accumulation (16, 16, 16, 16).
-
-Epsilon Report.
-    zero error epsilon = 0.000122.
-    RGBA error epsilon = 0.0324, 0.016, 0.0324, 0.000122.
-    Depth buffer error epsilon = 0.000137.
-    Stencil plane error epsilon = 0.00404.
-    Accumulation error epsilon = 0.000137, 0.000137, 0.000137, 0.000137.
-
-Default State test passed.
-Must Pass test passed.
-Divide By Zero test passed.
-Viewport Clamp test passed.
-Matrix Stack test passed.
-Matrix Stack Mixing test passed.
-Vertex Order test passed.
-Transformations test passed.
-Transformation Normal test passed.
-Viewport Transformation test passed.
-Buffer Clear test passed.
-Buffer Corners test passed.
-Buffer Color test passed.
-Color Ramp test passed.
-Mask test passed.
-Buffer Invariance test passed.
-Accumulation Buffer test passed.
-Select test passed.
-Feedback test passed.
-Scissor test passed.
-Alpha Plane Function test passed.
-Stencil Plane Clear test passed.
-Stencil Plane Corners test passed.
-Stencil Plane Operation test passed.
-Stencil Plane Function test passed.
-Depth Buffer Clear test passed.
-Depth Buffer Function test passed.
-Blend test passed.
-Dither test passed.
-LogicOp Function test does not exist for an RGB visual.
-DrawPixels test passed.
-CopyPixels test passed.
-Bitmap Rasterization test passed.
-Point Rasterization test passed.
-Anti-aliased Point test passed.
-Line Rasterization test passed.
-Line Stipple test passed.
-Anti-aliased Line test passed.
-Horizontal and Vertical Line test passed.
-Triangle Rasterization test passed.
-Triangle Tile test passed.
-Triangle Stipple test passed.
-Anti-aliased Triangles test passed.
-Quad Rasterization test passed.
-Polygon Face test passed.
-Polygon Cull test passed.
-Polygon Stipple test passed.
-Polygon Edge test passed.
-Ambient Material test passed.
-Ambient Scene test passed.
-Attenuation Position test passed.
-Diffuse Light test passed.
-Diffuse Material test passed.
-Diffuse Material Normal test passed.
-Diffuse Material Positioning test passed.
-Emissive Material test passed.
-Specular Exponent test passed.
-Specular Exponent Normal test passed.
-Specular Local Eye Half Angle test passed.
-Specular Light test passed.
-Specular Material test passed.
-Specular Normal test passed.
-Spot Positioning test passed.
-Spot Exponent and Positioning test passed.
-Spot Exponent and Direction test passed.
-Fog Exponential test passed.
-Fog Linear test passed.
-Texture Decal test passed.
-Texture Border test passed.
-Mipmaps Selection test passed.
-Mipmaps Interpolation test passed.
-Display Lists test passed.
-Evaluator test passed.
-Evaluator Color test passed.
-Texture Edge Clamp test passed.
-Packed Pixels test passed.
-Texture LOD test passed.
-Rescale Normal test passed.
-Color Table test passed.
-Convolution test passed.
-Convolution Border test passed.
-Histogram test passed.
-MinMax test passed.
-MultiTexture test passed.
-
-Conform passed.
-
-----------------------------------------------------------------------
-% conform -v 2 -p 2
-
-OpenGL Conformance Test
-Version 1.2
-
-Setup Report.
-    Verbose level = 2.
-    Random number seed = 1.
-    Path level = 2.
-
-Visual Report.
-    Display ID = 35. Indirect Rendering.
-    Double Buffered.
-    RGBA (5, 6, 5, 0).
-    Stencil (8).
-    Depth (16).
-    Accumulation (16, 16, 16, 16).
-
-Epsilon Report.
-    zero error epsilon = 0.000122.
-    RGBA error epsilon = 0.0324, 0.016, 0.0324, 0.000122.
-    Depth buffer error epsilon = 0.000137.
-    Stencil plane error epsilon = 0.00404.
-    Accumulation error epsilon = 0.000137, 0.000137, 0.000137, 0.000137.
-
-Default State test passed.
-Must Pass test passed.
-Divide By Zero test passed.
-Viewport Clamp test passed.
-Matrix Stack test passed.
-Matrix Stack Mixing test passed.
-Vertex Order test passed.
-Transformations test passed.
-Transformation Normal test passed.
-Viewport Transformation test passed.
-Buffer Clear test passed.
-Buffer Corners test passed.
-Buffer Color test passed.
-Color Ramp test passed.
-Mask test passed.
-Buffer Invariance test passed.
-Accumulation Buffer test passed.
-Select test passed.
-Feedback test passed.
-Scissor test passed.
-Alpha Plane Function test passed.
-Stencil Plane Clear test passed.
-Stencil Plane Corners test passed.
-Stencil Plane Operation test passed.
-Stencil Plane Function test passed.
-Depth Buffer Clear test passed.
-Depth Buffer Function test passed.
-Blend test passed.
-Dither test passed.
-LogicOp Function test does not exist for an RGB visual.
-DrawPixels test passed.
-CopyPixels test passed.
-Bitmap Rasterization test passed.
-Point Rasterization test passed.
-Anti-aliased Point test passed.
-Line Rasterization test passed.
-Line Stipple test passed.
-Anti-aliased Line test passed.
-Horizontal and Vertical Line test passed.
-Triangle Rasterization test passed.
-Triangle Tile test passed.
-Triangle Stipple test passed.
-Anti-aliased Triangles test passed.
-Quad Rasterization test passed.
-Polygon Face test passed.
-Polygon Cull test passed.
-Polygon Stipple test passed.
-Polygon Edge test passed.
-Ambient Material test passed.
-Ambient Scene test passed.
-Attenuation Position test passed.
-Diffuse Light test passed.
-Diffuse Material test passed.
-Diffuse Material Normal test passed.
-Diffuse Material Positioning test passed.
-Emissive Material test passed.
-Specular Exponent test passed.
-Specular Exponent Normal test passed.
-Specular Local Eye Half Angle test passed.
-Specular Light test passed.
-Specular Material test passed.
-Specular Normal test passed.
-Spot Positioning test passed.
-Spot Exponent and Positioning test passed.
-Spot Exponent and Direction test passed.
-Fog Exponential test passed.
-Fog Linear test passed.
-Texture Decal test passed.
-Texture Border test passed.
-Mipmaps Selection test passed.
-Mipmaps Interpolation test passed.
-Display Lists test passed.
-Evaluator test passed.
-Evaluator Color test passed.
-Texture Edge Clamp test passed.
-Packed Pixels test passed.
-Texture LOD test passed.
-Rescale Normal test passed.
-Color Table test passed.
-Convolution test passed.
-Convolution Border test passed.
-Histogram test passed.
-MinMax test passed.
-MultiTexture test passed.
-
-Conform passed.
-
-----------------------------------------------------------------------
-% conform -v 2 -p 3
-
-OpenGL Conformance Test
-Version 1.2
-
-Setup Report.
-    Verbose level = 2.
-    Random number seed = 1.
-    Path level = 3.
-
-Visual Report.
-    Display ID = 35. Indirect Rendering.
-    Double Buffered.
-    RGBA (5, 6, 5, 0).
-    Stencil (8).
-    Depth (16).
-    Accumulation (16, 16, 16, 16).
-
-Epsilon Report.
-    zero error epsilon = 0.000122.
-    RGBA error epsilon = 0.0324, 0.016, 0.0324, 0.000122.
-    Depth buffer error epsilon = 0.000137.
-    Stencil plane error epsilon = 0.00404.
-    Accumulation error epsilon = 0.000137, 0.000137, 0.000137, 0.000137.
-
-Default State test passed.
-Must Pass test passed.
-Divide By Zero test passed.
-Viewport Clamp test passed.
-Matrix Stack test passed.
-Matrix Stack Mixing test passed.
-Vertex Order test passed.
-Transformations test passed.
-Transformation Normal test passed.
-Viewport Transformation test passed.
-Buffer Clear test passed.
-Buffer Corners test passed.
-Buffer Color test passed.
-Color Ramp test passed.
-Mask test passed.
-Buffer Invariance test passed.
-Accumulation Buffer test passed.
-Select test passed.
-Feedback test passed.
-Scissor test passed.
-Alpha Plane Function test passed.
-Stencil Plane Clear test passed.
-Stencil Plane Corners test passed.
-Stencil Plane Operation test passed.
-Stencil Plane Function test passed.
-Depth Buffer Clear test passed.
-Depth Buffer Function test passed.
-Blend test passed.
-Dither test passed.
-LogicOp Function test does not exist for an RGB visual.
-DrawPixels test passed.
-CopyPixels test passed.
-Bitmap Rasterization test passed.
-Point Rasterization test passed.
-Anti-aliased Point test passed.
-Line Rasterization test passed.
-Line Stipple test passed.
-Anti-aliased Line test passed.
-Horizontal and Vertical Line test passed.
-Triangle Rasterization test passed.
-Triangle Tile test passed.
-Triangle Stipple test passed.
-Anti-aliased Triangles test passed.
-Quad Rasterization test passed.
-Polygon Face test passed.
-Polygon Cull test passed.
-Polygon Stipple test passed.
-Polygon Edge test passed.
-Ambient Material test passed.
-Ambient Scene test passed.
-Attenuation Position test passed.
-Diffuse Light test passed.
-Diffuse Material test passed.
-Diffuse Material Normal test passed.
-Diffuse Material Positioning test passed.
-Emissive Material test passed.
-Specular Exponent test passed.
-Specular Exponent Normal test passed.
-Specular Local Eye Half Angle test passed.
-Specular Light test passed.
-Specular Material test passed.
-Specular Normal test passed.
-Spot Positioning test passed.
-Spot Exponent and Positioning test passed.
-Spot Exponent and Direction test passed.
-Fog Exponential test passed.
-Fog Linear test passed.
-Texture Decal test passed.
-Texture Border test passed.
-Mipmaps Selection test passed.
-Mipmaps Interpolation test passed.
-Display Lists test passed.
-Evaluator test passed.
-Evaluator Color test passed.
-Texture Edge Clamp test passed.
-Packed Pixels test passed.
-Texture LOD test passed.
-Rescale Normal test passed.
-Color Table test passed.
-Convolution test passed.
-Convolution Border test passed.
-Histogram test passed.
-MinMax test passed.
-MultiTexture test passed.
-
-Conform passed.
-
-----------------------------------------------------------------------
-% conform -v 2 -p 4
-
-OpenGL Conformance Test
-Version 1.2
-
-Setup Report.
-    Verbose level = 2.
-    Random number seed = 1.
-    Path level = 4.
-
-Visual Report.
-    Display ID = 35. Indirect Rendering.
-    Double Buffered.
-    RGBA (5, 6, 5, 0).
-    Stencil (8).
-    Depth (16).
-    Accumulation (16, 16, 16, 16).
-
-Epsilon Report.
-    zero error epsilon = 0.000122.
-    RGBA error epsilon = 0.0324, 0.016, 0.0324, 0.000122.
-    Depth buffer error epsilon = 0.000137.
-    Stencil plane error epsilon = 0.00404.
-    Accumulation error epsilon = 0.000137, 0.000137, 0.000137, 0.000137.
-
-Default State test passed.
-Must Pass test passed.
-Divide By Zero test passed.
-Viewport Clamp test passed.
-Matrix Stack test passed.
-Matrix Stack Mixing test passed.
-Vertex Order test passed.
-Transformations test passed.
-Transformation Normal test passed.
-Viewport Transformation test passed.
-Buffer Clear test passed.
-Buffer Corners test passed.
-Buffer Color test passed.
-Color Ramp test passed.
-Mask test passed.
-Buffer Invariance test passed.
-Accumulation Buffer test passed.
-Select test passed.
-Feedback test passed.
-Scissor test passed.
-Alpha Plane Function test passed.
-Stencil Plane Clear test passed.
-Stencil Plane Corners test passed.
-Stencil Plane Operation test passed.
-Stencil Plane Function test passed.
-Depth Buffer Clear test passed.
-Depth Buffer Function test passed.
-Blend test passed.
-Dither test passed.
-LogicOp Function test does not exist for an RGB visual.
-DrawPixels test passed.
-CopyPixels test passed.
-Bitmap Rasterization test passed.
-Point Rasterization test passed.
-Anti-aliased Point test passed.
-Line Rasterization test passed.
-Line Stipple test passed.
-Anti-aliased Line test passed.
-Horizontal and Vertical Line test passed.
-Triangle Rasterization test passed.
-Triangle Tile test passed.
-Triangle Stipple test passed.
-Anti-aliased Triangles test passed.
-Quad Rasterization test passed.
-Polygon Face test passed.
-Polygon Cull test passed.
-Polygon Stipple test passed.
-Polygon Edge test passed.
-Ambient Material test passed.
-Ambient Scene test passed.
-Attenuation Position test passed.
-Diffuse Light test passed.
-Diffuse Material test passed.
-Diffuse Material Normal test passed.
-Diffuse Material Positioning test passed.
-Emissive Material test passed.
-Specular Exponent test passed.
-Specular Exponent Normal test passed.
-Specular Local Eye Half Angle test passed.
-Specular Light test passed.
-Specular Material test passed.
-Specular Normal test passed.
-Spot Positioning test passed.
-Spot Exponent and Positioning test passed.
-Spot Exponent and Direction test passed.
-Fog Exponential test passed.
-Fog Linear test passed.
-Texture Decal test passed.
-Texture Border test passed.
-Mipmaps Selection test passed.
-Mipmaps Interpolation test passed.
-Display Lists test passed.
-Evaluator test passed.
-Evaluator Color test passed.
-Texture Edge Clamp test passed.
-Packed Pixels test passed.
-Texture LOD test passed.
-Rescale Normal test passed.
-Color Table test passed.
-Convolution test passed.
-Convolution Border test passed.
-Histogram test passed.
-MinMax test passed.
-MultiTexture test passed.
-
-Conform passed.
-
-
-
-GLX CONFORMANCE TEST
-====================
-
-% conformx -v 2
-
-OpenGL X Conformance Test
-Version 1.1.1
-
-Setup Report.
-    Verbose level = 2.
-    Random number seed = 1.
-    Path inactive.
-
-Visual Report.
-    Display ID = 34. Direct Rendering.
-    Double Buffered.
-    RGBA (8, 8, 8, 0).
-    Stencil (8).
-    Depth (16).
-    Accumulation (16, 16, 16, 16).
-
-Epsilon Report.
-    zero error epsilon = 0.000122.
-    RGBA error epsilon = 0.00404, 0.00404, 0.00404, 0.000122.
-    Depth buffer error epsilon = 0.000137.
-    Stencil plane error epsilon = 0.00404.
-    Accumulation error epsilon = 0.000137, 0.000137, 0.000137, 0.000137.
-
-Default State test passed.
-glReadPixels() test passed.
-Font test passed.
-
-Conformx passed.
-
-
-
- -NOTE: conformx passes for all machine path levels (-p option). - - - - diff --git a/nx-X11/extras/Mesa/docs/contents.html b/nx-X11/extras/Mesa/docs/contents.html deleted file mode 100644 index 88b7bc7de..000000000 --- a/nx-X11/extras/Mesa/docs/contents.html +++ /dev/null @@ -1,101 +0,0 @@ - - -Contents - - - - - - - -Documentation - - -Download / Install - - -Resources - - -User Topics - - -Developer Topics - - -Links - - -Hosted by: -
-
-Sourceforge.net -
- - - \ No newline at end of file diff --git a/nx-X11/extras/Mesa/docs/custom.html b/nx-X11/extras/Mesa/docs/custom.html deleted file mode 100644 index e9beba6fa..000000000 --- a/nx-X11/extras/Mesa/docs/custom.html +++ /dev/null @@ -1,27 +0,0 @@ - - -Custom Development - - - - - -

Custom Development

- -

-Mesa is primarily developed and maintained on a volunteer basis. -Some Mesa development work has been done in conjuction with contracted -projects, such as the XFree86/DRI drivers. -

- -

-

[Begin shameless plug]
-If you have a need for specific or custom Mesa development work, - -Tungsten Graphics, Inc. may be able to help you. -
[End shameless plug]
-

- - - - diff --git a/nx-X11/extras/Mesa/docs/cvs_access.html b/nx-X11/extras/Mesa/docs/cvs_access.html deleted file mode 100644 index c57f1c832..000000000 --- a/nx-X11/extras/Mesa/docs/cvs_access.html +++ /dev/null @@ -1,106 +0,0 @@ - - -CVS Access - - - - - -

CVS Access

- -

-Mesa's CVS repository (code management system) is hosted on -freedesktop.org. -

- -

-You may access the repository either as an -anonymous user (read-only) or as a -developer -(read/write). -

- -

-You may also -browse the CVS repository. -

- - - -

Anonymous CVS Access

- -

-Anonymous, public, read-only access to the CVS repository is available. -Here are the basic instructions for Unix systems: -

- -
    -
  1. Install CVS client software on your computer if needed. - Version 1.9.28 is known to work. -
  2. Login as an anonymous user: -
    -    cvs -d:pserver:anonymous@pdx.freedesktop.org:/cvs/mesa login
    -    
    - Just press Enter/Return when prompted for a password. -
    -
    -
  3. Check out the code: -
    -    cvs -d:pserver:anonymous@pdx.freedesktop.org:/cvs/mesa co Mesa
    -    
    -
- - -

To update your Mesa CVS source to the latest CVS source:

- -
    -
  1. cd Mesa -
  2. cvs -z3 -d:pserver:anonymous@pdx.freedesktop.org:/cvs/mesa update -
- - -
-

Developer CVS Access

- -

-Mesa developers working with the Mesa CVS repository need to first -have an account on -freedesktop.org. -To get an account, please ask Brian or the other Mesa developers for -permission. -Then, if there are no objections, follow this - -procedure. -

- -

-Once your account is established, you can check out the Mesa CVS tree -with: -

-   setenv CVS_RSH ssh        (if using a csh-like shell)
-
-OR -
-   export CVS_RSH=rsh        (if using a bash-like shell)
-
-followed by: -
-   cvs -d:ext:yourusername@pdx.freedesktop.org:/cvs/mesa co Mesa
-
- -

-Of course, replace yourusername with your actual login name. -

- -

-Subsequent updates should only require: -

-
-   cvs update
-
- - - - - diff --git a/nx-X11/extras/Mesa/docs/cvs_branches.html b/nx-X11/extras/Mesa/docs/cvs_branches.html deleted file mode 100644 index 98df3d0f4..000000000 --- a/nx-X11/extras/Mesa/docs/cvs_branches.html +++ /dev/null @@ -1,80 +0,0 @@ - - -CVS Branches - - - - - -

CVS Branch Information

- -

-At any given time, there may be several active branches in Mesa's -CVS repository. - -Generally, the CVS trunk contains the latest development (unstable) -code while a CVS branch has the latest stable code. -

- -

-Currently (Oct 2004), the trunk is the Mesa 6.3 development code -while the mesa_6_2_branch branch has the stable Mesa 6.2.x code. -

- -

-Mesa releases use an even/odd numbering scheme to represent stable/development -releases. - -For example, Mesa 6.2 (0 is considered even) is a stable release while -Mesa 6.3 is a development release. -

- -

-To checkout a specific CVS branch pass -r and -the branch tag after your CVS command. - -For example cvs checkout -r mesa_6_2_branch Mesa will -checkout the 6.2 branch and cvs update -r -mesa_6_2_branch will convert your current CVS tree to the 6.2 -branch. - -Consult http://www.durak.org/cvswebsites/doc/cvs_5.php3#SEC54 -for more on branching in CVS. -

- -

-To see a list of all the CVS branches run cvs log README (or any -other file) and look for the section labeled symbolic names. -You'll see something like this: -

- -
  symbolic names:
-        mesa_4_0: 1.3
-        mesa_4_0_branch: 1.3.0.6
-        mesa_3_5: 1.3
-        mesa_3_4_2: 1.3
-        mesa_3_4_1: 1.3
-        mesa_3_4: 1.3
-        mesa_3_4_branch: 1.3.0.4
-        mesa_3_3: 1.3
-        mesa_3_2_1: 1.1.1.1
-        mesa_3_3_texture_env_combine2: 1.3.0.2
-        mesa_3_2: 1.1.1.1
-        mesa_3_2_beta_1: 1.1.1.1
-        mesa_3_1: 1.1.1.1
-        mesa_3_2_dev: 1.1.1.1.0.2
-        mesa_3_1_beta_3: 1.1.1.1
-        start: 1.1.1.1
-        mesa: 1.1.1
-
- -

-Most will be obsolete branches. Generally, the newer branches are at -the top. Ask on the mesa3d-dev mailing list to learn which branches -are active. -

- - - - \ No newline at end of file diff --git a/nx-X11/extras/Mesa/docs/debugging.html b/nx-X11/extras/Mesa/docs/debugging.html deleted file mode 100644 index 2df62f56e..000000000 --- a/nx-X11/extras/Mesa/docs/debugging.html +++ /dev/null @@ -1,38 +0,0 @@ - - -Debugging Tips - - - - - -

Debugging Tips

- -

- Normally Mesa (and OpenGL) records but does not notify the user of - errors. It is up to the application to call - glGetError to check for errors. Mesa supports an - environment variable, MESA_DEBUG, to help with debugging. If - MESA_DEBUG is defined, a message will be printed to stdout whenever - an error occurs. -

- -

- More extensive error checking is done when Mesa is compiled with the - DEBUG symbol defined. You'll have to edit the Make-config file and - add -DDEBUG to the CFLAGS line for your system configuration. You may - also want to replace any optimization flags with the -g flag so you can - use your debugger. After you've edited Make-config type 'make clean' - before recompiling. -

-

- In your debugger you can set a breakpoint in _mesa_error() to trap Mesa - errors. -

-

- There is a display list printing/debugging facility. See the end of - src/dlist.c for details. -

- - - diff --git a/nx-X11/extras/Mesa/docs/demos.html b/nx-X11/extras/Mesa/docs/demos.html deleted file mode 100644 index b4a2cc5e3..000000000 --- a/nx-X11/extras/Mesa/docs/demos.html +++ /dev/null @@ -1,18 +0,0 @@ - - -Demos - - - - - -

Demos

- - - - - - - \ No newline at end of file diff --git a/nx-X11/extras/Mesa/docs/devinfo.html b/nx-X11/extras/Mesa/docs/devinfo.html deleted file mode 100644 index 9fcd8cf53..000000000 --- a/nx-X11/extras/Mesa/docs/devinfo.html +++ /dev/null @@ -1,206 +0,0 @@ - - -Development Notes - - - - - -

Development Notes

- - -

Adding Extentions

- -

-To add a new GL extension to Mesa you have to do at least the following. - -

    -
  • - If glext.h doesn't define the extension, edit include/GL/gl.h and add - code like this: -
    -     #ifndef GL_EXT_the_extension_name
    -     #define GL_EXT_the_extension_name 1
    -     /* declare the new enum tokens */
    -     /* prototype the new functions */
    -     /* TYPEDEFS for the new functions */
    -     #endif
    -   
    -
  • -
  • - In the src/mesa/glapi/ directory, add the new extension functions and - enums to the gl_API.xml file. - Then, a bunch of source files must be regenerated by executing the - corresponding Python scripts. -
  • -
  • - Find an existing extension that's similar to the new one and search - the sources for code related to that extension. - Implement new code as needed. - In general, new state variables will be added to mtypes.h. If the - extension is rather large, try to implement it in a new source file. -
  • -
  • - If the new extension adds new GL state, the functions in get.c, enable.c - and attrib.c will most likely require new code. -
  • -
- - - -

Coding Style

- -

-Mesa's code style has changed over the years. Here's the latest. -

- -

-Comment your code! It's extremely important that open-source code be -well documented. Also, strive to write clean, easily understandable code. -

- -

-3-space indentation -

- -

-If you use tabs, set them to 8 columns -

- -

-Brace example: -

-
-	if (condition) {
-	   foo;
-	}
-	else {
-	   bar;
-	}
-
- -

-Here's the GNU indent command which will best approximate my preferred style: -

-
-	indent -br -i3 -npcs infile.c -o outfile.c
-
- - -

-Local variable name example: localVarName (no underscores) -

- -

-Constants and macros are ALL_UPPERCASE, with _ between words -

- -

-Global variables are not allowed. -

- -

-Function name examples: -

-
-	glFooBar()       - a public GL entry point (in dispatch.c)
-	_mesa_FooBar()   - the internal immediate mode function
-	save_FooBar()    - retained mode (display list) function in dlist.c
-	foo_bar()        - a static (private) function
-	_mesa_foo_bar()  - an internal non-static Mesa function
-
- - -

Making a New Mesa Release

- -

-These are the instructions for making a new Mesa release. -

- -

Get latest source files

-

-Use "cvs update -dAP " to get the latest Mesa files from CVS. -

- - -

Verify and update version info

-

-Create/edit the docs/RELNOTES-X.Y file to document what's new in the release. -Add the new RELNOTES-X.Y file to relnotes.html. -Update the docs/VERSIONS file too. -

- -

-Edit configs/default and change the MESA_MAJOR, MESA_MINOR and MESA_TINY -version numbers. -

- -

-Make sure the values in src/mesa/main/version.h is correct. -

- -

-Edit the top-level Makefile and verify that DIRECTORY, LIB_NAME and -DEMO_NAME are correct. -

- -

-Update the docs/news.html file and docs/contents.html files. -

- -

-Check in all updates to CVS. -

- -

-Tag the CVS files with the release name (in the form mesa_X_Y). -

- - -

Make the tarballs

-

-Make a symbolic link from $(DIRECTORY) to 'Mesa'. For example, -ln -s Mesa Mesa-6.3 -This is needed in order to make a correct tar file in the next step. -

- -

-Make the distribution files. From inside the Mesa directory: -

-	make tarballs
-
- -

-After the tarballs are created, the md5 checksums for the files will -be computed. -Add them to the docs/news.html file. -

- -

-Copy the distribution files to a temporary directory, unpack them, -compile everything, and run some demos to be sure everything works. -

- -

Update the website and announce the release

-

-Follow the directions on SourceForge for creating a new "release" and -uploading the tarballs. -

- -

-Update the web site by copying the docs/ directory's files to -/home/users/b/br/brianp/mesa-www/htdocs/ -

- -

-Make an announcement on the mailing lists: -mesa3d-dev@lists.sf.net, -mesa3d-users@lists.sf.net -and -mesa3d-announce@lists.sf.net -

- - - - - diff --git a/nx-X11/extras/Mesa/docs/download.html b/nx-X11/extras/Mesa/docs/download.html deleted file mode 100644 index 60d76756e..000000000 --- a/nx-X11/extras/Mesa/docs/download.html +++ /dev/null @@ -1,130 +0,0 @@ - - -Getting Mesa - - - - - -

Downloading

- -

-Current stable release: 6.4.1 -

- -

-Primary download site: -SourceForge -

- - -

-Mesa is distributed in several parts: -

-
    -
  • MesaLib-x.y.z - the main Mesa library source code, drivers - and documentation. -
  • -
  • MesaDemos-x.y.z - OpenGL demonstration and test programs. - Most of the programs require GLUT (either the - original GLUT by Mark Kilgard or - freeglut or - OpenGLUT). -
  • -
  • MesaGLUT-x.y.z - Mark Kilgard's GLUT, easily compiled and used - with Mesa. Plus, other implementation of GLUT for DOS, OS/2, BeOS, etc. -
  • -
- -

-If you're not interested in running the demos, you'll only need the first -package. -

- -

-The packages are available in .tar.gz, .tar.bz2 and .zip formats. -Other organizations might offer additional package formats. -

- -

Unpacking

- -

-All the packages should be in the same directory prior to unpacking. -

- -
    -
  • To unpack .tar.gz files: -
    -	tar zxf MesaLib-X.Y.tar.gz
    -	tar zxf MesaDemos-X.Y.tar.gz
    -	tar zxf MesaGLUT-X.Y.tar.gz
    -
    -or -
    -	gzcat MesaLib-X.Y.tar.gz | tar xf -
    -	gzcat MesaDemos-X.Y.tar.gz | tar xf -
    -	gzcat MesaGLUT-X.Y.tar.gz | tar xf -
    -
    -or -
    -	gunzip MesaLib-X.Y.tar.gz ; tar xf MesaLib-X.Y.tar
    -	gunzip MesaDemos-X.Y.tar.gz ; tar xf MesaDemos-X.Y.tar
    -	gunzip MesaGLUT-X.Y.tar.gz ; tar xf MesaGLUT-X.Y.tar
    -
    -
  • To unpack .tar.bz2 files: -
    -	bunzip2 -c MesaLib-X.Y.tar.gz | tar xf -
    -	bunzip2 -c MesaDemos-X.Y.tar.gz | tar xf -
    -	bunzip2 -c MesaGLUT-X.Y.tar.gz | tar xf -
    -
    -
  • To unpack .zip files: -
    -	unzip MesaLib-X.Y.zip
    -	unzip MesaDemos-X.Y.zip
    -	unzip MesaGLUT-X.Y.zip
    -
    -
- - -

Contents

- -

-After unpacking you'll have these directories: -

-
-Makefile	- top-level Makefile for most systems
-configs/	- makefile parameter files for various systems
-include/	- GL header (include) files
-bin/		- shell scripts for making shared libraries, etc
-docs/		- documentation
-src/		- source code for libraries
-src/mesa	- sources for the main Mesa library and device drivers
-src/glu		- libGLU source code
-src/glw		- Xt/Motif/OpenGL widget code
-
- -If you downloaded and unpacked the MesaDemos.X.Y package: - -
-progs/demos	- original Mesa demos
-progs/xdemos	- GLX OpenGL/Mesa demos
-progs/redbook	- examples from the OpenGL Programming Guide
-progs/samples	- examples from SGI
-progs/images/	- image files
-
- -If you downloaded and unpacked the MesaGLUT.X.Y package: -
-src/glut	- GLUT library source code
-
- -

-Proceed to the compilation and installation -instructions. -

- - - - diff --git a/nx-X11/extras/Mesa/docs/enums.txt b/nx-X11/extras/Mesa/docs/enums.txt deleted file mode 100644 index 218391c30..000000000 --- a/nx-X11/extras/Mesa/docs/enums.txt +++ /dev/null @@ -1,42 +0,0 @@ - -Blocks allocated to Mesa: - 0x8750-0x875F - 0x8BB0-0x8BBF - - -GL_MESA_packed_depth_stencil - GL_DEPTH_STENCIL_MESA 0x8750 - GL_UNSIGNED_INT_24_8_MESA 0x8751 - GL_UNSIGNED_INT_8_24_REV_MESA 0x8752 - GL_UNSIGNED_SHORT_15_1_MESA 0x8753 - GL_UNSIGNED_SHORT_1_15_REV_MESA 0x8754 - -GL_MESA_trace.spec: - GL_TRACE_ALL_BITS_MESA 0xFFFF - GL_TRACE_OPERATIONS_BIT_MESA 0x0001 - GL_TRACE_PRIMITIVES_BIT_MESA 0x0002 - GL_TRACE_ARRAYS_BIT_MESA 0x0004 - GL_TRACE_TEXTURES_BIT_MESA 0x0008 - GL_TRACE_PIXELS_BIT_MESA 0x0010 - GL_TRACE_ERRORS_BIT_MESA 0x0020 - GL_TRACE_MASK_MESA 0x8755 - GL_TRACE_NAME_MESA 0x8756 - -MESA_ycbcr_texture.spec: - GL_YCBCR_MESA 0x8757 - GL_UNSIGNED_SHORT_8_8_MESA 0x85BA /* same as Apple's */ - GL_UNSIGNED_SHORT_8_8_REV_MESA 0x85BB /* same as Apple's */ - -GL_MESA_pack_invert.spec - GL_PACK_INVERT_MESA 0x8758 - -GL_MESA_program_debug.spec: - GL_FRAGMENT_PROGRAM_CALLBACK_MESA 0x???? - GL_VERTEX_PROGRAM_CALLBACK_MESA 0x???? - GL_FRAGMENT_PROGRAM_POSITION_MESA 0x???? - GL_VERTEX_PROGRAM_POSITION_MESA 0x???? - GL_FRAGMENT_PROGRAM_CALLBACK_FUNC_MESA 0x???? - GL_FRAGMENT_PROGRAM_CALLBACK_DATA_MESA 0x???? - GL_VERTEX_PROGRAM_CALLBACK_FUNC_MESA 0x???? - GL_VERTEX_PROGRAM_CALLBACK_DATA_MESA 0x???? - diff --git a/nx-X11/extras/Mesa/docs/envvars.html b/nx-X11/extras/Mesa/docs/envvars.html deleted file mode 100644 index 60cfd3f0c..000000000 --- a/nx-X11/extras/Mesa/docs/envvars.html +++ /dev/null @@ -1,44 +0,0 @@ - - -Environment Variables - - - - - -

Environment Variables

- -

-Mesa supports the following environment variables: -

-
    -
  • MESA_NO_ASM - if set, disables all assembly language optimizations -
  • MESA_NO_MMX - if set, disables Intel MMX optimizations -
  • MESA_NO_3DNOW - if set, disables AMD 3DNow! optimizations -
  • MESA_NO_SSE - if set, disables Intel SSE optimizations -
  • MESA_DEBUG - if set, error messages are printed to stderr. -If the value of MESA_DEBUG is "FP" floating point arithmetic errors will -generate exceptions. -
  • MESA_NO_DITHER - if set, disables dithering, overriding glEnable(GL_DITHER) -
- -

-The following environment variables are only applicable to the Xlib/X11 -software driver: -

-
    -
  • MESA_RGB_VISUAL - specifies the X visual and depth for RGB mode (X only) -
  • MESA_CI_VISUAL - specifies the X visual and depth for CI mode (X only) -
  • MESA_BACK_BUFFER - specifies how to implement the back color buffer (X only) -
  • MESA_GAMMA - gamma correction coefficients (X only) -
  • MESA_XSYNC - enable synchronous X behavior (for X debugging only) -
  • MESA_GLX_FORCE_CI - if set, force GLX to treak 8bpp visuals as CI visuals -
  • MESA_GLX_FX - set to either "fullscreen" for full-screen rendering, - "window" to render into a window, or "disable" to disable the Glide driver. -
  • MESA_GLX_FORCE_ALPHA - if set, forces RGB windows to have an alpha channel. -
  • MESA_GLX_DEPTH_BITS - specifies default number of bits for depth buffer. -
- - - - diff --git a/nx-X11/extras/Mesa/docs/extensions.html b/nx-X11/extras/Mesa/docs/extensions.html deleted file mode 100644 index dbb8ebada..000000000 --- a/nx-X11/extras/Mesa/docs/extensions.html +++ /dev/null @@ -1,34 +0,0 @@ - - -Mesa Extensions - - - - - -

Mesa Extensions

- -

-A number of extensions have been developed especially for Mesa. -The specifications follow. -

- - - - - - - diff --git a/nx-X11/extras/Mesa/docs/faq.html b/nx-X11/extras/Mesa/docs/faq.html deleted file mode 100644 index b93d5007d..000000000 --- a/nx-X11/extras/Mesa/docs/faq.html +++ /dev/null @@ -1,394 +0,0 @@ - - -Mesa FAQ - - - - - - -
-

Mesa Frequently Asked Questions

-Last updated: 21 October 2004 -
- -
-
-

Index

-1. High-level Questions and Answers -
-2. Compilation and Installation Problems -
-3. Runtime / Rendering Problems -
-4. Developer Questions -
-
-
- - - - -

1. High-level Questions and Answers

- -

1.1 What is Mesa?

-

-Mesa is an open-source implementation of the OpenGL specification. -OpenGL is a programming library for writing interactive 3D applications. -See the OpenGL website for more -information. -

-

-Mesa 6.x supports the OpenGL 1.5 specification. -

- - -

1.2 Does Mesa support/use graphics hardware?

-

-Yes. Specifically, Mesa serves as the OpenGL core for the open-source DRI -drivers for XFree86/X.org. See the DRI -website for more information. -

-

-There have been other hardware drivers for Mesa over the years (such as -the 3Dfx Glide/Voodoo driver, an old S3 driver, etc) but the DRI drivers -are the modern ones. -

- -

1.3 What purpose does Mesa serve today?

-

-Hardware-accelerated OpenGL implementations are available for most popular -operating systems today. -Still, Mesa serves at least these purposes: -

-
    -
  • Mesa is used as the core of the open-source XFree86/X.org DRI - hardware drivers. -
  • -
  • Mesa is quite portable and allows OpenGL to be used on systems - that have no other OpenGL solution. -
  • -
  • Software rendering with Mesa serves as a reference for validating the - hardware drivers. -
  • -
  • A software implementation of OpenGL is useful for experimentation, - such as testing new rendering techniques. -
  • -
  • Mesa can render images with deep color channels: 16-bit integer - and 32-bit floating point color channels are supported. - This capability is only now appearing in hardware. -
  • -
  • Mesa's internal limits (max lights, clip planes, texture size, etc) can be - changed for special needs (hardware limits are hard to overcome). -
  • -
- - -

1.4 What's the difference between"Stand-Alone" Mesa and the DRI drivers?

-

-Stand-alone Mesa is the original incarnation of Mesa. -On systems running the X Window System it does all its rendering through -the Xlib API: -

    -
  • The GLX API is supported, but it's really just an emulation of the - real thing. -
  • The GLX wire protocol is not supported and there's no OpenGL extension - loaded by the X server. -
  • There is no hardware acceleration. -
  • The OpenGL library, libGL.so, contains everything (the programming API, - the GLX functions and all the rendering code). -
-

-

-Alternately, Mesa acts as the core for a number of OpenGL hardware drivers -within the DRI (Direct Rendering Infrastructure): -

    -
  • The libGL.so library provides the GL and GLX API functions, a GLX - protocol encoder, and a device driver loader. -
  • The device driver modules (such as r200_dri.so) contain a built-in - copy of the core Mesa code. -
  • The X server loads the GLX module. - The GLX module decodes incoming GLX protocol and dispatches the commands - to a rendering module. - For the DRI, this module is basically a software Mesa renderer. -
- - - -

1.5 How do I upgrade my DRI installation to use a new Mesa release?

-

-This wasn't easy in the past. -Now, the DRI drivers are included in the Mesa tree and can be compiled -separately from the X server. -Just follow the Mesa compilation instructions. -

- - -

1.6 Are there other open-source implementations of OpenGL?

-

-Yes, SGI's -OpenGL Sample Implemenation (SI) is available. -The SI was written during the time that OpenGL was originally designed. -Unfortunately, development of the SI has stagnated. -Mesa is much more up to date with modern features and extensions. -

- -

-Vincent is -an open-source implementation of OpenGL ES for mobile devices. - -

-miniGL -is a subset of OpenGL for PalmOS devices. - -

-TinyGL is a subset of OpenGL. -

- -

-SoftGL -is an OpenGL subset for mobile devices. -

- -

-Chromium -isn't a conventional OpenGL implementation (it's layered upon OpenGL), -but it does export the OpenGL API. It allows tiled rendering, sort-last -rendering, etc. -

- -

-There may be other open OpenGL implementations, but Mesa is the most -popular and feature-complete. -

- - - -
-
- - - -

2. Compilation and Installation Problems

- - -

2.1 What's the easiest way to install Mesa?

-

-If you're using a Linux-based system, your distro CD most likely already -has Mesa packages (like RPM or DEB) which you can easily install. -

- - -

2.2 Running configure; make doesn't Work

-

-Mesa no longer supports GNU autoconf/automake. Why? -

    -
  • It seemed to seldom work on anything but Linux -
  • The config files were hard to maintain and hard to understand -
  • libtool caused a lot of grief -
- -

-Now Mesa again uses a conventional Makefile system (as it did originally). -Basically, each Makefile in the tree includes one of the configuration -files from the config/ directory. -The config files specify all the variables for a variety of popular systems. -

- - -

2.3 I get undefined symbols such as bgnpolygon, v3f, etc...

-

-You're application is written in IRIS GL, not OpenGL. -IRIS GL was the predecessor to OpenGL and is a different thing (almost) -entirely. -Mesa's not the solution. -

- - -

2.4 Where is the GLUT library?

-

-GLUT (OpenGL Utility Toolkit) is in the separate MesaGLUT-x.y.z.tar.gz file. -If you don't already have GLUT installed, you should grab the MesaGLUT -package and compile it with the rest of Mesa. -

- - - -

2.5 What's the proper place for the libraries and headers?

-

-On Linux-based systems you'll want to follow the -Linux ABI standard. -Basically you'll want the following: -

-
    -
  • /usr/include/GL/gl.h - the main OpenGL header -
  • /usr/include/GL/glu.h - the OpenGL GLU (utility) header -
  • /usr/include/GL/glx.h - the OpenGL GLX header -
  • /usr/include/GL/glext.h - the OpenGL extensions header -
  • /usr/include/GL/glxext.h - the OpenGL GLX extensions header -
  • /usr/include/GL/osmesa.h - the Mesa off-screen rendering header -
  • /usr/lib/libGL.so - a symlink to libGL.so.1 -
  • /usr/lib/libGL.so.1 - a symlink to libGL.so.1.xyz -
  • /usr/lib/libGL.so.xyz - the actual OpenGL/Mesa library. xyz denotes the -Mesa version number. -
  • /usr/lib/libGLU.so - a symlink to libGLU.so.1 -
  • /usr/lib/libGLU.so.1 - a symlink to libGLU.so.1.3.xyz -
  • /usr/lib/libGLU.so.xyz - the OpenGL Utility library. xyz denotes the Mesa -version number. -
-

-After installing XFree86/X.org and the DRI drivers, some of these files -may be symlinks into the /usr/X11R6/ tree. -

-

-The old-style Makefile system doesn't install the Mesa libraries; it's -up to you to copy them (and the headers) to the right place. -

-

-The GLUT header and library should go in the same directories. -

-
-
- - - -

3. Runtime / Rendering Problems

- -

3.1 Rendering is slow / why isn't my graphics hardware being used?

-

-Stand-alone Mesa (downloaded as MesaLib-x.y.z.tar.gz) doesn't have any -support for hardware acceleration (with the exception of the 3DFX Voodoo -driver). -

-

-What you really want is a DRI or NVIDIA (or another vendor's OpenGL) driver -for your particular hardware. -

-

-You can run the glxinfo program to learn about your OpenGL -library. -Look for the GL_VENDOR and GL_RENDERER values. -That will identify who's OpenGL library you're using and what sort of -hardware it has detected. -

-

-If your DRI-based driver isn't working, go to the -DRI website for trouble-shooting information. -

- - -

3.2 I'm seeing errors in depth (Z) buffering. Why?

-

-Make sure the ratio of the far to near clipping planes isn't too great. -Look - -here for details. -

-

-Mesa uses a 16-bit depth buffer by default which is smaller and faster -to clear than a 32-bit buffer but not as accurate. -If you need a deeper you can modify the parameters to - glXChooseVisual in your code. -

- - -

3.3 Why Isn't depth buffering working at all?

-

-Be sure you're requesting a depth buffered-visual. If you set the MESA_DEBUG -environment variable it will warn you about trying to enable depth testing -when you don't have a depth buffer. -

-

Specifically, make sure glutInitDisplayMode is being called -with GLUT_DEPTH or glXChooseVisual is being -called with a non-zero value for GLX_DEPTH_SIZE. -

-

This discussion applies to stencil buffers, accumulation buffers and -alpha channels too. -

- - -

3.4 Why does glGetString() always return NULL?

-

-Be sure you have an active/current OpenGL rendering context before -calling glGetString. -

- - -

3.5 GL_POINTS and GL_LINES don't touch the right pixels

-

-If you're trying to draw a filled region by using GL_POINTS or GL_LINES -and seeing holes or gaps it's because of a float-to-int rounding problem. -But this is not a bug. -See Appendix H of the OpenGL Programming Guide - "OpenGL Correctness Tips". -Basically, applying a translation of (0.375, 0.375, 0.0) to your coordinates -will fix the problem. -

- -
-
- - - -

4. Developer Questions

- -

4.1 How can I contribute?

-

-First, join the Mesa3d-dev mailing list. That's where Mesa development -is discussed. -

-

-The -OpenGL Specification is the bible for OpenGL implemention work. -You should read it. -

-

Most of the Mesa development work involves implementing new OpenGL -extensions, writing hardware drivers (for the DRI), and code optimization. -

- -

4.2 How do I write a new device driver?

-

-Unfortunately, writing a device driver isn't easy. -It requires detailed understanding of OpenGL, the Mesa code, and your -target hardware/operating system. -3D graphics are not simple. -

-

-The best way to get started is to use an existing driver as your starting -point. -For a software driver, the X11 and OSMesa drivers are good examples. -For a hardware driver, the Radeon and R200 DRI drivers are good examples. -

-

The DRI website has more information about writing hardware drivers. -The process isn't well document because the Mesa driver interface changes -over time, and we seldome have spare time for writing documentation. -That being said, many people have managed to figure out the process. -

-

-Joining the appropriate mailing lists and asking questions (and searching -the archives) is a good way to get information. -

- - -

4.3 Why isn't GL_EXT_texture_compression_s3tc implemented in Mesa and/or the DRI drivers?

-

-The specification for the extension -indicates that there are intellectual property (IP) and/or patent issues -to be dealt with. -

-

We've been unsucessful in getting a response from S3 (or whoever owns -the IP nowadays) to indicate whether or not an open source project can -implement the extension (specifically the compression/decompression -algorithms). -

-

-Until we can get official permission to do so, this extension will not -be implemented in Mesa. -

- - - - diff --git a/nx-X11/extras/Mesa/docs/fbdev-dri.html b/nx-X11/extras/Mesa/docs/fbdev-dri.html deleted file mode 100644 index 18b0ca815..000000000 --- a/nx-X11/extras/Mesa/docs/fbdev-dri.html +++ /dev/null @@ -1,315 +0,0 @@ - - -Mesa fbdev/DRI Environment - - - - - -

Mesa fbdev/DRI Drivers

- - -

1. Introduction

- -

-The fbdev/DRI sub-project within Mesa brings hardware accelerated OpenGL -rendering to the Linux fbdev environment. -The X Window System / XFree86 is not needed. -

- -

-Basically, the DRI drivers for hardware -accelerated OpenGL for XFree86 have been ported to fbdev so that X is -not needed. -This means fbdev/DRI works in full-screen mode only. -

- -

-DRI driver writers may find this simplified environment easier to work in, -compared to the full XFree86/DRI environment. -

- -

-Much of the work for this project has been done by Jon Smirl and -Keith Whitwell. -

- -

-To use fbdev/DRI, you'll need a Linux 2.4 or 2.6 kernel. -

- -

Background Info

- -

-The Mesa-based DRI drivers used to be hosted in the DRI tree (which is -basically a copy of the XFree86 tree). -Since the Mesa-based DRI drivers are moreso "Mesa drivers" than "XFree86 -drivers" and the fact that with some work, the drivers could be used -without X, the driver code was moved into the Mesa tree. -

- -

-So now the DRI drivers can be compiled for two different environments: -fbdev and XFree86. -To build the drivers for XFree86, one has to download/build the DRI -source tree. -Eventually, we'd like to be able to build the drivers for XFree86 outside -of the XFree86/DRI trees. -

- - - - -

2. Compilation

- -

2.1 Compiling the DRM modules

- -

-First, you'll need the DRM (Direct Rendering Manager) kernel module sources. -They're found in a module of the DRI CVS tree. -To obtain the code do the following: -

-
-   cvs -d:pserver:anonymous@pdx.freedesktop.org:/cvs/dri login
-
-

-Press Enter/Return when prompted for a password. Then, -

-
-   cvs -d:pserver:anonymous@pdx.freedesktop.org:/cvs/dri co drm
-
- -

-Compile the DRM kernel modules: -

-
-  cd drm/linux
-  make
-
- -

-Note: you may need to be root in order to make a few symlinks. -

-

-When compilation is done, you should have at least the following -kernel modules: -

-
-  gamma.o
-  i810.o
-  i830.o
-  mach64.o
-  mga.o
-  r128.o
-  radeon.o
-  savage.o
-  sis.o
-  tdfx.o
-  via.o
-
-

-You'll probably want to copy/move them into your kernel module directory -(for example: /lib/modules/2.4.18-14/kernel/drivers/char/drm/). -

- - - -

2.2 Compiling the Mesa drivers

- -

-Begin by editing the Mesa/configs/default file to set -the DRM_SOURCE_PATH variable. -Set it to the location where the DRM module sources are located. -For example, if your current directory in step 2.1 was /home/fred/ -set DRM_SOURCE_PATH to /home/fred/drm -

- -

-Next, assuming you're starting with a fresh Mesa CVS checkout, -do the following: -

-
-   make linux-solo
-
- -

-If you previously built the source tree, run make realclean -first to remove the old object files. -

- -

-When this is finished, check the Mesa/lib/ directory -to verify that the following files were made: -

- -
    -
  • libGL.so.1.2 - the client-side OpenGL library - (and a few symlinks to it). -
  • libGLU.so.1.1 - the GLU library (and a few symlinks to it). -
  • libglut.so.3.7 - the GLUT library (and a few symlinks to it). -
  • mga_dri.so - DRI driver for Matrox G200/G400 cards. -
  • r128_dri.so - DRI driver for ATI Rage 128 cards. -
  • r200_dri.so - DRI driver for ATI R200 Radeon cards. -
  • radeon_dri.so - DRI driver for original ATI Radeon cards. -
  • i810_dri.so - DRI driver for Intel i810/i815 chips. -
  • i830_dri.so - DRI driver for Intel i830/i845 chips. -
  • mga_dri.so - DRI driver for Matrox G200/G400 cards. -
  • sis_dri.so - DRI driver for SIS cards. -
  • tdfx_dri.so - DRI driver for 3dfx Voodoo 3/4/5 cards. -
  • gamma_dri.so - DRI driver for 3Dlabs gamma cards. -
  • fb_dri.so - software-only fbdev driver. -
  • miniglx.conf - configuration file for the MiniGLX interface -
- - -

3. Using fbdev/DRI

- -

-If XFree86 is currently running, exit/stop the X server so you're -working from the console. -

- - -

3.1 Load Kernel Modules

- -

-You'll need to load the kernel modules specific to your graphics hardware. -Typically, this consists of the agpgart module, an fbdev driver module -and the DRM kernel module (from step 2.1). -

- - -

-If you have ATI Radeon/R200 hardware, run as root: -

-
-   modprobe agpgart            # the AGP GART module
-   modprobe radeonfb           # the Radeon fbdev driver
-   modprobe radeon             # the Radeon DRI kernel module
-
- -

-If you have ATI Rage 128 hardware, run as root: -

-
-   modprobe agpgart            # the AGP GART module
-   modprobe aty128fb           # the Rage 128 fbdev driver
-   modprobe r128               # the Rage 128 DRI kernel module
-
- -

-If you have Matrox G200/G400 hardware, run as root: -

-
-   modprobe agpgart            # the AGP GART module
-   modprobe mgafb              # the Matrox fbdev driver
-   modprobe mga                # the Matrox DRI kernel module
-
- -

-Then run lsmod to be sure the modules are loaded. -For a Radeon card, you should see something like this: -

-
-Module                  Size  Used by    Not tainted
-radeon                110308   0  (unused)
-radeonfb               21900   0  (unused)
-agpgart                43072   1 
-
- - - -

3.2 Configuration File

- -

-The Mesa/lib/miniglx.conf file should be installed -in /etc/. -

- -

-Edit /etc/miniglx.conf to be sure it's set up correctly -for your hardware. -Comments in the file explain the options. -

- - -

3.3 Running fbdev/DRI Programs

- -

-Make sure your LD_LIBRARY_PATH environment variable is set to the -Mesa/lib/ directory. -

- -

-Change to the Mesa/progs/miniglx/ directory and -start the sample_server program in the background: -

-
-   ./sample_server &
-
- -

-Then try running the miniglxtest program: -

-
-   ./miniglxtest
-
-

-You should see a rotating quadrilateral which changes color as it rotates. -It will exit automatically after a bit. -

- -

-If you run other tests in the miniglx/ directory, you may want to run -them from a remote shell so that you can stop them with ctrl-C. -

- - - -

4.0 Troubleshooting

- -

-If you try to run miniglxtest and get the following: -

-
-   [miniglx] failed to probe chipset
-   connect: Connection refused
-   server connection lost
-
-

-It means that the sample_server process is not running. -

- - - - -

5.0 Programming Information

- -

-The full OpenGL API is available with fbdev/DRI. -

- -

-OpenGL/Mesa is interfaced to fbdev via the MiniGLX -interface. -MiniGLX is a subset of Xlib and GLX API functions which provides just -enough functionality to setup OpenGL rendering and respond to simple -input events. -

- -

-Since MiniGLX is a subset of the usual Xlib and GLX APIs, programs written -to the MiniGLX API can also be run on full Xlib/GLX implementations. -This allows some degree of flexibility for software development and testing. -

- -

-However, the MiniGLX API is not binary-compatible with full Xlib/GLX. -Some of the structures are different and some macros/functions work -differently. -See the GL/miniglx.h header file for details. -

- - - - diff --git a/nx-X11/extras/Mesa/docs/games.html b/nx-X11/extras/Mesa/docs/games.html deleted file mode 100644 index dcf5cf2d0..000000000 --- a/nx-X11/extras/Mesa/docs/games.html +++ /dev/null @@ -1,64 +0,0 @@ - - -Games - - - - - -

Games

- - - - - - \ No newline at end of file diff --git a/nx-X11/extras/Mesa/docs/gears.png b/nx-X11/extras/Mesa/docs/gears.png deleted file mode 100644 index 4052b30ed..000000000 Binary files a/nx-X11/extras/Mesa/docs/gears.png and /dev/null differ diff --git a/nx-X11/extras/Mesa/docs/glfbdev-driver.html b/nx-X11/extras/Mesa/docs/glfbdev-driver.html deleted file mode 100644 index b49950eb9..000000000 --- a/nx-X11/extras/Mesa/docs/glfbdev-driver.html +++ /dev/null @@ -1,90 +0,0 @@ - - -Mesa glFBDev Driver - - - - - -

Mesa glFBDev Driver

- - -

1. Introduction

- -

-The GLFBDev driver interface allows one to do OpenGL rendering into a -framebuffer managed with the Linux's fbdev interface. -

- -

-Basically, the programmer uses the fbdev functions to initialize the -graphics hardware and setup the framebuffer. -Then, using a calls to Mesa's glFBDev API functions, one can render -into the framebuffer with the OpenGL API functions. -

- -

-Note, only software rendering is supported; there is no hardware -acceleration. -

- - -

-The GL/glfbdev.h header file defines the glFBDev interface. -

- -

-The progs/fbdev/glfbdevtest.c demonstrates how to use the glFBDev interface. -

- -

-For more information about fbdev, see the - -Framebuffer Howto -

- - -

2. Compilation

- -

-To compile Mesa with support for the glFBDev interface: -

-   XXX todo
-
- -

-When compilation is finished look in progs/glfbdev/ for the glfbdevtest demo. -

- -

-xxx todo -

- - -

3. Compiling and linking glFBDev programs

- -

-xxx todo -

- - - -

4. Running glFBDev programs

- -

-First, you need to have a working fbdev environment. -See the - -Framebuffer Howto for information. -

- -

-Programs must be run with root permission. -

- -

- - - - - diff --git a/nx-X11/extras/Mesa/docs/glu.html b/nx-X11/extras/Mesa/docs/glu.html deleted file mode 100644 index 8adaf42bc..000000000 --- a/nx-X11/extras/Mesa/docs/glu.html +++ /dev/null @@ -1,45 +0,0 @@ - - -SGI GLU - - - - - -

SGI SI GLU

- -(Silicon Graphics, Inc. Sample Implementation of the OpenGL Utility library) - -

-SGI open-sourced their OpenGL Sample Implementation (SI) in January, 2000. -This includes the GLU library. -

- -

-The SI GLU library implements GLU version 1.3 whereas the original -Mesa GLU library only implemented version 1.2. -We recommend using the SI GLU library instead of Mesa's GLU library -since it's more up-to-date, complete and reliable. -We're no longer developing the original Mesa GLU library. -

- -

-The SI GLU library code is included in the Mesa distribution. -You don't have to download it separately. -

- - -

-Olivier Michel has made Linux RPMs of GLU for i386 and PowerPC. -You can download them from the -download area under Miscellaneous. -

- -

-Visit the -OpenGL Sample Implementation home page for more information about the SI. -

- - - diff --git a/nx-X11/extras/Mesa/docs/helpwanted.html b/nx-X11/extras/Mesa/docs/helpwanted.html deleted file mode 100644 index 346f093d6..000000000 --- a/nx-X11/extras/Mesa/docs/helpwanted.html +++ /dev/null @@ -1,74 +0,0 @@ - - -Help Wanted - - - - - -

Help Wanted

- -

-We can always use more help with the Mesa project. -Here are some specific ideas and areas where help would be appreciated: -

- -
    -
  1. - Generate the src/mesa/main/enums.c file with a Python script which - uses the gl_API.xml file. -

    -
  2. - Try to auto-generate the display list "save" functions seen in dlist.c - using a Python script and the gl_API.xml file. - The gl_API.xml file will probably need a new tag to indicate whether or - not each function gets compiled into display lists. -

    -
  3. - Maintenance of assembly language files on Linux, Windows and SPARC systems. -

    -
  4. - Help to incorporate the 3Dlabs' shading language compiler for OpenGL 2.0. -

    -
  5. - Implement assembly language (SSE/MMX) code generation for - vertex/fragment programs. -

    -
  6. - Windows 98/NT driver building, maintenance and testing - (Karl Schultz has been doing a great job of this lately). -

    -
  7. - Maintenance and testing of various drivers, such as DOS/DJGPP, GGI, etc. -

    -
  8. - Write new tests for Glean. -

    -
- - -

-If you want to help with Mesa, first join the Mesa developer's -mailing list. -Then post a message to propose what you want to do, just to make sure -there's no issues. -

- -

-Anyone is welcome to contribute code to the Mesa project. -By doing so, it's assumed that you agree to the code's licensing terms. -

- -

-Finally: -

- -

    -
  1. Try to write high-quality code that follows the existing style. -
  2. Use uniform indentation, write comments, use meaningful identifiers, etc. -
  3. Test your code thoroughly. Include test programs if appropriate. -
- - - - diff --git a/nx-X11/extras/Mesa/docs/index.html b/nx-X11/extras/Mesa/docs/index.html deleted file mode 100644 index eec4d725c..000000000 --- a/nx-X11/extras/Mesa/docs/index.html +++ /dev/null @@ -1,29 +0,0 @@ - - - - -Mesa Home Page - - - - - - - - - - - - - - - -<p>Sorry, this site requires frame support</p> - - - - - diff --git a/nx-X11/extras/Mesa/docs/install.html b/nx-X11/extras/Mesa/docs/install.html deleted file mode 100644 index 129daced4..000000000 --- a/nx-X11/extras/Mesa/docs/install.html +++ /dev/null @@ -1,309 +0,0 @@ - - -Compilation and Installation - - - - - - -

Compilation and Installation

- -
    -
  1. Unix / X11 -
  2. Windows -
  3. VMS -
  4. Other -
- - - - -

1. Unix/X11 Compilation and Installation

- -

1.1 Compilation

- -

-Mesa may be compiled in several different ways: -

-
- - -

-Later, if you want to rebuild for a different configuration run -make realclean before rebuilding. -

- - -

1.2 The libraries

- -

-When compilation has finished, look in the top-level lib/ -directory. -You'll see a set of library files similar to this: -

-
-lrwxrwxrwx    1 brian    users          10 Mar 26 07:53 libGL.so -> libGL.so.1*
-lrwxrwxrwx    1 brian    users          19 Mar 26 07:53 libGL.so.1 -> libGL.so.1.5.060100*
--rwxr-xr-x    1 brian    users     3375861 Mar 26 07:53 libGL.so.1.5.060100*
-lrwxrwxrwx    1 brian    users          11 Mar 26 07:53 libGLU.so -> libGLU.so.1*
-lrwxrwxrwx    1 brian    users          20 Mar 26 07:53 libGLU.so.1 -> libGLU.so.1.3.060100*
--rwxr-xr-x    1 brian    users      549269 Mar 26 07:53 libGLU.so.1.3.060100*
-lrwxrwxrwx    1 brian    users          12 Mar 26 07:53 libglut.so -> libglut.so.3*
-lrwxrwxrwx    1 brian    users          16 Mar 26 07:53 libglut.so.3 -> libglut.so.3.7.1*
--rwxr-xr-x    1 brian    users      597754 Mar 26 07:53 libglut.so.3.7.1*
-lrwxrwxrwx    1 brian    users          11 Mar 26 08:04 libGLw.so -> libGLw.so.1*
-lrwxrwxrwx    1 brian    users          15 Mar 26 08:04 libGLw.so.1 -> libGLw.so.1.0.0*
--rwxr-xr-x    1 brian    users       20750 Mar 26 08:04 libGLw.so.1.0.0*
-lrwxrwxrwx    1 brian    users          14 Mar 26 07:53 libOSMesa.so -> libOSMesa.so.6*
-lrwxrwxrwx    1 brian    users          23 Mar 26 07:53 libOSMesa.so.6 -> libOSMesa.so.6.1.060100*
--rwxr-xr-x    1 brian    users       23871 Mar 26 07:53 libOSMesa.so.6.1.060100*
-
- -

-libGL is the main OpenGL library (i.e. Mesa). -
-libGLU is the OpenGL Utility library. -
-libglut is the GLUT library. -
-libGLw is the Xt/Motif OpenGL drawing area widget library. -
-libOSMesa is the OSMesa (Off-Screen) interface library. -

- -

-If you built the DRI hardware drivers, you'll also see the DRI drivers: -

-
--rwxr-xr-x   1 brian users 11320803 Jul 21 12:11 mach64_dri.so
--rwxr-xr-x   1 brian users 11418014 Jul 21 12:12 mga_dri.so
--rwxr-xr-x   1 brian users 11064426 Jul 21 12:12 r128_dri.so
--rwxr-xr-x   1 brian users 11849858 Jul 21 12:12 r200_dri.so
--rwxr-xr-x   1 brian users 11757388 Jul 21 12:12 radeon_dri.so
--rwxr-xr-x   1 brian users 11232304 Jul 21 12:13 s3v_dri.so
--rwxr-xr-x   1 brian users 11062970 Jul 21 12:13 savage_dri.so
--rwxr-xr-x   1 brian users 11214212 Jul 21 12:13 sis_dri.so
--rwxr-xr-x   1 brian users 11368736 Jul 21 12:13 tdfx_dri.so
--rwxr-xr-x   1 brian users 10598868 Jul 21 12:13 trident_dri.so
--rwxr-xr-x   1 brian users 10997120 Jul 21 12:13 unichrome_dri.so
-
- - -

1.3 Running the demos

- -

-If you downloaded/unpacked the MesaDemos-x.y.z.tar.gz archive or -obtained Mesa from CVS, the progs/ directory will contain a -bunch of demonstration programs. -

- -

-Before running a demo, you may have to set an environment variable -(such as LD_LIBRARY_PATH on Linux) to indicate where the -libraries are located. For example: -

-

-cd into the Mesa lib/ directory. -
-setenv LD_LIBRARY_PATH ${cwd} (if using csh or tcsh shell) -
-or, -
-export LD_LIBRARY_PATH=${PWD} (if using bash or sh shell) -
- -

-Next, change to the Mesa/demos/ directory: -

-
-cd ../progs/demos -
- -

-Run a demo such as gears: -

-
-./gears -
- -

-If this doesn't work, try the Mesa/progs/xdemos/glxinfo program -and see that it prints the expected Mesa version number. -

- -

-If you're using Linux or a similar OS, verify that the demo program is -being linked with the proper library files: -

-
-ldd gears -
- -

-You should see something like this: -

-
-        libglut.so.3 => /home/brian/Mesa/lib/libglut.so.3 (0x40013000)
-        libGLU.so.1 => /home/brian/Mesa/lib/libGLU.so.1 (0x40051000)
-        libGL.so.1 => /home/brian/Mesa/lib/libGL.so.1 (0x400e0000)
-        libc.so.6 => /lib/i686/libc.so.6 (0x42000000)
-        libm.so.6 => /lib/i686/libm.so.6 (0x403da000)
-        libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x403fc000)
-        libXmu.so.6 => /usr/X11R6/lib/libXmu.so.6 (0x404da000)
-        libXt.so.6 => /usr/X11R6/lib/libXt.so.6 (0x404f1000)
-        libXi.so.6 => /usr/X11R6/lib/libXi.so.6 (0x40543000)
-        libstdc++.so.5 => /usr/lib/libstdc++.so.5 (0x4054b000)
-        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x405fd000)
-        libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x40605000)
-        libpthread.so.0 => /lib/i686/libpthread.so.0 (0x40613000)
-        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
-        libdl.so.2 => /lib/libdl.so.2 (0x40644000)
-        libSM.so.6 => /usr/X11R6/lib/libSM.so.6 (0x40647000)
-        libICE.so.6 => /usr/X11R6/lib/libICE.so.6 (0x40650000)
-
- -

-Retrace your steps if this doesn't look right. -

- - -

1.4 Installing the header and library files

- -

-The standard location for the OpenGL header files on Unix-type systems is -in /usr/include/GL/. -The standard location for the libraries is /usr/lib/. -For more information see, the - -Linux/OpenGL ABI specification. -

- -

-If you'd like Mesa to co-exist with another implementation of OpenGL that's -already installed, you'll have to choose different directories, like -/usr/local/include/GL/ and /usr/local/lib/. -

- -

-To install Mesa's headers and libraries, run make install -You'll be prompted to enter alternative directories for the headers -and libraries. -

- -

-Note: at runtime, you can set the LD_LIBRARY_PATH (on Linux) to switch -between the Mesa libs and another vendor libs whenever you want. -This is a handy way to compare multiple OpenGL implementations. -

- - - - -

2. Windows Compilation and Installation

- -

-Please see the README.WIN32 file. -

- - - - - -

3. VMS Compilation and Installation

- -

-Please see the README.VMS file. -

- - - - - -

4. Other systems

- -

-Documentation for other environments (some may be very out of date): -

- -
- - - - - - diff --git a/nx-X11/extras/Mesa/docs/intro.html b/nx-X11/extras/Mesa/docs/intro.html deleted file mode 100644 index 374d124b3..000000000 --- a/nx-X11/extras/Mesa/docs/intro.html +++ /dev/null @@ -1,306 +0,0 @@ - - -Mesa Introduction - - - - - -

Introduction

- -

-Mesa is a 3-D graphics library with an API which is very similar to -that of OpenGL.* -To the extent that Mesa utilizes the OpenGL command syntax or state -machine, it is being used with authorization from Silicon Graphics, -Inc.(SGI). However, the author does not possess an OpenGL license -from SGI, and makes no claim that Mesa is in any way a compatible -replacement for OpenGL or associated with SGI. Those who want a -licensed implementation of OpenGL should contact a licensed -vendor. -

- -

-Please do not refer to the library as MesaGL (for legal -reasons). It's just Mesa or The Mesa 3-D graphics -library.
-

- -

-* OpenGL is a trademark of Silicon Graphics Incorporated. -

- - -

Project History

- -

-The Mesa project was founded by me, Brian Paul. Here's a short history -of the project. -

- -

-August, 1993: I begin working on Mesa in my spare time. The project -has no name at that point. I was simply interested in writing a simple -3D graphics library that used the then-new OpenGL API. I was partially -inspired by the VOGL library which emulated a subset of IRIS GL. -I had been programming with IRIS GL since 1991. -

- -

-November 1994: I contact SGI to ask permission to distribute my OpenGL-like -graphics library on the internet. SGI was generally receptive to the -idea and after negotiations with SGI's legal department, I get permission -to release it. -

- -

-February 1995: Mesa 1.0 is released on the internet. I expected that -a few people would be interested in it, but not thousands. -I was soon receiving patches, new features and thank-you notes on a -daily basis. That encouraged me to continue working on Mesa. The -name Mesa just popped into my head one day. SGI had asked me not to use -the terms "Open" or "GL" in the project name and I didn't -want to make up a new acronym. Later, I heard of the Mesa programming -language and the Mesa spreadsheet for NeXTStep. -

- -

-In the early days, OpenGL wasn't available on too many systems. -It even took a while for SGI to support it across their product line. -Mesa filled a big hole during that time. -For a lot of people, Mesa was their first introduction to OpenGL. -I think SGI recognized that Mesa actually helped to promote -the OpenGL API, so they didn't feel threatened by the project. -

- - -

-1995-1996: I continue working on Mesa both during my spare time and during -my work hours at the Space Science and Engineering Center at the University -of Wisconsin in Madison. My supervisor, Bill Hibbard, lets me do this because -Mesa is now being using for the Vis5D project. -

-October 1996: Mesa 2.0 is released. It implements the OpenGL 1.1 specification. -

- -

-March 1997: Mesa 2.2 is released. It supports the new 3dfx Voodoo graphics -card via the Glide library. It's the first really popular hardware OpenGL -implementation for Linux. -

- -

-September 1998: Mesa 3.0 is released. It's the first publicly-available -implementation of the OpenGL 1.2 API. -

- -

-March 1999: I attend my first OpenGL ARB meeting. I contribute to the -development of several official OpenGL extensions over the years. -

- -

-September 1999: I'm hired by Precision Insight, Inc. Mesa is a key -component of 3D hardware acceleration in the new DRI project for XFree86. -Drivers for 3dfx, 3dLabs, Intel, Matrox and ATI hardware soon follow. -

- -

-October 2001: Mesa 4.0 is released. -It implements the OpenGL 1.3 specification. -

- - -

-November 2001: I cofound -Tungsten Graphics, Inc. with Keith Whitwell, Jens Owen, David Dawes and -Frank LaMonica. -I continue to develop Mesa as part of my resposibilities with Tungsten -Graphics and as a spare-time project. -

- -

-November 2002: Mesa 5.0 is released. -It implements the OpenGL 1.4 specification. -

- -

-January 2003: Mesa 6.0 is released. It implements the OpenGL 1.5 -specification as well as the GL_ARB_vertex_program and -GL_ARB_fragment_program extensions. -

- - -

-Ongoing: Mesa is used as the core of many hardware OpenGL drivers for -the XFree86 X.org X servers within the -DRI project. -I continue to enhance Mesa with new extensions and features. -

- - - -

Major Versions

- -

-This is a summary of the major versions of Mesa. Note that Mesa's major -version number tracks OpenGL's minor version number (+1). -Work is underway to implement the OpenGL 2.0 specification. -

- - -

Version 6.x features

-

-Version 6.x of Mesa implements the OpenGL 1.5 API with the following -extensions incorporated as standard features: -

-
    -
  • GL_ARB_occlusion_query -
  • GL_ARB_vertex_buffer_object -
  • GL_EXT_shadow_funcs -
-

-Also note that several OpenGL tokens were renamed in OpenGL 1.5 -for the sake of consistency. -The old tokens are still available. -

-
-New Token                   Old Token
-------------------------------------------------------------
-GL_FOG_COORD_SRC            GL_FOG_COORDINATE_SOURCE
-GL_FOG_COORD                GL_FOG_COORDINATE
-GL_CURRENT_FOG_COORD        GL_CURRENT_FOG_COORDINATE
-GL_FOG_COORD_ARRAY_TYPE     GL_FOG_COORDINATE_ARRAY_TYPE
-GL_FOG_COORD_ARRAY_STRIDE   GL_FOG_COORDINATE_ARRAY_STRIDE
-GL_FOG_COORD_ARRAY_POINTER  GL_FOG_COORDINATE_ARRAY_POINTER
-GL_FOG_COORD_ARRAY          GL_FOG_COORDINATE_ARRAY
-GL_SRC0_RGB                 GL_SOURCE0_RGB
-GL_SRC1_RGB                 GL_SOURCE1_RGB
-GL_SRC2_RGB                 GL_SOURCE2_RGB
-GL_SRC0_ALPHA               GL_SOURCE0_ALPHA
-GL_SRC1_ALPHA               GL_SOURCE1_ALPHA
-GL_SRC2_ALPHA               GL_SOURCE2_ALPHA
-
-

-See the - -OpenGL specification for more details. -

- - - -

Version 5.x features

-

-Version 5.x of Mesa implements the OpenGL 1.4 API with the following -extensions incorporated as standard features: -

-
    -
  • GL_ARB_depth_texture -
  • GL_ARB_shadow -
  • GL_ARB_texture_env_crossbar -
  • GL_ARB_texture_mirror_repeat -
  • GL_ARB_window_pos -
  • GL_EXT_blend_color -
  • GL_EXT_blend_func_separate -
  • GL_EXT_blend_logic_op -
  • GL_EXT_blend_minmax -
  • GL_EXT_blend_subtract -
  • GL_EXT_fog_coord -
  • GL_EXT_multi_draw_arrays -
  • GL_EXT_point_parameters -
  • GL_EXT_secondary_color -
  • GL_EXT_stencil_wrap -
  • GL_EXT_texture_lod_bias (plus, a per-texture LOD bias parameter) -
  • GL_SGIS_generate_mipmap -
- - -

Version 4.x features

- -

-Version 4.x of Mesa implements the OpenGL 1.3 API with the following -extensions incorporated as standard features: -

- -
    -
  • GL_ARB_multisample -
  • GL_ARB_multitexture -
  • GL_ARB_texture_border_clamp -
  • GL_ARB_texture_compression -
  • GL_ARB_texture_cube_map -
  • GL_ARB_texture_env_add -
  • GL_ARB_texture_env_combine -
  • GL_ARB_texture_env_dot3 -
  • GL_ARB_transpose_matrix -
- -

Version 3.x features

- -

-Version 3.x of Mesa implements the OpenGL 1.2 API with the following -features: -

-
    -
  • BGR, BGRA and packed pixel formats -
  • New texture border clamp mode -
  • glDrawRangeElements() -
  • standard 3-D texturing -
  • advanced MIPMAP control -
  • separate specular color interpolation -
- - -

Version 2.x features

-

-Version 2.x of Mesa implements the OpenGL 1.1 API with the following -features. -

-
    -
  • Texture mapping: -
      -
    • glAreTexturesResident -
    • glBindTexture -
    • glCopyTexImage1D -
    • glCopyTexImage2D -
    • glCopyTexSubImage1D -
    • glCopyTexSubImage2D -
    • glDeleteTextures -
    • glGenTextures -
    • glIsTexture -
    • glPrioritizeTextures -
    • glTexSubImage1D -
    • glTexSubImage2D -
    -
  • Vertex Arrays: -
      -
    • glArrayElement -
    • glColorPointer -
    • glDrawElements -
    • glEdgeFlagPointer -
    • glIndexPointer -
    • glInterleavedArrays -
    • glNormalPointer -
    • glTexCoordPointer -
    • glVertexPointer -
    -
  • Client state management: -
      -
    • glDisableClientState -
    • glEnableClientState -
    • glPopClientAttrib -
    • glPushClientAttrib -
    -
  • Misc: -
      -
    • glGetPointer -
    • glIndexub -
    • glIndexubv -
    • glPolygonOffset -
    -
- - - - diff --git a/nx-X11/extras/Mesa/docs/libraries.html b/nx-X11/extras/Mesa/docs/libraries.html deleted file mode 100644 index ce0ee70e6..000000000 --- a/nx-X11/extras/Mesa/docs/libraries.html +++ /dev/null @@ -1,57 +0,0 @@ - - -Libraries and Toolkits - - - - - -

Libraries and Toolkits

- -
    -
  • Apprentice - free OpenInventor work-alike -
  • Coin - OSS Open Inventor clone -
  • Ch - OpenGL bindings for the Ch C/C++ interpreter -
  • FOX - GUI Library -
  • GL4Java - a Java wrapper for OpenGL -
  • GtkGLArea - OpenGL Gtk widget -
  • GtkGLArea-- - OpenGL Gtk-- widget for C++ -
  • GTKpas - OpenGL Gtk widget for FreePascal -
  • FreeGLUT - a GLUT work-alike -
  • Fortran77/90 bindings for OpenGL and Mesa - by William Mitchell -
  • GLOW - a GUI toolkit for GLUT and OpenGL -
  • Glt - an OpenGL C++ toolkit -
  • GLUT (GL Utility Toolkit) - by Mark Kilgard -
  • GuileGL - OpenGL and GtkGLArea language bindings for Guile -
  • IDL - Interactive Data Language -
  • JX - C++ application framework and GUI library -
  • MAM/VRS - object-oriented toolkit for 3D graphics -
  • MINOS - GUI library -
  • OglCLib - C++ wrapper for OpenGL -
  • Open Inventor - the Open Inventor toolkit from SGI -
  • Open Inventor - the Open Inventor toolkit from Template Graphics Software, Inc. -
  • OpenRM -- Open Source, multithreaded, parallel scene graph API -
  • -Open SG PLUS - a scene-graph library -
  • Open Scene Graph - - a scene-graph library -
  • OpenVRML -- a VRML parsing/display library with "lookat" - an example VRML browser -
  • PLIB - A collection of portable games libraries, including an OpenGL GUI and a simple Scene Graph API -
  • Pryan - an OpenInventor-like toolkit -
  • PyOpenGL - OpenGL interface for Python -
  • Quesa - QuickDraw3D-compatible library based on OpenGL, Mesa or Direct3D -
  • repGL - IRIS GL emulated with OpenGL -
  • SciTech MGL - A multiplatform (Windows, Linux, OS/2, DOS, QNX, SMX, RT-Target & more) graphics library -
  • SGL - a 3D Scene Graph Library -
  • SoFree - a free implementation of Open Inventor -
  • Togl - Tcl/Tk widget for OpenGL -
  • VLE - Virtual Reality Toolkit -
  • View3D Widget - 3-D GUI widget -
  • VTK - Visualization Toolkit -
  • YAJOGL - Yet Another Java GL Binding. -
- - - \ No newline at end of file diff --git a/nx-X11/extras/Mesa/docs/license.html b/nx-X11/extras/Mesa/docs/license.html deleted file mode 100644 index dd878619b..000000000 --- a/nx-X11/extras/Mesa/docs/license.html +++ /dev/null @@ -1,86 +0,0 @@ - - -License / Cppyright Information - - - - - -

License / Copyright Information

- -

-The Mesa distribution consists of several components. Different copyrights -and licenses apply to different components. For example, GLUT is copyrighted -by Mark Kilgard, some demo programs are copyrighted by SGI, some of the Mesa -device drivers are copyrighted by their authors. See below for a list of -Mesa's main components and the license for each. -

-

-The core Mesa library is licensed according to the terms of the MIT license. -This allows integration with the XFree86, Xorg and DRI projects. -

-

-The default Mesa license is as follows: -

- -
-Copyright (C) 1999-2005  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.
-
- - -

Attention, Contributors

- -

-When contributing to the Mesa project you must agree to the licensing terms -of the component to which you're contributing. -The following section lists the primary components of the Mesa distribution -and their respective licenses. -

- - -

Mesa Component Licenses

- -
-Component         Location               Primary Author      License
-----------------------------------------------------------------------------
-Main Mesa code    src/mesa/              Brian Paul          Mesa (MIT)
-
-Device drivers    src/mesa/drivers/*     See drivers         See drivers
-
-Ext headers       include/GL/glext.h     SGI                 SGI Free B
-                  include/GL/glxext.h
-
-GLUT              src/glut/              Mark Kilgard        Mark's copyright
-
-Mesa GLU library  src/glu/mesa/          Brian Paul          GNU-LGPL
-
-SGI GLU library   src/glu/sgi/           SGI                 SGI Free B
-
-demo programs     progs/demos/           various             see source files
-
-X demos           progs/xdemos/          Brian Paul          see source files
-
-SGI demos         progs/samples/         SGI                 SGI copyright
-
-RedBook demos     progs/redbook/         SGI                 SGI copyright
-
- - - diff --git a/nx-X11/extras/Mesa/docs/lists.html b/nx-X11/extras/Mesa/docs/lists.html deleted file mode 100644 index 76ebf32c3..000000000 --- a/nx-X11/extras/Mesa/docs/lists.html +++ /dev/null @@ -1,55 +0,0 @@ - - -Mesa Mailing Lists - - - - - -

Mailing Lists

- - -

There are four Mesa mailing lists:

-
    -
  • mesa3d-users - intended for users of the Mesa library. -Newbie questions are appropriate, but please try reading the Mesa documentation first. -
  • mesa3d-dev - intended for developers of the Mesa library. -This is not for beginners. -
  • mesa3d-cvs - CVS check-in messages are sent to this list. -This is useful for tracking ongoing development changes. -
  • mesa3d-announce - announcements of new Mesa versions are sent to this list. -
- -

-To subscribe or unsubscribe, go to the - -SourceForge lists page. -

- -

The mailing lists are managed by SourceForge. If you're having trouble -with the mailing lists please contact the SourceForge administrators for help.

- -

Archives of the old Mesa mailing list which was hosted by unicamp.br -are available here.

- -

-Here are some other OpenGL-related forums you might find useful: -

- -

-Usenet newsgroups: -

    -
  • comp.graphics.algorithms -
  • comp.graphics.api.opengl -
  • comp.os.linux.x -
-

- -

-OpenGL discussion forums -at www.opengl.org -

- - - diff --git a/nx-X11/extras/Mesa/docs/mangling.html b/nx-X11/extras/Mesa/docs/mangling.html deleted file mode 100644 index cb19e7568..000000000 --- a/nx-X11/extras/Mesa/docs/mangling.html +++ /dev/null @@ -1,28 +0,0 @@ - - -Function Name Mangling - - - - - -

Function Name Mangling

- -

-If you want to use Mesa and native OpenGL in the same application at -the same time you may find it useful to compile Mesa with -name mangling. -This results in all the Mesa functions being prefixed with -mgl instead of gl. -

- -

-To do this, recompile Mesa with the compiler flag -DUSE_MGL_NAMESPACE. -Add the flag to the other compiler flags in Make-config (if using the -old-style build system) or in src/Makefile if using GNU autoconf/ -automake to build Mesa. -

- - - - diff --git a/nx-X11/extras/Mesa/docs/mesa.css b/nx-X11/extras/Mesa/docs/mesa.css deleted file mode 100644 index a53a9df8b..000000000 --- a/nx-X11/extras/Mesa/docs/mesa.css +++ /dev/null @@ -1,33 +0,0 @@ -/* Mesa CSS */ -body { - background-color: #ffffff; - font: 14px 'Lucida Grande', Geneva, Arial, Verdana, sans-serif; - color: black; - link: #111188; -} - -h1 { - font: 24px 'Lucida Grande', Geneva, Arial, Verdana, sans-serif; - font-weight: bold; - color: black; -} - -h2 { - font: 18px 'Lucida Grande', Geneva, Arial, Verdana, sans-serif, bold; - font-weight: bold; - color: black; -} - -code { - font-family: monospace; - font-size: 10pt; - color: black; -} - - -pre { - /*font-family: monospace;*/ - font-size: 10pt; - /*color: black;*/ -} - diff --git a/nx-X11/extras/Mesa/docs/modelers.html b/nx-X11/extras/Mesa/docs/modelers.html deleted file mode 100644 index 617a03159..000000000 --- a/nx-X11/extras/Mesa/docs/modelers.html +++ /dev/null @@ -1,70 +0,0 @@ - - -Modelers, Renderers and Viewers - - - - - -

Modelers, Renderers and Viewers

- - - - - diff --git a/nx-X11/extras/Mesa/docs/news.html b/nx-X11/extras/Mesa/docs/news.html deleted file mode 100644 index 8e9d5d33e..000000000 --- a/nx-X11/extras/Mesa/docs/news.html +++ /dev/null @@ -1,1136 +0,0 @@ - - -Mesa News - - - - - - - -

News

- - -

November 29, 2005

-

-Mesa 6.4.1 has been released. This is a stable, bug-fix release. -

-
-    Bug fixes:
-	- redefining a vertex program string didn't take effect in TNL module
-	- fixed occasional segfault upon vertex/fragment parsing error
-	- vertex program LIT instruction didn't handle 0^0=1 correctly
-	- fragment program fog option didn't work with glDrawPixels, glBitmap
-	- USE_MGL_NAMESPACE didn't work for x86-64
-	- OSMesa demos were missing from previous release tarballs
-	- fixed problem with float->ushort conversion in glClear (bug 4992)
-	- popping of GL_EYE_PLANE texgen state was broken (bug 4996)
-	- popping of GL_SPOT_DIRECTION light state was broken (bug 5005)
-	- fixed occasional triangle color interpolation problem on VMS
-	- work around invalid free() call (bug 5131)
-	- fixed BSD X server compilation problem by including stdint.h
-
-

-The MD5 checksums are: -

-
-TBD
-
- - - - -

October 24, 2005

-

-Mesa 6.4 has been released. This is a stable, bug-fix release. -

-
-    New:
-	- Added a fast XOR line drawing function in Xlib driver
-	- Added support for GL_ARB_texture_mirrored_repeat to savage
-	  driver (supported only on Savage4 hardware).
-    Changes:
-	- Mesa now packaged in three parts: Library, Demos and GLUT
-    Bug fixes:
-	- GLX_X_RENDERABLE token wasn't accepted by glXChooseFBConfig
-	- Some files were present multiple times in the 6.3.2 tarballs
-	- r200_vtxtmp_x86.S file was missing from 6.3.2 tarball (bug 4207)
-	- glxgears_fbconfig demo didn't work (bug 4237)
-	- fixed bug when bilinear sampling 2d textures with borders
-	- glXCreatePbuffer() could segfault instead of returning 0 (bug 4235)
-	- fixed undefined frexp and rand in X.org libGLcore.a (bug 4242)
-	- fixed a few problems with proxy color tables (bug 4270)
-	- fixed precision problem in Z clearing (bug 4395)
-	- glBitmap, glDraw/CopyPixels mistakenly generated selection hits
-	- fixed potential segfault caused by reading pixels outside
-	  of renderbuffer bounds
-	- glGetTexLevelParameter didn't accept GL_TEXTURE_DEPTH_SIZE_ARB
-	- fixed memory corruption bug involving software alpha buffers
-	- glReadPixels clipped by window bounds was sometimes broken
-	- glDraw/CopyPixels of stencil data ignored the stencil write mask
-	- glReadPixels from a texture bound to a framebuffer object didn't work
-	- glIsRender/FramebufferEXT weren't totally correct
-	- fixed a number of point size attenuation/fade bugs
-	- fixed glFogCoord bug 4729
-	- GLX encoding for transpose matrix functions was broken
-	- fixed broken fragment program KIL and SWZ instructions
-
-

-The MD5 checksums are: -

-
-1cce0c1eb4fd15e9dfe837a1ce0c9812  MesaLib-6.4.tar.gz
-85a84e47a3f718f752f306b9e0954ef6  MesaLib-6.4.tar.bz2
-b976fea4f3ee06354c53f91b6e3f2ffc  MesaLib-6.4.zip
-d8734f2c69bcf7ef9f5ae454a85743ba  MesaDemos-6.4.tar.gz
-1a8c4d4fc699233f5fdb902b8753099e  MesaDemos-6.4.tar.bz2
-607ab7c7a7de0cc5febbdde2bfa03098  MesaDemos-6.4.zip
-3260156f66174322a092be0767962d34  MesaGLUT-6.4.tar.gz
-0465d053f83775f44a12dec4050dfd78  MesaGLUT-6.4.tar.bz2
-02abfcdcdf72ba938ae00f6e3b70fbe0  MesaGLUT-6.4.zip
-
- - -

August 19, 2005

-

-Mesa 6.3.2 has been released. -Note: there was no public release of version 6.3.1. -

-
-    New:
-	- The distribution now includes the DRI drivers and GLX code
-    Changes:
-	- Made the DRI "new" driver interface standard, remove old code
-    Bug fixes:
-	- GL_ARB_vertex/fragment_shader were mistakenly listed in the
-	  extensions string
-	- negative relative addressing in vertex programs was broken
-	- update/fix SPARC assembly code for vertex transformation
-	- fixed memory leak when freeing GLX drawables/renderbuffers
-	- fixed display list memory leak
-	- the GL_PIXEL_MAP_I_TO_I table is now floating point, not integer
-	- wglGetProcAddress() didn't handle wgl-functions
-	- fixed glxext.h cross-compile issue (Colin Harrison)
-	- assorted DRI driver fixes
-
-

-The MD5 checksums are: -

-
-98192e45ed8d69113688f89f90869346  MesaLib-6.3.2.tar.gz
-0df27701df0924d17ddf41185efa8ce1  MesaLib-6.3.2.tar.bz2
-ccb2423aab77fc7e81ce628734586140  MesaLib-6.3.2.zip
-9d0fca0a7d051c34a0b485423fb3e85d  MesaDemos-6.3.2.tar.gz
-96708868450c188205e42229b5d813c4  MesaDemos-6.3.2.tar.bz2
-c5102501e609aa8996d832fafacb8ab9  MesaDemos-6.3.2.zip
-
- - -

July 20, 2005

-

-Mesa 6.3 has been released. -This is a development release with new features, changes and bug fixes. -

-
-    New:
-	- GL_EXT_framebuffer_object extension
-	- GL_ARB_draw_buffers extension
-	- GL_ARB_pixel_buffer_object extension
-	- GL_OES_read_format extension (Ian Romanick)
-	- DirectFB driver (Claudio Ciccani)
-	- x86_64 vertex transformation code (Mikko T.)
-    Changes:
-	- added -stereo option for glxgears demo (Jacek Rosik)
-	- updated the PBuffer demo code in xdemos/ directory
-	- glDeleteTextures/Programs/Buffers() now makes the object ID
-	  available for immediate re-use
-	- assorted 64-bit clean-ups fixes (x86_64 and Win64)
-	- lots of internal changes for GL_EXT_framebuffer_object
-    Bug fixes:
-	- some functions didn't support PBO functionality
-	- glGetTexImage didn't convert color index images to RGBA as required
-	- fragment program texcoords were sometimes wrong for points and lines
-	- fixed problem with negative dot product in arbfplight, fplight demos
-	- fixed bug in perspective correction of antialiased, textured lines
-	- querying GL_POST_CONVOLUTION_ALPHA_BIAS_EXT returned wrong value
-	- fixed a couple per-pixel fog bugs (Soju Matsumoto)
-	- glGetBooleanv(GL_FRAGMENT_PROGRAM_BINDING_NV) was broken
-	- fixed float parsing bug in ARB frag/vert programs (bug 2520)
-	- XMesaGetDepthBuffer() returned incorrect value for bytesPerValue
-	- GL_COLOR_MATERIAL with glColor3 didn't properly set diffuse alpha
-	- glXChooseFBConfig() crashed if attribList pointer was NULL
-	- program state.light[n].spot.direction.w was wrong value (bug 3083)
-	- fragment program fog option required glEnable(GL_FOG) - wrong.
-	- glColorTable() could produce a Mesa implementation error (bug 3135)
-	- RasterPos could get corrupted by color index rendering path
-	- Removed bad XTranslateCoordinates call when rendering to Pixmaps
-	- glPopAttrib() didn't properly restore GL_TEXTURE_GEN enable state
-	- fixed a few Darwin compilation problems
-
-

-The MD5 checksums are: -

-
-0236f552d37514776945d5a013e5bb7b  MesaLib-6.3.tar.gz
-60e1a8f78c4a8c7750a1e95753190986  MesaLib-6.3.tar.bz2
-ca7c950fbace68c70caa822322db7223  MesaLib-6.3.zip
-25ea801645b376c014051804fe4974b2  MesaDemos-6.3.tar.gz
-9248e74872ea88c57ec25c900c295057  MesaDemos-6.3.tar.bz2
-8537dfa734ef258dcc7272097558d434  MesaDemos-6.3.zip
-
- - -

December 9, 2004

-

-Mesa 6.2.1 has been released. -This is a stable release which just fixes bugs since the 6.2 release. -

-
-    Bug fixes:
-	- don't apply regular fog or color sum when using a fragment program
-	- glProgramEnvParameter4fARB always generated an error on
-	  GL_FRAGMENT_PROGRAM_ARB (fdo bug 1645)
-	- glVertexAttrib3svNV and glVertexAttrib3svARB were broken
-	- fixed width/height mix-up in glSeparableFilter2D()
-	- fixed regression in glCopyPixels + convolution
-	- glReadPixels from a clipped front color buffer didn't always work
-	- glTexImage didn't accept GL_RED/GREEN/BLUE as the format
-	- Attempting queries/accesses of VBO 0 weren't detected as errors
-	- paletted textures failed if the palette had fewer than 256 entries
-    Changes:
-	- fixed a bunch of compiler warnings found with gcc 3.4
-	- bug reports should to go bugzilla.freedesktop.org
-
-

-The MD5 checksums are: -

-
-80008a92f6e055d3bfdde2cf331ec3fa  MesaLib-6.2.1.tar.gz
-f43228cd2bf70f583ef3275c1c545421  MesaLib-6.2.1.tar.bz2
-dec26cfd40116ad021020fea2d94f652  MesaLib-6.2.1.zip
-2c7af3c986a7571c8713c8bfee7e49e3  MesaDemos-6.2.1.tar.gz
-3cac74667b50bcbd4f67f594fb4224a2  MesaDemos-6.2.1.tar.bz2
-75b3edd12eb2b370caf05f29b99e508a  MesaDemos-6.2.1.zip
-
- - -

October 2, 2004

-

-Mesa 6.2 has been released. -This is a stable release which just fixes bugs since the 6.1 release. -

-
-    New:
-	- enabled GL_ARB_texture_rectangle (same as GL_NV_texture_rectangle)
-	- updated Doxygen support (Jose Fonseca)
-    Changes:
-	- some GGI driver updates (Christoph Egger, bug 1025977)
-    Bug fixes:
-	- Omit GL_ARB_texture_non_power_of_two from list of OpenGL 1.5 features
-	- fixed a few compilation issues on IRIX
-	- fixed a matrix classification bug (reported by Wes Bethel)
-	- we weren't reseting the vertex/fragment program error state
-	  before parsing (Dave Reveman)
-	- adjust texcoords for sampling texture rectangles (Dave Reveman)
-	- glGet*(GL_MAX_VERTEX_ATTRIBS_ARB) wasn't implemented
-	- repeated calls to glDeleteTexture(t) could lead to a crash
-	- fixed potential ref count bugs in VBOs and vertex/fragment programs
-	- spriteblast demo didn't handle window size changes correctly
-	- glTexSubImage didn't handle pixels=NULL correctly for PBOs
-	- fixed color index mode glDrawPixels bug (Karl Schultz)
-
-

-The MD5 checksums are: -

-
-9e8f34b059272dbb8e1f2c968b33bbf0  MesaLib-6.2.tar.gz
-3d6a6362390b6a37d3cb2e615f3ac7db  MesaLib-6.2.tar.bz2
-6cfd7895d28e695c0dbbed9469564091  MesaLib-6.2.zip
-3e06e33b0809f09855cb60883b8bdfef  MesaDemos-6.2.tar.gz
-9d160009c3dfdb35fe7e4088c9ba8f85  MesaDemos-6.2.tar.bz2
-856f7ec947122eb3c8985ebc2f654dcd  MesaDemos-6.2.zip
-
- - -

August 18, 2004

-

-Mesa 6.1 has been released. -This is a new development release (version 6.2 will be a stabilization -release). -

-
-    New:
-	- Revamped Makefile system
-	- glXUseRotatedXFont() utility (see xdemos/xuserotfont.c)
-	- internal driver interface changes related to texture object
-	  allocation, vertex/fragment programs, BlendEquationSeparate, etc.
-	- option to walk triangle edges with double-precision floats
-	  (Justin Novosad of Discreet) (see config.h file)
-	- support for AUX buffers in software GLX driver
-	- updated glext.h to version 24 and glxext.h to version 6
-	- new MESA_GLX_FORCE_ALPHA and MESA_GLX_DEPTH_BITS env vars
-	- updated BeOS support (Philippe Houdoin)
-    Changes:
-	- fragment fog interpolation is perspective corrected now
-	- new glTexImage code, much cleaner, may be a bit faster
-    Bug fixes:
-	- glArrayElement in display lists didn't handle generic vertex attribs
-	- glFogCoord didn't always work properly
-	- ARB_fragment_program fog options didn't work
-	- frag prog TEX instruction no longer incorrectly divides s,t,r by q
-	- ARB frag prog TEX and TEXP instructions now use LOD=0
-	- glTexEnviv in display lists didn't work
-	- glRasterPos didn't do texgen or apply texture matrix
-	- GL_DOUBLE-valued vertex arrays were broken in some cases
-	- fixed texture rectangle edge/border sampling bugs
-	- sampling an incomplete texture in a fragment program would segfault
-	- glTexImage was missing a few error checks
-	- fixed some minor glGetTexParameter glitches
-	- GL_INTENSITY was mistakenly accepted as a  to glTexImage
-	- fragment program writes to RC/HC register were broken
-	- fixed a few glitches in GL_HP_occlusion_test extension
-	- glBeginQueryARB and glEndQueryARB didn't work inside display lists
-	- vertex program state references were broken
-	- fixed triangle color interpolation bug on AIX (Shane Blackett)
-	- fixed a number of minor memory leaks (bug #1002030)
-
-The MD5 checksums are: -

-
-c9284d295ebcd2e0486cc3cd54e5863c  MesaLib-6.1.tar.gz
-5de1f53ec0709f60fc68fdfed57351f3  MesaLib-6.1.tar.bz2
-483e77cac4789a5d36c42f3c0136d6d8  MesaLib-6.1.zip
-8c46cfa6f9732acc6f6c25724aad0246  MesaDemos-6.1.tar.gz
-89bfe0f6c69b39fd0ebd9fff481a4e9b  MesaDemos-6.1.tar.bz2
-161268531fcc6f0c5a056430ee97e0c1  MesaDemos-6.1.zip
-
- - - -

April 2, 2004

- -

-Mesa 6.0.1 has been released. -This release basically just fixes bugs since the 6.0. release. -

-
-    New:
-	- upgraded glext.h to version 22
-	- new build targets (Dan Schikore)
-	- new linux-x86-opteron build target (Heath Feather)
-    Bug fixes:
-	- glBindProgramARB didn't update all necessary state
-	- fixed build problems on OpenBSD
-	- omit CVS directories from tarballs
-	- glGetTexImage(GL_COLOR_INDEX) was broken
-	- fixed an infinite loop in t&l module
-	- silenced some valgrind warnings about using unitialized memory
-	- fixed some compilation/link glitches on IRIX (Mike Stephens)
-	- glBindProgram wasn't getting compiled into display lists
-	- GLX_FBCONFIG_ID wasn't recognized in glXChooseFBConfig() (bug 888079)
-	- two-sided lighting and vertex program didn't work (bug 887330)
-	- stores to program parameter registers in vertex state programs
-	  didn't work.
-	- fixed glOrtho bug found with gcc 3.2.2 (RH9)
-	- glXCreateWindow() wasn't fully implemented (bug 890894)
-	- generic vertex attribute arrays didn't work in display lists
-	- vertex buffer objects' default usage and access fields were wrong
-	- glDrawArrays with start!=0 was broken
-	- fragment program PK2H, UP2H, UP4B and UP4UB instructions were broken
-	- linux-osmesa16-static config didn't work
-	- fixed a few color index rendering problems (bug 910687)
-	- glInterleavedArrays didn't respect GL_CLIENT_ACTIVE_TEXTURE
-	- OSMesa RGB and BGR modes were broken
-	- glProgramStringARB mistakenly required a null-terminated string
-	- fragment program XPD instruction was incorrect
-	- glGetMaterial() didn't work reliably
-
-The MD5 checksums are: -

-
-011be0e79666c7a6eb9693fbf9348653  MesaLib-6.0.1.tar.gz
-b7f14088c5c2f14490d2739a91102112  MesaLib-6.0.1.tar.bz2
-bf0510cf0a2b87d64cdd317eca3f1db1  MesaLib-6.0.1.zip
-b7b648599e0aaee1c4ffc554a2a9139e  MesaDemos-6.0.1.tar.gz
-dd6aadfd9ca8e1cfa90c6ee492bc6f43  MesaDemos-6.0.1.tar.bz2
-eff71d59c211825e949199852f5a2316  MesaDemos-6.0.1.zip
-
- - - -

January 16, 2004

- -

-Mesa 6.0 has been released. This is a stabilization of the 5.1 release -and primarily just incorporates bug fixes. -

-
-    New:
-	- full OpenGL 1.5 support
-	- updated GL/glext.h file to version 21
-    Changes:
-	- changed max framebuffer size to 4Kx4K (MAX_WIDTH/HEIGHT in config.h)
-    Bug fixes:
-	- fixed bug in UNCLAMPED_FLOAT_TO_UBYTE macro; solves a color
-	  clamping issue
-	- updated suno5-gcc configs
-	- glColor3 functions sometimes resulted in undefined alpha values
-	- fixed FP divide by zero error seen on VMS with xlockmore, others
-	- fixed vertex/fragment program debug problem (bug 873011)
-	- building on AIX with gcc works now
-	- glDeleteProgramsARB failed for ARB fragment programs (bug 876160)
-	- glDrawRangeElements tried to modify potentially read-only storage
-	- updated files for building on Windows
-
- - - -

December 28, 2003

- -

-The Mesa CVS server has been moved to -freedesktop.org because of problems with SourceForge's anonymous -CVS service. -

- -

Please see the CVS access page for details. -

- - -

December 17, 2003

- -

-Mesa 5.1 has been released. This is a new development release. -Mesa 6.0 will be the next stable release and will support all -OpenGL 1.5 features. -

-
-    New features:
-	- reorganized directory tree
-	- GL_ARB_vertex/fragment_program extensions (Michal Krol & Karl Rasche)
-	- GL_ATI_texture_env_combine3 extension (Ian Romanick)
-	- GL_SGI_texture_color_table extension (Eric Plante)
-	- GL_NV_fragment_program extension
-	- GL_NV_light_max_exponent extension
-	- GL_EXT_texture_rectangle (identical to GL_NV_texture_rectangle)
-	- GL_ARB_occlusion_query extension
-	- GL_ARB_point_sprite extension
-	- GL_ARB_texture_non_power_of_two extension
-	- GL_IBM_multimode_draw_arrays extension
-	- GL_EXT_texture_mirror_clamp extension (Ian Romanick)
-	- GL_ARB_vertex_buffer_object extension
-	- new X86 feature detection code (Petr Sebor)
-	- less memory used for display lists and vertex buffers
-	- demo of per-pixel lighting with a fragment program (demos/fplight.c)
-	- new version (18) of glext.h header
-	- new spriteblast.c demo of GL_ARB_point_sprite
-	- faster glDrawPixels in X11 driver in some cases (see RELNOTES-5.1)
-	- faster glCopyPixels in X11 driver in some cases (see RELNOTES-5.1)
-    Bug fixes:
-	- really enable OpenGL 1.4 features in DOS driver.
-	- fixed issues in glDrawPixels and glCopyPixels for very wide images
-	- glPixelMapf/ui/usv()'s size parameter is GLsizei, not GLint
-	- fixed some texgen bugs reported by Daniel Borca
-	- fixed wglMakeCurrent(NULL, NULL) bug (#835861)
-	- fixed glTexSubImage3D z-offset bug (Cedric Gautier)
-	- fixed RGBA blend enable bug (Ville Syrjala)
-	- glAccum is supposed to be a no-op in selection/feedback mode
-	- fixed texgen bug #597589 (John Popplewell)
-    Changes:
-	- dropped API trace feature (src/Trace/)
-	- documentation overhaul.  merged with website content.  more html.
-	- glxgears.c demo updated to use GLX swap rate extensions
-	- glTexImage1/2/3D now allows width/height/depth = 0
-	- disable SPARC asm code on Linux (bug 852204)
-
- -The MD5 checksums are: -

-
-78f452f6c55478471a744f07147612b5  MesaLib-5.1.tar.gz
-67b3b8d3f7f4c8c44904551b851d01af  MesaLib-5.1.tar.bz2
-6dd19ffa750ec7f634e370a987505c9d  MesaLib-5.1.zip
-e0214d4ebb22409dfa9262f2b52fd828  MesaDemos-5.1.tar.gz
-066c9aff4fd924405de1ae9bad5ec9a7  MesaDemos-5.1.tar.bz2
-d2b5ba32b53e0ad0576c637a4cc1fb41  MesaDemos-5.1.zip
-
- - -

November 12, 2003

- -

-New Mesa 5.0.2 tarballs have been uploaded to SourceForge which fix a -number of automake/libtool problems. -

-

-The new MD5 checksums are: -

-
-a9dcf3ff9ad1b7d6ce73a0df7cff8b5b  MesaLib-5.0.2.tar.gz
-7b4bf9261657c2fca03796d4955e6f50  MesaLib-5.0.2.tar.bz2
-79c141bddcbad557647535d02194f346  MesaLib-5.0.2.zip
-952d9dc823dd818981d1a648d7b2668a  MesaDemos-5.0.2.tar.gz
-b81fafff90995025d2f25ea02b786642  MesaDemos-5.0.2.tar.bz2
-a21be975589e8a2d1871b6bb7874fffa  MesaDemos-5.0.2.zip
-
- - - -

September 5, 2003

- -

-Mesa 5.0.2 has been released. This is a stable, bug-fix release. -

-
-    Bug fixes:
-	- fixed texgen problem causing texcoord's Q to be zero (stex3d)
-	- default GL_TEXTURE_COMPARE_MODE_ARB was wrong
-	- GL_CURRENT_MATRIX_NV query was wrong
-	- GL_CURRENT_MATRIX_STACK_DEPTH_NV query was off by one
-	- GL_LIST_MODE query wasn't correct
-	- GL_FOG_COORDINATE_SOURCE_EXT query wasn't supported
-	- GL_SECONDARY_COLOR_ARRAY_SIZE_EXT query returned wrong value
-	- blended, wide lines didn't always work correctly (bug 711595)
-	- glVertexAttrib4svNV w component was always 1
-	- fixed bug in GL_IBM_rasterpos_clip (missing return)
-	- GL_DEPTH_TEXTURE_MODE = GL_ALPHA didn't work correctly
-	- a few Solaris compilation fixes
-	- fixed glClear() problem for DRI drivers (non-existant stencil, etc)
-	- fixed int/REAL mixup in GLU NURBS curve evaluator (Eric Cazeaux)
-	- fixed delete [] bug in SI GLU (bug 721765) (Diego Santa Cruz)
-	- glFog() didn't clamp fog colors
-	- fixed bad float/int conversion for GL_TEXTURE_PRIORITY in the
-	  gl[Get]TexParameteri[v] functions
-	- fixed invalid memory references in glTexGen functions (bug 781602)
-	- integer-valued color arrays weren't handled correctly
-	- glDrawPixels(GL_DEPTH_COMPONENT) with glPixelZoom didn't work
-	- GL_EXT_texture_lod_bias is part of 1.4, overlooked in 5.0.1
-    Changes:
-	- build GLUT with -fexceptions so C++ apps propogate exceptions
-
- - - -

June 2003

- -

-Mesa's directory tree has been overhauled. -Things are better organized now with some thought toward future needs. -

-

-In CVS, the latest Mesa 5.1 development code is now rooted under the -Mesa-newtree/ directory. The old top-level Mesa/ directory -holds the Mesa 5.0.x code which will be abandoned at some point. -

- - - -

March 30, 2003

- -

-Mesa 5.0.1 has been released. This is a stable, bug-fix release. -

-
-    New:
-	- DOS driver updates from Daniel Borca
-	- updated GL/gl_mangle.h file (Bill Hoffman)
-    Bug fixes:
-	- auto mipmap generation for cube maps was broken (bug 641363)
-	- writing/clearing software alpha channels was unreliable
-	- minor compilation fixes for OS/2 (Evgeny Kotsuba)
-	- fixed some bad assertions found with shadowtex demo
-	- fixed error checking bug in glCopyTexSubImage2D (bug 659020)
-	- glRotate(angle, -x, 0, 0) was incorrect (bug 659677)
-	- fixed potential segfault in texture object validation (bug 659012)
-	- fixed some bogus code in _mesa_test_os_sse_exception_support (Linus)
-	- fix fog stride bug in tnl code for h/w drivers (Michel Danzer)
-	- fixed glActiveTexture / glMatrixMode(GL_TEXTURE) bug (#669080)
-	- glGet(GL_CURRENT_SECONDARY_COLOR) should return 4 values, not 3
-	- fixed compilation problem on Solaris7/x86 (bug 536406)
-	- fixed prefetch bug in 3DNow! code (Felix Kuhling)
-	- fixed NeXT build problem (FABSF macro)
-	- glDrawPixels Z values when glPixelZoom!=1 were invalid (bug 687811)
-	- zoomed glDraw/CopyPixels with clipping sometimes failed (bug 689964)
-	- AA line and triangle Z values are now rounded, not truncated
-	- fixed color interpolation bug when GLchan==GLfloat (bug 694461)
-	- glArePrograms/TexturesResident() wasn't 100% correct (Jose Fonseca)
-	- fixed a minor GL_COLOR_MATERIAL bug
-	- NV vertex program EXP instruction was broken
-	- glColorMask misbehaved with X window / pixmap rendering
-	- fix autoconf/libtool GLU C++ linker problem on Linux (a total hack)
-	- attempt to fix GGI compilation problem when MesaDemos not present
-	- NV vertex program ARL-relative fetches didn't work
-    Changes:
-	- use glPolygonOffset in gloss demo to avoid z-fighting artifacts
-	- updated winpos and pointblast demos to use ARB extensions
-	- disable SPARC normal transformation code (bug 673938)
-	- GLU fixes for OS/2 (Evgeny Kotsuba)
-
-

-MD5 checksums follow: -

-
-b80f8b5d53a3e9f19b9fde5af0c542f0  MesaLib-5.0.1.tar.gz
-513b4bbd7d38951f05027179063d876b  MesaLib-5.0.1.tar.bz2
-eebd395678f4520d33b267e5d5c22651  MesaLib-5.0.1.zip
-49d7feaec6dc1d2091d7c3cc72a9b320  MesaDemos-5.0.1.tar.gz
-37190374a98c3c892f0698be9ca3acf0  MesaDemos-5.0.1.tar.bz2
-becd8bf17f5791361b4a54ba2a78e5c9  MesaDemos-5.0.1.zip
-
- - - -

March 7, 2003

-

-Website and documentation overhaul. -

-

-The website content and Mesa documentation (from the doc/ directory) have -been merged together. -All the documentation files have been entered into the CVS repository. -Many of the old plain-text files have been converted to html and modernized. -

- - -

November 13, 2002

-

Mesa 5.0 has been released. This is a stable release which -implements the OpenGL 1.4 specification. -

New:
-    - OpenGL 1.4 support (glGetString(GL_VERSION) returns "1.4")
-    - removed some overlooked debugging code
-    - glxinfo updated to support GLX_ARB_multisample
-    - GLUT now support GLX_ARB_multisample
-    - updated DOS driver (Daniel Borca)
-Bug fixes:
-    - GL_POINT and GL_LINE-mode polygons didn't obey cull state
-    - fixed potential bug in _mesa_align_malloc/calloc()
-    - fixed missing triangle bug when running vertex programs
-    - fixed a few HPUX compilation problems
-    - FX (Glide) driver didn't compile
-    - setting GL_TEXTURE_BORDER_COLOR with glTexParameteriv() didn't work
-    - a few EXT functions, like glGenTexturesEXT, were no-ops
-    - a few OpenGL 1.4 functions like glFogCoord*, glBlendFuncSeparate,
-      glMultiDrawArrays and glMultiDrawElements were missing
-    - glGet*(GL_ACTIVE_STENCIL_FACE_EXT) was broken
-    - Pentium 4 Mobile was mistakenly identified as having 3DNow!
-    - fixed one-bit error in point/line fragment Z calculation
-    - fixed potential segfault in fakeglx code
-    - fixed color overflow problem in DOT3 texture env mode
-
- - -

October 29, 2002

-

Mesa 4.1 has been released. This is a new development release. -For a stable release, get 4.0.4. -

New:
-    - GL_NV_vertex_program extension
-    - GL_NV_vertex_program1_1 extension
-    - GL_ARB_window_pos extension
-    - GL_ARB_depth_texture extension
-    - GL_ARB_shadow extension
-    - GL_ARB_shadow_ambient extension
-    - GL_EXT_shadow_funcs extension
-    - GL_ARB_point_parameters extension
-    - GL_ARB_texture_env_crossbar
-    - GL_NV_point_sprite extension
-    - GL_NV_texture_rectangle extension
-    - GL_EXT_multi_draw_arrays extension
-    - GL_EXT_stencil_two_side extension
-    - GLX_SGIX_fbconfig and GLX_SGIX_pbuffer extensions
-    - GL_ATI_texture_mirror_once extension (Ian Romanick)
-    - massive overhaul/simplification of software rasterizer module,
-      many contributions from Klaus Niederkrueger
-    - faster software texturing in some cases (i.e. trilinear filtering)
-    - new OSMesaGetProcAddress() function
-    - more blend modes implemented with MMX code (Jose Fonseca)
-    - added glutGetProcAddress() to GLUT
-    - added GLUT_FPS env var to compute frames/second in glutSwapBuffers()
-    - pbinfo and pbdemo PBuffer programs
-    - glxinfo -v prints transprent pixel info (Gerd Sussner)
-Bug fixes:
-    - better mipmap LOD computation (prevents excessive blurriness)
-    - OSMesaMakeCurrent() didn't recognize buffer size changes
-    - assorted conformance fixes for 16-bit/channel rendering
-    - texcombine alpha subtraction mode was broken
-    - fixed some blend problems when GLchan==GLfloat (Gerk Huisma)
-    - clamp colors to [0,1] in OSMesa if GLchan==GLfloat (Gerk Huisma)
-    - fixed divide by zero error in NURBS tessellator (Jon Perry)
-    - fixed GL_LINEAR fog bug by adding clamping
-    - fixed FP exceptions found using Alpha CPU
-    - 3dfx/glide driver render-to-window feature was broken
-    - added missing GLX_TRANSPARENT_RGB token to glx.h
-    - fixed error checking related to paletted textures
-    - fixed reference count error in glDeleteTextures (Randy Fayan)
-Changes:
-    - New spec file and Python code to generate some GL dispatch files
-    - Glide driver defaults to "no" with autoconf/automake
-    - floating point color channels now clamped to [0,inf)
-    - updated demos/stex3d with new options
-
- - -

October 4, 2002

-

-The Mesa FAQ has been rewritten. -

- -

October 3, 2002

-

Mesa 4.0.4 has been released. This is a stable bug-fix release. -

    New:
-	- GL_NV_texture_rectangle extension
-	- updated glext.h header (version 17)
-	- updated DOS driver (Daniel Borca)
-	- updated BeOS R5 driver (Philippe Houdoin)
-	- added GL_IBM_texture_mirror_repeat
-	- glxinfo now takes -l option to print interesting OpenGL limits info
-	- GL_MESA_ycbcr_texture extension
-	- GL_APPLE_client_storage extension (for some DRI drivers only)
-	- GL_MESA_pack_invert extension
-    Bug fixes:
-	- fixed GL_LINEAR fog bug by adding clamping
-	- fixed FP exceptions found using Alpha CPU
-	- 3dfx MESA_GLX_FX=window (render to window) didn't work
-	- fixed memory leak in wglCreateContest (Karl Schultz)
-	- define GLAPIENTRY and GLAPI if undefined in glu.h
-	- wglGetProcAddress didn't handle all API functions
-	- when testing for OpenGL 1.2 vs 1.3, check for GL_ARB_texture_cube_map
-	- removed GL_MAX_CONVOLUTION_WIDTH/HEIGHT from glGetInteger/Float/etc()
-	- error checking in compressed tex image functions had some glitches
-	- fixed AIX compile problem in src/config.c
-	- glGetTexImage was using pixel unpacking instead of packing params
-	- auto-mipmap generation for cube maps was incorrect
-    Changes:
-	- max texture units reduced to six to accomodate texture rectangles
-	- removed unfinished GL_MESA_sprite_point extension code
-
- -

June 25, 2002

-

Mesa 4.0.3 has been released. This is a stable bug-fix release. -

    New:
-    - updated GL/glext.h file (version 15)
-    - corrected MMX blend code (Jose Fonseca)
-    - support for software-based alpha planes in Windows driver
-    - updated GGI driver (Filip Spacek)
-    Bug fixes:
-    - glext.h had wrong values for GL_DOT3_RGB[A]_EXT tokens
-    - OSMesaMakeCurrent() didn't recognize buffer size changes
-    - assorted conformance fixes for 16-bit/channel rendering
-    - texcombine alpha subtraction mode was broken
-    - fixed lighting bug with non-uniform scaling and display lists
-    - fixed bug when deleting shared display lists
-    - disabled SPARC cliptest assembly code (Mesa bug 544665)
-    - fixed a couple Solaris compilation/link problems
-    - blending clipped glDrawPixels didn't always work
-    - glGetTexImage() didn't accept packed pixel types
-    - glPixelMapu[is]v() could explode given too large of pixelmap
-    - glGetTexParameter[if]v() didn't accept GL_TEXTURE_MAX_ANISOTROPY_EXT
-    - glXCopyContext() could lead to segfaults
-    - glCullFace(GL_FRONT_AND_BACK) didn't work (bug 572665)
-    Changes:
-    - lots of C++ (g++) code clean-ups
-    - lots of T&L updates for the Radeon DRI driver
-    Known bugs:
-    - mipmap LOD computation (fixed for Mesa 4.1)
-
- -

April 2, 2002

-

Mesa 4.0.2 has been released. This is a stable bug-fix release. -

    New:
-      - New DOS (DJGPP) driver written by Daniel Borca
-      - New driver interface functions for TCL drivers (such as Radeon DRI)
-      - GL_RENDERER string returns "Mesa Offscreen16" or "Mesa Offscreen32"
-        if using deep color channels
-      - latest GL/glext.h and GL/glxext.h headers from SGI
-    Bug fixes:
-      - GL_BLEND with non-black texture env color wasn't always correct
-      - GL_REPLACE with GL_RGB texture format wasn't always correct (alpha)
-      - glTexEnviv( pname != GL_TEXTURE_ENV_COLOR ) was broken
-      - glReadPixels was sometimes mistakenly clipped by the scissor box
-      - glDraw/ReadPixels didn't catch all the errors that they should have
-      - Fixed 24bpp rendering problem in Windows driver (Karl Schultz)
-      - 16-bit GLchan mode fixes (m_trans_tmp.h, s_triangle.c)
-      - Fixed 1-bit float->int conversion bug in glDrawPixels(GL_DEPTH_COMP)
-      - glColorMask as sometimes effecting glXSwapBuffers()
-      - fixed a potential bug in XMesaGarbageCollect()
-      - N threads rendering into one window didn't work reliably
-      - glCopyPixels didn't work for deep color channels
-      - improved 8 -> 16bit/channel texture image conversion (Gerk Huisma)
-      - glPopAttrib() didn't correctly restore user clip planes
-      - user clip planes failed for some perspective projections (Chromium)
-
- -

December 17, 2001

-

Mesa 4.0.1 has been released. This is a stable bug-fix release. -

    New:
-      - better sub-pixel sample positions for AA triangles (Ray Tice)
-      - slightly faster blending for (GL_ZERO, GL_ONE) and (GL_ONE, GL_ZERO)
-    Bug fixes:
-      - added missing break statements in glGet*() for multisample cases
-      - fixed uninitialized hash table mutex bug (display lists / texobjs)
-      - fixed bad teximage error check conditional (bug 476846)
-      - fixed demos readtex.c compilation problem on Windows (Karl Schultz)
-      - added missing glGet() query for GL_MAX_TEXTURE_LOD_BIAS_EXT
-      - silence some compiler warnings (gcc 2.96)
-      - enable the #define GL_VERSION_1_3 in GL/gl.h
-      - added GL 1.3 and GLX 1.4 entries to gl_mangle.h and glx_mangle.h
-      - fixed glu.h typedef problem found with MSDev 6.0
-      - build libGL.so with -Bsymbolic (fixes bug found with Chromium)
-      - added missing 'const' to glXGetContextIDEXT() in glxext.h
-      - fixed a few glXGetProcAddress() errors (texture compression, etc)
-      - fixed start index bug in compiled vertex arrays (Keith)
-      - fixed compilation problems in src/SPARC/glapi_sparc.S
-      - fixed triangle strip "parity" bug found in VTK medical1 demo (Keith)
-      - use glXGetProcAddressARB in GLUT to avoid extension linking problems
-      - provoking vertex of flat-shaded, color-index triangles was wrong
-      - fixed a few display list bugs (GLUT walker, molecule, etc) (Keith)
-      - glTexParameter didn't flush the vertex buffer (Ray Tice)
-      - feedback attributes for glDraw/CopyPixels and glBitmap were wrong
-      - fixed bug in normal length caching (ParaView lighting bug)
-
- -

October 22, 2001

-

Mesa 4.0 has been released. This is a stable release. -

    New:
-      - Mesa 4.0 implements the OpenGL 1.3 specification
-      - GL_IBM_rasterpos_clip extension
-      - GL_EXT_texture_edge_clamp extension (aka GL_SGIS_texture_edge_clamp)
-      - GL_ARB_texture_mirrored_repeat extension
-      - WindML UGL driver (Stephane Raimbault)
-      - added OSMESA_MAX_WIDTH/HEIGHT queries
-      - attempted compiliation fixes for Solaris 5, 7 and 8
-      - updated glext.h and glxext.h files
-      - updated Windows driver (Karl Schultz)
-    Bug fixes:
-      - added some missing GLX 1.3 tokens to include/GL/glx.h
-      - GL_COLOR_MATRIX changes weren't recognized by teximage functions
-      - glCopyPixels with scale and bias was broken
-      - glRasterPos with lighting could segfault
-      - glDeleteTextures could leave a dangling pointer
-      - Proxy textures for cube maps didn't work
-      - fixed a number of 16-bit color channel bugs
-      - fixed a few minor memory leaks
-      - GLX context sharing was broken in 3.5
-      - fixed state-update bugs in glPopClientAttrib()
-      - fixed glDrawRangeElements() bug
-      - fixed a glPush/PopAttrib() bug related to texture binding
-      - flat-shaded, textured lines were broken
-      - fixed a dangling pointer problem in the XMesa code (Chris Burghart)
-      - lighting didn't always produce the correct alpha value
-      - fixed 3DNow! code to not read past end of arrays (Andrew Lewycky)
-
- - -

June 21, 2001

-

Mesa 3.5 has been released. This is a new development release. -

    New:
-	- internals of Mesa divided into modular pieces (Keith Whitwell)
-	- 100% OpenGL 1.2 conformance (passes all conformance tests)
-	- new AA line algorithm
-	- GL_EXT_convolution extension
-        - GL_ARB_imaging subset
-        - OSMesaCreateContextExt() function
-        - GL_ARB_texture_env_add extension (same as GL_EXT_texture_env_add)
-        - GL_MAX_TEXTURE_UNITS_ARB now defaults to eight
-        - GL_EXT_fog_coord extension (Keith Whitwell)
-        - GL_EXT_secondary_color extension (Keith Whitwell)
-        - GL_ARB_texture_env_add extension (same as GL_EXT_texture_env_add)
-        - GL_SGIX_depth_texture extension
-        - GL_SGIX_shadow and GL_SGIX_shadow_ambient extensions
-        - demos/shadowtex.c demo of GL_SGIX_depth_texture and GL_SGIX_shadow
-        - GL_ARB_texture_env_combine extension
-        - GL_ARB_texture_env_dot3 extension
-        - GL_ARB_texture_border_clamp (aka GL_SGIS_texture_border_clamp)
-        - OSMesaCreateContextExt() function
-        - libOSMesa.so library, contains the OSMesa driver interface
-        - GL/glxext.h header file for GLX extensions
-        - somewhat faster software texturing, fogging, depth testing
-        - all color-index conformance tests now pass (only 8bpp tested)
-        - SPARC assembly language TCL optimizations (David Miller)
-        - GL_SGIS_generate_mipmap extension
-    Bug Fixes:
-        - fbiRev and tmuRev were unitialized when using Glide3
-        - fixed a few color index mode conformance failures; all pass now
-        - now appling antialiasing coverage to alpha after texturing
-        - colors weren't getting clamped to [0,1] before color table lookup
-        - fixed RISC alignment errors caused by COPY_4UBV macro
-        - drawing wide, flat-shaded lines could cause a segfault
-        - vertices now snapped to 1/16 pixel to fix rendering of tiny triangles
-    Changes:
-        - SGI's Sample Implementation (SI) 1.3 GLU library replaces Mesa GLU
-        - new libOSMesa.so library, contains the OSMesa driver interface
-
- - -

May 17, 2001

-

Mesa 3.4.2 has been released. This is basically just a bug-fix release. -Here's what's new:

-
    Bug fixes:
-        - deleting the currently bound texture could cause bad problems
-        - using fog could result in random vertex alpha values
-         - AA triangle rendering could touch pixels outside right window bound
-        - fixed byteswapping problem in clear_32bit_ximage() function
-        - fixed bugs in wglUseFontBitmapsA(), by Frank Warmerdam
-        - fixed memory leak in glXUseXFont()
-        - fragment sampling in AA triangle function was off by 1/2 pixel
-        - Windows: reading pixels from framebuffer didn't always work
-        - glConvolutionFilter2D could segfault or cause FP exception
-        - fixed segfaults in FX and X drivers when using tex unit 1 but not 0
-        - GL_NAND logicop didn't work right in RGBA mode
-        - fixed a memory corruption bug in vertex buffer reset code
-        - clearing the softwara alpha buffer with scissoring was broken
-        - fixed a few color index mode fog bugs
-        - fixed some bad assertions in color index mode
-        - fixed FX line 'stipple' bug #420091
-    Changes:
-        - optimized writing mono-colored pixel spans to X pixmaps
-        - increased max viewport size to 2048 x 2048
-
- - -

April 29, 2001

-

New Mesa website

-

Mark Manning produced the new website.
Thanks, Mark!

- - -

February 14, 2001

-

Mesa 3.4.1 has been released. Here's what's new:

-
    New:
-        - fixed some Linux build problems
-        - fixed some Windows build problems
-        - GL_EXT_texture_env_dot3 extension (Gareth Hughes)
-    Bug fixes:
-        - added RENDER_START/RENDER_FINISH macros for glCopyTexImage in DRI
-        - various state-update code changes needed for DRI bugs
-        - disabled pixel transfer ops in glColorTable commands, not needed
-        - fixed bugs in glCopyConvolutionFilter1D/2D, glGetConvolutionFilter
-        - updated sources and fixed compile problems in widgets-mesa/
-        - GLX_PBUFFER enum value was wrong in glx.h
-        - fixed a glColorMaterial lighting bug
-        - fixed bad args to Read/WriteStencilSpan in h/w stencil clear function
-        - glXCopySubBufferMESA() Y position was off by one
-        - Error checking of glTexSubImage3D() was broken (bug 128775)
-        - glPopAttrib() didn't restore all derived Mesa state correctly
-        - Better glReadPixels accuracy for 16bpp color - fixes lots of OpenGL
-          conformance problems at 16bpp.
-        - clearing depth buffer with scissoring was broken, would segfault
-        - OSMesaGetDepthBuffer() returned bad bytesPerValue value
-        - fixed a line clipping bug (reported by Craig McDaniel)
-        - fixed RGB color over/underflow bug for very tiny triangles
-    Known problems:
-        - NURBS or evaluator surfaces inside display lists don't always work
-
-

-

November 3, 2000

-

Mesa 3.4 has been released. Here's what's new since the 3.3 release:

-
    New:
-    - optimized glDrawPixels for glPixelZoom(1,-1)
-    Bug Fixes:
-    - widgets-mesa/src/*.c files were missing from 3.3 distro
-    - include/GL/mesa_wgl.h file was missing from 3.3 distro
-    - fixed some Win32 compile problems
-    - texture object priorities weren't getting initialized to 1.0
-    - glAreTexturesResident return value was wrong when using hardware
-    - glXUseXFont segfaulted when using 3dfx driver (via MESA_GLX_FX)
-    - glReadPixels with GLushort packed types was broken
-    - fixed a few bugs in the GL_EXT_texture_env_combine texture code
-    - glPush/PopAttrib(GL_ENABLE_BIT) mishandled multi-texture enables
-    - fixed some typos/bugs in the VB code
-    - glDrawPixels(GL_COLOR_INDEX) to RGB window didn't work
-    - optimized glDrawPixels paths weren't being used
-    - per-fragment fog calculation didn't work without a Z buffer
-    - improved blending accuracy, fixes Glean  blendFunc test failures
-    - glPixelStore(GL_PACK/UNPACK_SKIP_IMAGES) wasn't handled correctly
-    - glXGetProcAddressARB() didn't always return the right address
-    - gluBuild[12]DMipmaps() didn't grok the GL_BGR pixel format
-    - texture matrix changes weren't always detected (GLUT projtex demo)
-    - fixed random color problem in vertex fog code
-    - fixed Glide-related bug that let Quake get a 24-bit Z buffer
-    Changes:
-    - finished internal support for compressed textures for DRI
-
-

-

April 24, 2000

-

Mesa 3.2 has been released. Here's what's new since the beta release:

-
    Bug fixes:
-    - fixed memcpy bugs in span.c
-    - fixed missing glEnd problem in demos/tessdemo.c
-    - fixed bug when clearing 24bpp Ximages
-    - fixed clipping problem found in Unreal Tournament
-    - fixed Loki's "ice bug" and "crazy triangles" seen in Heretic2
-    - fixed Loki's 3dfx RGB vs BGR bug
-    - fixed Loki's 3dfx smooth/flat shading bug in SoF
-    Changes:
-    - updated docs/README file
-    - use bcopy() optimizations on FreeBSD
-    - re-enabled the optimized persp_textured_triangle() function
-
-

-

March 23, 2000

-

I've just upload the Mesa 3.2 beta 1 files to SourceForge at http://sourceforge.net/project/filelist.php?group_id=3

-

3.2 (note even number) is a stabilization release of Mesa 3.1 meaning it's mainly -just bug fixes.

-

Here's what's changed: - -

    - Bug fixes: -
      - - mixed drawing of lines and bitmaps sometimes had wrong colors
      - - added missing glHintPGI() function
      - - fixed a polygon culling bug
      - - fixed bugs in gluPartialDisk()
      - - Z values in selection mode were wrong
      - - added missing tokens: -
        - GL_SMOOTH_POINT_SIZE_RANGE
        - GL_SMOOTH_POINT_SIZE_GRANULARITY
        - GL_SMOOTH_LINE_WIDTH_RANGE
        - GL_SMOOTH_LINE_WIDTH_GRANULARITY
        - GL_ALIASED_POINT_SIZE_RANGE
        - GL_ALIASED_LINE_WIDTH_RANGE -
      - - fixed glCopyPixels when copying from back to front buffer
      - - GL_EXT_compiled_vertex_array tokens had _SGI suffix instead of _EXT
      - - glDrawRangeElements(GL_LINES, 0, 1, 2, type, indices) was broken
      - - glDeleteTextures() didn't decrement reference count correctly
      - - GL_SRCA_ALPHA_SATURATE blend mode didn't work correctly
      - - Actual depth of transformation matrix stacks was off by one
      - - 24bpp visuals didn't address pixels correctly
      - - mipmap level of detail (lambda) calculation simplified, more accurate
      - - 101691 - Polygon clipping and GL_LINE
      - - 101928 - Polygon clipping and GL_LINE (same fix as above)
      - - 101808 - Non-glVertexArrays tristrip bug
      - - 101971 - find_last_3f on Dec OSF (worked around)
      - - 102369 - segv on dec osf (possibly a duplicate of the above)
      - - 102893 - orientations of modelview cause segfault -
    - New: -
      - - updated SVGA Linux driver
      - - added the MESA_FX_NO_SIGNALS env var, see docs/README.3DFX
      - - build libGLw.a (Xt/OpenGL drawing area widget) library by default
      - - changed -O2 to -O3 for a number of gcc configs -
    - Changes: -
      - - glXCopyContext's mask parameter is now unsigned long, per GLX spec -
    -
- -

Please report any problems with this release ASAP. Bugs should be filed on the -Mesa3D website at sourceforge.
-After 3.2 is wrapped up I hope to release 3.3 beta 1 soon afterward.

-

-- Brian

-

-

December 17, 1999

-

A Slashdot interview with Brian about Mesa (questions submitted by Slashdot readers) -can be found at http://slashdot.org/interviews/99/12/17/0927212.shtml.

-

-

December 14, 1999

-

Mesa 3.1 is released!

-

-

September 21, 1999

-

There appear to be two new files on the ftp site, MesaLib-3.1beta3.tar.gz -and MesaDemos-3.1beta3.tar.gz, -that seem to be... yes, I've just received confirmation from the beta center, they -are indeed the THIRD beta release of Mesa 3.1! Happy Days. Happy Days. Thanks -Keith Whitwell for preparing these for us during Brian's absence.

-

-

August 30, 1999

-

I'm pleased to announce that I've accepted a position with Precision Insight, -Inc. effective October, 1999. I'll be leaving Avid Technology in September.

-

I've been working on Mesa in my spare time for over five years. With Precision -Insight I now have the opportunity to devote my full attention to advancing Mesa -and OpenGL on Linux.

-

While I'll be focused on Linux, the X Window System, and hardware acceleration, -my work will continue to be open sourced and available to any other programmers who -may want to contribute to it, or use it for other projects or platforms

-

PS: I'm going to be traveling until Sep 6 and won't be reading email until then.

-

-

August 23, 1999

-

Anonymous CVS access is back online so suck up all the bandwidth you can afford. -Note that this is a new archive, so you will need to re-checkout the archive. That -means don't cvs update from a previous download.

-

-

August 17, 1999

-

A report from the SIGGRAPH '99 Linux/OpenGL -BOF meeting is now available.

-

-Brian

-

-

August 14, 1999

-

www.mesa3d.org is having technical problems due to hardware failures at VA Linux -systems. The Mac pages, ftp, and CVS services aren't fully restored yet. Please be -patient.

-

-Brian

-

-

June 7, 1999

-

RPMS of the nVidia RIVA server can be found at ftp://ftp.mesa3d.org/mesa/misc/nVidia/.

-

-

June 2, 1999

-

nVidia has released some Linux binaries for -xfree86 3.3.3.1, along with the full source, which includes GLX acceleration -based on Mesa 3.0. They can be downloaded from http://www.nvidia.com/Products.nsf/htmlmedia/software_drivers.html.

-

-

May 24, 1999

-

Beta 2 of Mesa 3.1 has been make available at ftp://ftp.mesa3d.org/mesa/beta/. -If you are into the quake scene, you may want to try this out, as it contains some -optimizations specifically in the Q3A rendering path. -

-

May 13, 1999

-

For those interested in the integration of Mesa into XFree86 4.0, Precision Insight -has posted their lowlevel design documents at http://www.precisioninsight.com.

-

-

May 13, 1999

-
May 1999 - John Carmack of id Software, Inc. has made a donation of
-US$10,000 to the Mesa project to support its continuing development.
-Mesa is a free implementation of the OpenGL 3D graphics library and id's
-newest game, Quake 3 Arena, will use Mesa as the 3D renderer on Linux.
-
-The donation will go to Keith Whitwell, who has been optimizing Mesa to
-improve performance on 3d hardware.  Thanks to Keith's work, many
-applications using Mesa 3.1 will see a dramatic performance increase
-over Mesa 3.0.  The donation will allow Keith to continue working on
-Mesa full time for some time to come.
-
-For more information about Mesa see www.mesa3d.org.  For more
-information about id Software, Inc. see www.idsoftware.com.
-
---------------------------------
-
-This donation from John/id is very generous.  Keith and I are very
-grateful.
-
-
-

-

May 1, 1999

-

John Carmack made an interesting .plan update yesterday: - -

    - "I put together a document on optimizing OpenGL drivers for Q3 that - should be helpful to the various Linux 3D teams.
    -
    http://www.quake3arena.com/news/glopt.html" -
- -

-

April 7, 1999

-

Updated the Mesa contributors section and added links to RPM Mesa packages.

-

-

March 18, 1999

-

The new webpages are now online. Enjoy, and let me know if you find any errors. -For an eye-candy free version you can use http://www.mesa3d.org/txt/.

-

-

February 16, 1999

-

SGI releases its GLX -source code.

-

-

January 22, 1999

-

www.mesa3d.org established

- - -

- - -
-$Id: news.html,v 1.1.1.8 2005/12/01 03:11:30 kem Exp $ - - diff --git a/nx-X11/extras/Mesa/docs/osmesa.html b/nx-X11/extras/Mesa/docs/osmesa.html deleted file mode 100644 index 6feb8df52..000000000 --- a/nx-X11/extras/Mesa/docs/osmesa.html +++ /dev/null @@ -1,77 +0,0 @@ - - -Off-screen Rendering - - - - - -

Off-screen Rendering

- - -

-Mesa 1.2.4 introduced off-screen rendering, a facility for generating -3-D imagery without having to open a window on your display. Mesa's -simple off-screen rendering interface is completely operating system -and window system independent so programs which use off-screen -rendering should be very portable. This feature effectively -enables you to use Mesa as an off-line, batch-oriented renderer. -

-

-The "OSMesa" API provides 3 functions for making off-screen -renderings: OSMesaCreateContext(), OSMesaMakeCurrent(), and -OSMesaDestroyContext(). See the Mesa/include/GL/osmesa.h header for -more information. See the demos/osdemo.c file for an example program. -There is no facility for writing images to files. That's up to you. -

-

-If you want to generate large images (larger than 1280x1024) you'll -have to edit the src/config.h file to change MAX_WIDTH and MAX_HEIGHT -then recompile Mesa. Image size should only be limited by available -memory. -

- - -

Deep color channels

- -

- For some applications 8-bit color channels don't have sufficient - accuracy (film and IBR, for example). If you're in this situation - you'll be happy to know that Mesa supports 16-bit and 32-bit color - channels through the OSMesa interface. When using 16-bit channels, - channels are GLushorts and RGBA pixels occupy 8 bytes. When using 32-bit - channels, channels are GLfloats and RGBA pixels occupy 16 bytes. -

-

- To build Mesa/OSMesa with 16-bit color channels: -

-      make realclean
-      make linux-osmesa16
-
- - For 32-bit channels: -
-      make realclean
-      make linux-osmesa32
-
- -

-You'll wind up with a library named libOSMesa16.so or libOSMesa32.so. -

- -

-If you need to compile on a non-Linux platform, copy Mesa/configs/linux-osmesa16 -to a new config file and edit it as needed. Then, add the new config name to -the top-level Makefile. Send a patch to the Mesa developers too, if you're -inclined. -

- -

-BE WARNED: 16 and 32-bit channel support has not been exhaustively -tested and there may be some bugs. However, a number of people have -been using this feature successfully so it can't be too broken. -

- - - - diff --git a/nx-X11/extras/Mesa/docs/pbuffers.html b/nx-X11/extras/Mesa/docs/pbuffers.html deleted file mode 100644 index 259910155..000000000 --- a/nx-X11/extras/Mesa/docs/pbuffers.html +++ /dev/null @@ -1,54 +0,0 @@ - - -PBuffer Rendering - - - - - -

PBuffer Rendering

- -

-Basically, FBconfigs and PBuffers allow you to do off-screen rendering -with OpenGL. The OSMesa interface does basically the same thing, but -fbconfigs and pbuffers are supported by more vendors. -PBuffer rendering may also be hardware accelerated. -

- -

-PBuffers are getting more use nowadays, though they've actually been -around for a long time on IRIX systems and other workstations. -

- -

-The -GL_SGIX_fbconfig -and - -GL_SGIX_pbuffer extensions describe the functionality. -More recently, these extensions have been promoted to ARB extensions (on -Windows at least). -

- -

-The Mesa/progs/xdemos/ directory has some useful code for working -with pbuffers: -

- -
    -
  • pbinfo.c - like glxinfo, it prints a list of available - fbconfigs and whether each supports pbuffers. -
  • pbutil.c - a few utility functions for dealing with - fbconfigs and pbuffers. -
  • pbdemo.c - a demonstration of off-screen rendering with pbuffers. -
- -

-Mesa 4.1 and later support GL_SGIX_fbconfig and GL_SGIX_pbuffer (software -rendering only). -

- - - diff --git a/nx-X11/extras/Mesa/docs/perf.html b/nx-X11/extras/Mesa/docs/perf.html deleted file mode 100644 index ee9c4b117..000000000 --- a/nx-X11/extras/Mesa/docs/perf.html +++ /dev/null @@ -1,68 +0,0 @@ - - -Performance Tips - - - - - -

Performance Tips

- -

-Performance tips for software rendering: -

-
    - -
  1. Turn off smooth shading when you don't need it (glShadeModel) -
  2. Turn off depth buffering when you don't need it. -
  3. Turn off dithering when not needed. -
  4. Use double buffering as it's often faster than single buffering -
  5. Compile in the X Shared Memory extension option if it's supported - on your system by adding -DSHM to CFLAGS and -lXext to XLIBS for - your system in the Make-config file. -
  6. Recompile Mesa with more optimization if possible. -
  7. Try to maximize the amount of drawing done between glBegin/glEnd pairs. -
  8. Use the MESA_BACK_BUFFER variable to find best performance in double - buffered mode. (X users only) -
  9. Optimized polygon rasterizers are employed when: - rendering into back buffer which is an XImage - RGB mode, not grayscale, not monochrome - depth buffering is GL_LESS, or disabled - flat or smooth shading - dithered or non-dithered - no other rasterization operations enabled (blending, stencil, etc) -
  10. Optimized line drawing is employed when: - rendering into back buffer which is an XImage - RGB mode, not grayscale, not monochrome - depth buffering is GL_LESS or disabled - flat shading - dithered or non-dithered - no other rasterization operations enabled (blending, stencil, etc) -
  11. Textured polygons are fastest when: - using a 3-component (RGB), 2-D texture - minification and magnification filters are GL_NEAREST - texture coordinate wrap modes for S and T are GL_REPEAT - GL_DECAL environment mode - glHint( GL_PERSPECTIVE_CORRECTION_HINT, GL_FASTEST ) - depth buffering is GL_LESS or disabled -
  12. Lighting is fastest when: - Two-sided lighting is disabled - GL_LIGHT_MODEL_LOCAL_VIEWER is false - GL_COLOR_MATERIAL is disabled - No spot lights are used (all GL_SPOT_CUTOFFs are 180.0) - No local lights are used (all position W's are 0.0) - All material and light coefficients are >= zero -
  13. XFree86 users: if you want to use 24-bit color try starting your - X server in 32-bit per pixel mode for better performance. That is, - start your X server with - startx -- -bpp 32 - instead of - startx -- -bpp 24 -
  14. Try disabling dithering with the MESA_NO_DITHER environment variable. - If this env var is defined Mesa will disable dithering and the - command glEnable(GL_DITHER) will be ignored. -
- - - - diff --git a/nx-X11/extras/Mesa/docs/precompiled.html b/nx-X11/extras/Mesa/docs/precompiled.html deleted file mode 100644 index 166d33d82..000000000 --- a/nx-X11/extras/Mesa/docs/precompiled.html +++ /dev/null @@ -1,26 +0,0 @@ - - -Precompiled libraries - - - - - -

Precompiled Libraries

- -

-In general, precompiled libraries are not available. -However, people occasionally prepare packages of precompiled libraries -for some systems. -

- -

Mesa-6.0 for Solaris

- -

-Steve Christensen has submitted precompiled Mesa-6.0 libraries for -Solaris at -sunfreeware.com. -

- - - diff --git a/nx-X11/extras/Mesa/docs/relnotes.html b/nx-X11/extras/Mesa/docs/relnotes.html deleted file mode 100644 index fb4321e73..000000000 --- a/nx-X11/extras/Mesa/docs/relnotes.html +++ /dev/null @@ -1,45 +0,0 @@ - - -Mesa Release Notes - - - - - -

Release Notes

- -

-The release notes summarize what's new or changed in each Mesa release. -

- - - - - - diff --git a/nx-X11/extras/Mesa/docs/science.html b/nx-X11/extras/Mesa/docs/science.html deleted file mode 100644 index f55cf3124..000000000 --- a/nx-X11/extras/Mesa/docs/science.html +++ /dev/null @@ -1,72 +0,0 @@ - - -Science and Technical - - - - - -

Science and Technical

- -
    -
  • Ch - OpenGL bindings for the Ch C/C++ interpreter -
  • CLEO3D - event displayer for the CLEOIII detector -
  • DINO - Visualizing - Structural Biology -
  • General - Mesh Viewer (GMV) - scientific vis. -
  • GiD - finite element - analysis -
  • glpoisson - A finite - element analysis program that simulates wave in an arbitrary region. -
  • GLWaves - - Electromagnetic wave visualization -
  • Gmsh - - finite element mesh generator / viewer -
  • gOpenMol - - computational chemistry -
  • GPS 3D - GPS-based map visualization -
  • Hitchhiker - - virtual solar system -
  • Hydra - physics - and engineering pkg -
  • Light Speed - - a real-time, interactive relativistic simulator -
  • LinkWinds - scientific - vis -
  • MathGL3d - Mathematica viewer -
  • Mathworks - - mathematics and visualization -
  • Medit - 3D surface mesh viewer -
  • MOLMOL - - molecular modeling and analysis -
  • Molscript - molecular - modeling -
  • -
  • OpenDX - Data visualization - system -
  • -
  • ORSA - An interactive tool for Celestial Mechanics -
  • -
  • ParaView - Scientific visualization package -
  • -
  • PHLEX - Finite element vis -
  • ROOT - Object Oriented Data - Analysis Framework -
  • SLFFEA - GNU finite element - package -
  • Spock - molecular - modeling -
  • Ssystem - solar - system simulation -
  • SPARROW - robot simulation -
  • Vis5D - - atmospheric visualization -
  • VMD - molecular - modeling -
  • Webots - 3-D mobile - robot simulator -
- - - \ No newline at end of file diff --git a/nx-X11/extras/Mesa/docs/sourcedocs.html b/nx-X11/extras/Mesa/docs/sourcedocs.html deleted file mode 100644 index a5248d988..000000000 --- a/nx-X11/extras/Mesa/docs/sourcedocs.html +++ /dev/null @@ -1,26 +0,0 @@ - - -Source Code Documentation - - - - - -

Source Code Documentation

- -

-Doxygen -is used to automatically -produce cross-referenced documentation from the Mesa sources. -This is not included in the normal Mesa distribution. -Download Mesa from CVS if interested. -

- -

-If you're reading this page from your local copy of Mesa, and have -run the doxygen scripts, you can read the documentation -here -

- - - diff --git a/nx-X11/extras/Mesa/docs/subset-A.html b/nx-X11/extras/Mesa/docs/subset-A.html deleted file mode 100644 index dac66a61b..000000000 --- a/nx-X11/extras/Mesa/docs/subset-A.html +++ /dev/null @@ -1,3579 +0,0 @@ - - - - Mini GLX Specification - - - -

-
Mesa Subset Specification
-

-

-
-

Tungsten Graphics, Inc.

-

February 26, 2003
-

-
-

-

Copyright © 2002-2003 by Tungsten Graphics, Inc., -Cedar Park, Texas. All Rights Reserved.
-
-Permission is granted to make and distribute verbatim copies of this -document provided the copyright notice and this permission notice are -preserved on all copies.
-

-

OpenGL is a trademark of Silicon -Graphics, Inc..

-

1. Introduction

-This document describes a subset of the Mesa implemented by Tungsten -Graphics, Inc. for embedded devices.  Prior to reading this -document the reader should be familiar with the OpenGL 1.2.1 -specification dated April 1, 1999 (available from http://www.opengl.org/developers/documentation/specs.html.) - Experience with OpenGL programming is highly advisable.
-

-Tungsten Graphics, Inc. is working with industry standards -organizations +in an attempt to standardize this Mesa subset and any -other possible subsets +as a result of this work.
-
-Appendix A contains a list of issues of which some may not be resolved.
-
-To summarize, the following major features of Mesa are omitted from the -subset:
-
    -
  • Vertex arrays
  • -
  • Texture coordinate generation
  • -
  • Lighting
  • -
  • Point size
  • -
  • Polygon stipple
  • -
  • DrawPixels, CopyPixels, PixelZoom
  • -
  • 1-D and 3-D textures
  • -
  • CopyTex[Sub]Image
  • -
  • Fog
  • -
  • Depth test
  • -
  • Color Index mode
  • -
  • Accumulation buffer
  • -
  • Feedback mode
  • -
  • Evaluators
  • -
  • Push/Pop attributes
  • -
  • Display lists
    -
  • -
-

Further reductions are made at a lower level of detail.
-

-

Mesa function names are printed in bold -face.  Function parameters are printed in italics.
-

-

The Tungsten Graphics, Inc. Mesa subset library is hereafter -referred to as the subset.
-
-

-

2. Primitive Specification

-

2.1 glBegin, glEnd and glVertex Commands

-The basic rendering primitives are points, lines and triangles. - Quadrilaterals and polygons are composed of triangles. - Primitives are drawn with the glBegin -and glEnd commands and a subset -of the glVertex commands:
-
-
void glBegin(GLenummode)
-void glEnd(void)
-
-void glVertex2f(GLfloat x, GLfloat y)
-void glVertex2fv(const GLfloat -*v)
-void glVertex3f(GLfloat x, GLfloat y, GLfloat z)
-void glVertex3fv(const GLfloat -*v)
-
-
-The mode parameter to glBegin may be one of the following
-
-
GL_POINTS - a series of individual -points
-GL_LINES - a series of disjoint line segments
-GL_LINE_STRIP - series of connected line segments
-GL_LINE_LOOP - a closed loop of line segments
-GL_TRIANGLES - a series of individual triangles
-GL_TRIANGLE_STRIP - a connected strip of triangles
-GL_TRIANGLE_FAN - a sequence of triangles all sharing a common vertex
-GL_QUADS - a sequence of individual quadrilaterals
-GL_QUAD_STRIP - a connected strip of quadrilaterals
-GL_POLYGON - a closed, convex polygon
-
-
-
-The glVertex commands take two -or three floating point coordinates, or a pointer to an array of two or -three floating point coordinates.  Vertices are actually 4-element -homogeneous coordinates.  The fourth component, unspecified by the -subset's glVertex commands, is -one.
-
- -

2.2 Other Per-vertex Commands
-

-The glColor and glTexCoord commands may be used to -specify colors and texture coordinates for each vertex:
-
-
void glColor3f(GLfloatred, GLfloat green, GLfloat blue)
-void glColor3fv(const GLfloat *rgb)
-void glColor4f(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
-void glColor4fv(const GLfloat *rgba)
-void glTexCoord2f(GLfloat s, GLfloat t)
-void glTexCoord2fv(const -GLfloat *c)
-
-
-The glColor commands specify -the color and optionally, the alpha value, for subsequent vertices. - For the glColor3 commands, -alpha is set to one.
-
-The glTexCoord2 commands -specify the texture coordinate for subsequent vertices.  Texture -coordinates are actually four-component coordinates: (s, t, r, q). - The glTexCoord2 commands -set s and t explicitly.  The r and q components are zero and one, -respectively.
-
-Only glVertex, glColor and glTexCoord commands are allowed -between glBegin and glEnd.  Calling any other -command between glBegin and glEnd will result in the error -GL_INVALID_OPERATION.
-
-

2.3 Unsupported Commands

-None of the following commands related to primitive specification are -supported by the subset:
-
-
Per-Vertex commands:
-
-
-
glVertex2d, -glVertex2i, glVertex2s, glVertex3d, glVertex3i, glVertex3s, glVertex4d, -glVertex4i, glVertex4s, glVertex2dv, glVertex2iv, glVertex2sv, -glVertex3dv, glVertex3iv, glVertex3sv, glVertex4dv, glVertex4iv, -glVertex4sv,
-glNormal3b, glNormal3d, glNormal3f, glNormal3i, glNormal3s,
glNormal3bv, glNormal3dv, glNormal3fv, -glNormal3iv, glNormal3sv,
-glIndexd, glIndexf, glIndexi, glIndexs, glIndexub, glIndexdv, -glIndexfv, glIndexiv, glIndexsv, glIndexubv,
-glColor3b, glColor3d, glColor3i, glColor3s, glColor3ub, glColor3ui, -glColor3us,
glColor3bv, -glColor3dv, glColor3iv, glColor3sv, glColor3ubv, glColor3uiv, -glColor3usv, lColor4b, -glColor4d, glColor4i, glColor4s, glColor4ub, glColor4ui, glColor4us, glColor4bv, glColor4dv, glColor4iv, -glColor4sv, glColor4ubv, glColor4uiv, glColor4usv,
-
glTexCoord1d, glTexCoord1f, -glTexCoord1i, glTexCoord1s, glTexCoord2d, glTexCoord2i, glTexCoord2s, -glTexCoord3d, glTexCoord3f, glTexCoord3i, glTexCoord3s, glTexCoord4d, -glTexCoord4f, glTexCoord4i, glTexCoord4s, glTexCoord1dv, glTexCoord1fv, -glTexCoord1iv, glTexCoord1sv, glTexCoord2dv, glTexCoord2iv, -glTexCoord2sv, glTexCoord3dv, glTexCoord3fv, glTexCoord3iv, -glTexCoord3sv, glTexCoord4dv, glTexCoord4fv, glTexCoord4iv, -glTexCoord4sv,
-glEdgeFlag, glEdgeFlagv

-
-
-Vertex array commands:
-
glVertexPointer, -glColorPointer, glIndexPointer, glTexCoordPointer, glEdgeFlagPointer, -glNormalPointer, glInterleavedArrays, glArrayElement, glDrawArrays, -glDrawElements, glDrawRangeElements, glEnableClientState, -glDisableClientState
-
-
-

-Rectangle commands:
-
glRects, -glRecti, glRectf, glRectd, glRectsv, glRectiv, glRectfv, glRectdv,
-
-
-
-
Lighting commands:
-
-
glMaterialf, -glMateriali, glMaterialfv, glMaterialiv
-

-
-
Evaluator commands:
-
glEvalCoord1d, -glEvalCoord1f, glEvalCoord1dv, glEvalCoord1fv, glEvalCoord2d, glEvalCoord2f, -glEvalCoord2dv, glEvalCoord2fv,
-
glEvalPoint1, glEvalPoint2
-
-
-
-

3. Coordinate Transformation

-

3.1 Vertex Transformation

-Vertex coordinates are transformed by the current modelview and -projection matrices then mapped to window coordinates as specified by -the viewport.  The following coordinate transformation commands are -supported by the subset
-
-
glMatrixMode(GLenum mode)
-glLoadIdentity(void)
-glPushMatrix(void)
-glPopMatrix(void)
-glLoadMatrixf(const GLfloat *m)
-glMultMatrixf(const GLfloat *m)
-glRotatef(GLfloat angle, GLfloat x, GLfloat y, GLfloat z)
-glTranslatef(GLfloat x, GLfloat y, GLfloat z)
-glScalef(GLfloat x, GLfloat y, GLfloat z)
-glFrustum(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble near, GLdouble far)

-glOrtho(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble near, GLdouble far)
-glViewport(GLint x, GLint y, GLsize width, GLsizei height)
-
-
-The glMatrixMode command -specifies the current matrix. - The mode parameter may be GL_MODELVIEW or GL_PROJECTION to specify -the modelview matrix or projection matrix.  Subsequent matrix -commands will effect the current matrix.  Also associated with the -modelview and projection matrices are a modelview matrix stack and -projection matrix stack.
-
-The glLoadIdentity command -replaces the current matrix with the identity matrix.  The matrix -elements are specified in column-major order.
-
-The glPushMatrix command pushes -a copy of the current matrix onto either the modelview matrix stack or -the projection matrix stack.  The glPopMatrix -command replaces the current matrix with a copy of the top matrix off -the modelview matrix stack or projection matrix stack, the pops the -stack.  Matrix stacks are useful for traversing and rendering -hierarchical models.
-
-The glMultMatrixf command -post-multiplies the current matrix by the specified matrix.  The -matrix elements are specified in column-major order.
-
-The glRotatef command -post-multiplies the current matrix by a rotation matrix defined by the -angle and rotation axis defined by x, y and z.
-
-The glTranslatef command -post-multiplies the current matrix by a translation matrix defined by -the x, y and z translation parameters.
-
-The glScalef command -post-multiplies the current matrix by a scaling matrix defined by the x, y and z scale factors.
-
-The glFrustum command -post-multiplies the current matrix by a perspective projection matrix. - The near and far values specify the position of -the hither and yon Z-axis clipping planes.  The left, right, bottom and top parameters are the X and Y -extents at the near clipping plane.  glFrustum is normally used to modify -the projection matrix.
-
-The glOrtho command -post-multiplies the current matrix by an orthographic projection matrix. - The near and far values specify the position of -the hither and yon Z-axis clipping planes.  The left, right, bottom and top parameters specify the X and -Y-axis clipping planes.  glOrtho -is normally used to modify the projection matrix.
-
-The glViewport command -specifies the mapping of coordinates from normalized device coordinates -to window coordinates.  The x -and y parameters specify the -viewport's lower-left corner in the window and the width and height parameters specify the size -of the viewport.  glViewport -does not effect the current matrix.
-
-A coordinate transformed to window coordinates is hereafter known as (xw, -yw, zw).
-
-

3.2 Clipping

-View-volume clipping automatically discards or trims primitives which -lie completely or partially outside of the view volume specified by glFrustum and glOrtho.  Note that the glViewport command does not define a -clipping region.
-
-Clipping occurs in clip coordinate -space - the coordinates produced after applying the projection -matrix.
-
-

3.3 Current Raster Position

-The current raster position specifies the location for drawing images -with glBitmap.  The current -raster position is set with the commands:
-
-
void glRasterPos2f(GLfloatx, GLfloat y)
-void glRasterPos2fv(const -GLfloat *v)
-void glRasterPos2i(GLint x, GLint y)
-void glRasterPos2iv(const -GLint *v)
-
-
-glRasterPos specifies a -4-component coordinate (x, y, 0, 1).  The coordinate is processed -like a vertex; it is transformed by the modelview matrix, the projection -matrix and mapped to the viewport.  The resulting window coordinate -is stored as the current raster position.  The coordinate is -clipped-tested against the frustum like a vertex.  If the -coordinate is clipped, then the current raster position becomes invalid -and subsequent glBitmap commands -have no effect.
-
-glRasterPos also updates the -current raster color and current raster texture coordinates.  The -current raster color is updated (copied) from the current color (as -specified by glColor). - The current raster texture coordinate is updated (copied) from the -current texture coordinate (as specified by glTexCoord).
-
-

3.4 Unsupported Commands

-The following commands related to vertex transformation are not -supported by the subset:
-
-
User-defined clip plane commands:
-
glClipPlane
-
-
-
-
Lighting and material commands:
-
glLightModeli, -glLightModelf, glLightModeliv, -glLightModelfv, glLightf, -glLighti, glLightfv, glLightiv, glColorMaterial
-
-
-
Automatic texture coordinate generation -commands:
-
-
-
glTexGend, -glTexGenf, glTexGeni, glTexGendv, -glTexGenfv, glTexGeniv,
-
-
-Double-valued commands:
-
glLoadMatrixd, -glMultMatrixd, glRotated, glTranslated, glScaled
-
-
-Depth Range command:
-
glDepthRange -(the near value is always 0.0 and the far value is always 1.0)
-
-
-Extra RasterPos commands:
-
glRasterPos2d, -glRasterPos2s, glRasterPos3d, glRasterPos3f, glRasterPos3i, -glRasterPos3s, glRasterPos4d, glRasterPos4f, glRasterPos4i, -glRasterPos4s, glRasterPos2dv, glRasterPos2sv, glRasterPos3dv, -glRasterPos3fv, glRasterPos3iv, glRasterPos3sv, glRasterPos4dv, -glRasterPos4fv, glRasterPos4iv, glRasterPos4sv
-
-
-
-
-

4. Rasterization

-This section describes the commands and options for drawing points, -lines, triangles and bitmaps.  Rasterization -is the term for the process which produces fragments from the geometric -description of a primitive (a point, line, polygon or bitmap).  For -example, given the two coordinates for the end-points of a line segment, -rasterization determines which pixels in the frame buffer are modified -to draw the line.  A -fragment is a tuple which consists of a window coordinate, colors and -texture coordinates.  The fragments produced by rasterization are -subsequently processed by the per-fragment operations described later.
-
-

4.1 Point Rasterization

-Points are rendered with the command sequence glBegin(GL_POINTS), glVertex, ... glEnd.  The window coordinate (xw, -yw, zw) is truncated to rasterize the point. - The truncated coordinate with its associated color and texture -coordinate is sent as a single fragment to the per-fragment processing -stages.
-
-The glPointSize command is not -supported; only 1-pixel points are supported.
-
-Point smoothing (antialiasing) is also not supported.
-
-

4.2 Line Rasterization

-Lines are rendered with the command sequence glBegin(mode), glVertex, glVertex, ... glEnd where mode is one of GL_LINES, -GL_LINE_STRIP or GL_LINE_LOOP.  Lines are rasterized as described -in the OpenGL specification.  Note that OpenGL specifies the half-open convention for drawing -lines: the last fragment in a line segment is omitted so that endpoint -pixels shared by two line segments will only be drawn once instead of -twice.
-
-

4.2.1 Line Width

-The width of lines can be controlled by
-
-
void glLineWidth(GLfloatwidth)
-
-
-where width is the line width -in pixels.  The width defaults to 1.0.  Attempting to set the -width to a value less than or equal to zero will raise the error -GL_INVALID_VALUE.
-
-

4.2.2 Line Stipple
-

-Lines may be stippled (i.e. dashed) with the command
-
-
glLineStipple(GLintfactor, GLushort pattern)
-
-
-pattern describes an on/off -pattern for the fragments produced by rasterization and factor specifies how many subsequent -fragments are kept or culled for each pattern bit.  Line stippling -can be enabled or disabled by the commands glEnable(GL_LINE_STIPPLE) and glDisable(GL_LINE_STIPPLE).
-
-

4.2.3 Line Antialiasing

-Lines may be antialiased.  For antialiased lines, each fragment -produced by rasterization is assigned a coverage value which describes how -much of the fragment's area is considered to be inside the line.  Later, the -alpha value of each fragment is multiplied by the coverage value. - By blending the fragments into the frame buffer, the edges of -lines appear smoothed.
-
-Line antialiasing can be enabled or disabled with the commands glEnable(GL_LINE_SMOOTH) and glDisable(GL_LINE_SMOOTH).
-
-

4.3 Polygon Rasterization

-Polygons, quadrilaterals and triangles share the same polygon -rasterization options.
-
-Triangles are rendered by the command sequence glBegin(mode),glVertex, glVertex, ... glEnd where mode may be one of GL_TRIANGLES, -GL_TRIANGLE_STRIP or GL_TRIANGLE_FAN. - For GL_TRIANGLES mode, the number of vertices should be a multiple -of three - extra vertices will be ignored.  For GL_TRIANGLE_STRIP -and GL_TRIANGLE_FAN, at least three vertices should be specified. - If less than three are specified, nothing is drawn.  
-
-Quadrilaterals are rendered by -the command sequence glBegin(mode),glVertex, glVertex, ... glEnd where mode may be one of GL_QUADS or -GL_QUAD_STRIP.   For -GL_QUADS, the number of vertices should be a multiple of four - extra -vertices will be ignored.  For GL_QUAD_STRIP, the number of -vertices should be even and at least four.  Extra vertices (one) -will be ignored.
-
-Convex polygons are rendered -by the command sequence glBegin(GL_POLYGON),glVertex, glVertex, ... glEnd. - If less than three vertices are specified, nothing is drawn.
-
-

4.3.1 Polygon Orientation

-The winding order of vertices -(clockwise or counter-clockwise) is significant.  It is used to -determine the front-facing or back-facing orientation of polygons. - By default, a front-facing polygon's vertices are in -counter-clockwise order (in window coordinates).  Figures 2.4 and -2.5 of the OpenGL 1.2.1 specification illustrate the winding order for -front-facing triangles and quadrilaterals, respectively.
-
-The command
-
-
void glFrontFace(GLenum mode)
-
-
-specifies whether clockwise or counter-clockwise winding indicates a -front-facing polygon.  If mode -is GL_CW then polygons with clockwise winding are front-facing.  If mode is GL_CCW then polygons with -counter-clockwise winding are front-facing.  The default value is -GL_CCW.  If mode is not -GL_CCW or GL_CW then the error GL_INVALID_ENUM will be raised.
-
-

4.3.2 Polygon Culling

-Polygons may be culled (discarded) depending on whether they are -front-facing or back-facing.  The command
-
-
void -glCullFace(GLenum mode)
-
-
-specifies whether front-facing, back-facing or all polygons should be -culled.  If mode is -GL_FRONT then front-facing polygons will be culled.  If mode is GL_BACK then back-facing -polygons will be culled. Otherwise, if mode -is GL_FRONT_AND_BACK then all polygons will be culled.  Any other -value for mode will raise the -error GL_INVALID_ENUM.
-
-Polygon culling is enabled and disabled with the commands glEnable(GL_CULL_FACE) and glDisable(GL_CULL_FACE), -respectively.
-
-

4.3.3 Polygon Antialiasing

-Polygons may be antialiased in order to smooth their edges. - Polygon antialiasing is enabled and disabled with the commands glEnable(GL_POLYGON_SMOOTH) and glDisable(GL_POLYGON_SMOOTH).
-
-When polygon antialiasing is enabled each fragment produced by polygon, -triangle and quadrilateral rasterization will be given a coverage value which indicates how -much of the fragment is covered by the polygon.  Fragments -completely inside the polygon have coverage 1.0.  Fragments -completely outside the polygon have zero coverage (in theory). - Fragments which intersect the polygon's edge have a coverage value -in the range (0, 1).
-
-The fragment's alpha value is multiplied by the coverage value. - By enabling the appropriate blending mode, polygon edges will -appear smoothed.
-
-

4.4 Shading

-The command
-
-
void glShadeModel(GLenummode)
-
-
-determines whether colors are interpolated between vertices during -rasterization.  If mode is -GL_FLAT then vertex colors are not interpolated.  The color used -for drawing lines, triangles and quadrilaterals is that of the last -vertex used to specify each primitive.  For polygons, the color of -the first vertex specifies the color for the entire polygon.  If mode is GL_SMOOTH then vertex colors -are linearly interpolated to produce the fragment colors.
-
-

4.5 Bitmap Rasterization

-A bitmap is a monochromatic, binary image in which each image element -(or pixel) is represented by one bit.  Fragments are only generated -for the bits (pixels) which are set.  Bitmaps are commonly used to -draw text (glyphs) and markers.
-
-A bitmap is drawn with the command
-
-
void glBitmap(GLsizeiwidth, GLsizei height, GLfloat xOrig, GLfloat yOrig, GLfloat xMove, GLfloat yMove, const  GLubyte *image)
-
-
-width and height specify the image size in -pixels.  xOrig and yOrig specify the bitmap origin. - xMove and yMove are added to the current -raster position after the bitmap is rasterized.  image is a pointer to the bitmap -data.
-
-If the current raster position is not valid, glBitmap has no effect.
-
-

4.5.1 Bitmap Unpacking

-The first step in bitmap rendering is unpacking. - Unpacking is the process of extracting image data from -client memory subject to byte swapping, non-default row strides, etc. - The unpacking parameters are specified with the command
-
-
void -glPixelStorei(GLenum pname, GLint value)
-
-
-The following unpacking parameters may be set:
-
- - - - - - - - - - - - - - - - - - -
Parameter (pname)
-
Value (value)
-
Default
-
GL_UNPACK_ROW_LENGTH
-
Width of the image in memory, in -pixels.
-
0
-
GL_UNPACK_LSB_FIRST
-
GL_FALSE indicates that the most -significant bit is unpacked first from each byte.  GL_TRUE -indicates that the least significant bit is unpacked first from each -byte.
-
GL_FALSE
-
-
-
-The GL_UNPACK_ROW_LENGTH specifies the stride (in pixels) for advancing -from one row of the image to the next.  If it's zero, the width parameter to glBitmap specifies the width of the -image in memory.
-
-GL_UNPACK_LSB_FIRST determines whether the least significant or most -significant bit in each byte is unpacked first.  Unpacking occurs -in left to right order (in image space).
-
-The value of bit (i, j) of the image (where i is the image row and j is -the image column) is found as follows:
-
-
rowLength = (GL_UNPACK_ROW_LENGTH != 0) -? GL_UNPACK_ROW_LENGTH : width;
-
-byte = image[((rowLength + 7) -/ 8) * i + j / 8];
-
-if (GL_UNPACK_LSB_FIRST != 0)
-    bitMask = 1 << (j % 8);
-else
-    bitMask = 128 >> (j % 8);
-
-if (byte & bitMask)
-    bit = 1;
-else
-    bit = 0;
-
-
- -

4.5.2 Rasterization

-If the current raster position is (xrp, yrp, zrp, -wrp), then the bitmap is rasterized according to the -following algorithm:
-
-for (j = 0; j < height; -j++) {
-    for (i = 0; i < width; -i++) {
-        if (bit(i,j)) {
-            fragment.x = -floor(xrp - xOrig) -+ i;
-            fragment.y = -floor(yrp - yOrig) -+ j;
-            fragment.color -= GL_CURRENT_RASTER_COLOR;
-            -fragment.texture = GL_CURRENT_RASTER_TEXTURE_COORDS;
-            -ProcessFragment(fragment)
-         }
-    }
-}
-
-After the bitmap has been rendered the current raster position is -updated as follows:
-
-
xrp = xrp + xMove
-yrp = yrp + yMove
-
-
-

4.5.3 Per-fragment Operations

-XXX supported?  See issue in appendix A.
-
-

4.6 Unsupported Commands

-The following commands related to rasterization are not supported by -the subset.
-
-
Point commands:
-
glPointSize
-
-
-Polygon commands:
-
glPolygonStipple
-glPolygonOffset
-glPolygonMode
-
-
-
-
Pixel storage commands:
-
-
glPixelStoref
-
-
-
-

5. Texture Mapping
-

-There are four elements to texture mapping: texture coordinate -specification, texture image specification, texture sampling and texture -application.
-
-Texture mapping is enabled and disabled with the commands glEnable(GL_TEXTURE_2D) and glDisable(GL_TEXTURE_2D).
-
-

5.1 Texture Image Specification

-A texture image is specified with the command:
-
-
void glTexImage2D(GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels )
-
-
-target must be GL_TEXTURE_2D. - level indicates the -mipmap level for mipmap textures.  internalFormat -is a hint to indicate the preferred internal storage format for the -texture.  width and height indicate the image size in -pixels (or texels).  border must -be zero.  format and type describe the pixel format and -data type for the incoming image.  pixels -points to the incoming texture image.  These parameters are -described in more detail below.
-
-

5.1.1 Texture Image Size and Mipmaps

-

-Texture images must have dimensions (width and height) that are powers -of two. For example: 256 x 256, 32 x 1024, 1 x 8, etc.  That is, it -must be the case that width = -2n and height = 2m -for some positive integers n and m.
-
-Mipmapping is a method of antialiasing or filtering textures to improve -their appearance.  A mipmap is a set of images consisting of a base -image and a set of filtered, reduced-resolution images.  If the -base image (level=0) is of -width 2n and height 2m then the level 1 image must -be of width 2n-1 and height 2m-1.  Each mipmap -level is half the width and height of the previous level, or at least -one.  The last mipmap level has a width and height of one.
-
-The following is an example of a mipmap's image levels:
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
mipmap level
-
width
-
height
-
0
-
256
-
64
-
1
-
128
-
32
-
2
-
64
-
16
-
3
-
32
-
8
-
4
-
16
-
4
-
5
-
8
-
2
-
6
-
4
-
1
-
7
-
2
-
1
-
8
-
1
-
1
-
-
-If the width or height parameters are not powers of -two, the error GL_INVALID_VALUE is raised.  If the image levels in -a mipmap do not satisfy the restrictions listed above the texture is -considered to be inconsistent -and the system will behave as if the texturing is disabled.
-
-

5.1.2 Texture Image Formats and Unpacking

-The glTexImage2D command's format and type parameters describe the format -of the incoming texture image.  Accepted values for format are GL_INTENSITY, GL_RGB and -GL_RGBA.  The type -parameter must be GL_UNSIGNED_BYTE.  Pixel component values are -thus in the range 0 through 255.
-
-If format is GL_INTENSITY then -the image has one byte per pixel which specifies the pixel's red, green, -blue and alpha values.
-
-If format is GL_RGB then the -image has three bytes per pixel which specify the pixel's red, green and -blue values (in that order).  The alpha value defaults to 255.
-
-If format is GL_RGBA then the -image has four bytes per pixel which specify the pixel's red, green, -blue and alpha values (in that order).
-
-The command
-
-
void -glPixelStorei(GLenum pname, -GLint value)
-
-
-controls the unpacking of texture image data from client memory.  pname may be GL_UNPACK_ROW_LENGTH to -indicate the stride, in pixels, between subsequent rows of the image in -client memory.  If GL_UNPACK_ROW_LENGTH is zero (the default) then -the width parameter to glTexImage2D determines the stride.
-
-

5.1.3 Internal Texture Format

-glTexImage2D converts the incoming -texture image to one of the supported internal texture formats.
-
-The internalFormat parameter -indicates the desired internal format for the texture and may be either -GL_INTENSITY8, GL_RGB5 or GL_RGBA8.
-
-If internalFormat is -GL_INTENSITY8 then the texture has one byte per texel (texture element) -which indicates the texel's intensity (or brightness).  The -intensity is obtained from the incoming image's red channel.
-
-If internalFormat is GL_RGB5 -then the texture is stored with two bytes per texel:  5 bits per -red value, 5 bits per green value and 5 bits per blue value.
-
-If internalFormat is -GL_RGBA8 then the texture is stored with four bytes per texel:  8 -bits for each of the red, green,  blue and alpha values.
-
-The internal format is also significant to texture application (see -section 5.4).
-
-

5.2 Texture Coordinates

-Texture coordinates control the mapping from local polygon space to -texture image space.  Texture coordinates are set for each vertex -with the glTexCoord commands. - During line and polygon rasterization the vertex's texture -coordinates are interpolated across the primitive to produce a texture -coordinate for each fragment.  The fragment texture coordinates are -used to sample the current texture image.
-
-Texture coordinates are normally in the range [0, 1].  Values -outside that range are processed according to the texture wrap mode.  The -texture wrap mode is set with the command
-
-
void glTexParameteri(GLenum target, GLenum pname, GLint value)
-
-
-target must be GL_TEXTURE_2D. - If pname is -GL_TEXTURE_WRAP_S or GL_TEXTURE_WRAP_T then value must be either -GL_CLAMP_TO_EDGE or GL_REPEAT.
-
-For GL_CLAMP_TO_EDGE, texture coordinates are effectively clamped to -the interval [0, 1].
-
-For GL_REPEAT, the integer part of texture coordinates is ignored; only -the fractional part of the texture coordinates is used.  This -allows texture images to repeated or tiled across an object.
-
-

5.3 Texture Sampling

-Texture sampling is the process of using texture coordinates to extract -a color from the texture image.  Multiple, weighted samples may be -taken from the texture and combined during the filtering step.
-
-During texture coordinate interpolation a level of detail value (lambda) is -computed for each fragment.  For a mipmapped texture, lambda -determines which level (or levels) of the mipmap will be sampled to -obtain the texture color.
-
-If lambda indicates that multiple texels map to a single screen pixel, -then the texture minification -filter will be used.  Otherwise, if lambda indicates that a single -texel maps to multiple screen pixels, then the texture magnification filter will be used.
-
-

5.3.1 Texture Minification

-The texture minification filter is set with the glTexParameteri command by setting target to GL_TEXTURE_2D, setting pname to GL_TEXTURE_MIN_FILTER and -setting value to GL_NEAREST, -GL_LINEAR, GL_NEAREST_MIPMAP_NEAREST,  -GL_NEAREST_MIPMAP_LINEAR,   GL_LINEAR_MIPMAP_NEAREST or -GL_LINEAR_MIPMAP_LINEAR.
-
-GL_NEAREST samples the texel nearest the texture coordinate in the -level 0 texture image.
-
-GL_LINEAR samples the four texels around the texture coordinate in the -level 0 texture image.  The four texels are linearly weighted to -compute the final texel value.
-
-GL_NEAREST_MIPMAP_NEAREST samples the texel nearest the texture -coordinate in the level N texture image.  N is the level of detail -and is computed by the partial derivatives of the texture coordinates -with respect to the window coordinates.
-
-GL_NEAREST_MIPMAP_LINEAR samples two texels nearest the texture -coordinates in the level N and N+1 texture images.  The two texels -are linearly weighted to compute the final texel value.  N is the -level of detail and is computed by the partial derivatives of the -texture coordinates with respect to the window coordinates.
-
-GL_LINEAR_MIPMAP_NEAREST samples four texels around the texture -coordinate in the level N texture image.  The four texels are -linearly weighted to compute the final texel value.  N is the level -of detail and is computed by the partial derivatives of the texture -coordinates with respect to the window coordinates.
-
-GL_LINEAR_MIPMAP_LINEAR samples four texels around the texture -coordinate in the level N texture image and four texels around the -texture coordinate in the level N+1 texture image.  The eight -texels are linearly weighted to compute the final texel value.  N -is the level of detail and is computed by the partial derivatives of the -texture coordinates with respect to the window coordinates.
-
-Filter modes other than GL_LINEAR and GL_NEAREST requires that the -texture have a complete set of mipmaps.  If the mipmap is -incomplete, it is as if texturing is disabled.

-

5.3.2 Texture Magnification

-The texture magnification filter is set with the glTexParameteri command -by setting target to -GL_TEXTURE_2D, setting pname to -GL_TEXTURE_MAG_FILTER and setting value -to GL_NEAREST or GL_LINEAR.
-
-GL_NEAREST samples the texel nearest the texture coordinate in the -level 0 texture image.
-
-GL_LINEAR samples the four texels around the texture coordinate in the -level 0 texture image.  The four texels are linearly weighted to -compute the final texel value.
-
-

5.4 Texture Application

-The sampled texture value is combined with the incoming fragment color -to produce a new fragment color.  The fragment and texture colors -are combined according to the texture environment mode and the current -texture's base internal format.  The texture environment mode is -set with the command
-
-
void -glTexEnvi(GLenum target, -GLenum pname, GLint value)
-
-
-target must be GL_TEXTURE_ENV. - If pname is -GL_TEXTURE_ENV_MODE then value -must be one of GL_REPLACE, GL_MODULATE, GL_DECAL, or GL_BLEND.
-
-There is also a texture environment -color that can factor into texture application.  The texture -environment color can be set with the command
-
-
void -glTexEnvfv(GLenum target, -GLenum pname, const GLfloat *value)
-
-
-target must be GL_TEXTURE_ENV. - If pname is -GL_TEXTURE_ENV_COLOR then value must -point to an array of four values which specify the red, green, blue, -and alpha values of the texture environment color.  The values are -clamped to the range [0, 1].  The default color is (0, 0, 0, 0).
-
-The following table describes the arithmetic used for each combination -of environment mode and base internal format.  (Rf, Gf, Bf, Af) is -the incoming fragment color.  (Rt, Gt, Bt, At) is the sampled -texture color.  Lt is the sampled texture luminance.  'It' is the sampled texture -intensity.  (Rc, Gc, Bc, Ac) is the texture environment color. - (Rv, Gv, Bv, Av) is the resulting value.
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Base Internal Format
-
GL_REPLACE
-
GL_MODULATE
-
GL_DECAL
-
GL_BLEND
-
GL_INTENSITY
-
Rv = It
-Gv = It
-Bv = It
-Bf = It
-
Rv = Rf * It
-Gv = Gf * It
-Bv = Bf * It
-Av = Af * It
undefined
-
Rv = Rf*(1-It) + Rc*It
-Gv = Gf*(1-It) + Gc*It
-Bv = Bf*(1-It) + Bc*It
-Av = Af*(1-It) + Ac*It
GL_RGB
-
Rv = Rt
-Gv = Gt
-Bv = Bt
-Av = Af
-
Rv = Rf * Rt
-Gv = Gf * Gt
-Bv = Bf * Bt
-Av = Af
-
Rv = Rt
-Gv = Gt
-Bv = Bt
-Av = Af
Rv = Rf*(1-Rt) + Rc*Rt
-Gv = Gf*(1-Gt) + Gc*Gt
-Bv = Bf*(1-Bt) + Bc*Bt
-Av = Af
GL_RGBA
-
Rv = Rt
-Gv = Gt
-Bv = Bt
-Av = At
-
Rv = Rf * Rt
-Gv = Gf * Gt
-Bv = Bf * Bt
-Av = Af * At
Rv = Rf*(1-At) + Rt*At
-Gv = Gf*(1-At) + Gt*At
-Bv = Bf*(1-At) + Bt*At
-Av = Af
-
Rv = Rf*(1-Rt) + Rc*Rt
-Gv = Gf*(1-Gt) + Gc*Gt
-Bv = Bf*(1-Bt) + Bc*Bt
-Av = Af*At
-
-
-
-

5.5 Texture Objects

-Texture objects encapsulate a set of texture images (mipmap) and -related state into a named object.  This facilitates use of -multiple textures in an application.  Texture objects are named -with GLuints (unsigned integers).  There is a default texture -object with the name/identifier zero which can never be deleted.
-
-

5.5.1 Creating Texture Objects

-A texture object is created by binding a new GLuint identifier to the -GL_TEXTURE_2D target with the command:
-
-
void glBindTexture(GLenum target, GLuint textureID)
-
-
-target must be GL_TEXTURE_2D. - textureID may be any -unsigned integer.  If textureID -does not name an existing texture object, a new texture object with that -ID will be created, initialized to the default state.  Whether the -ID is new or existed previously, that named texture object is bound as -the current texture object. - Subsequent glTexParameter andglTexImage2D calls will effect the -current texture object.
-
-

5.5.2 Deleting Texture Objects

-One or more texture objects may be deleted with the command:
-
-
void glDeleteTextures(GLsizein, const GLuint *textureIDs)
-
-
-textureIDs is an array of n texture IDs.  The named -texture objects will be deleted.  If the current texture object is -deleted the default texture object (number 0) will be bound as the -current texture object.
-
-

5.5.3 Allocating Texture Object Identifiers

-A list of new, unused texture IDs can be obtained by calling the command
-
-
void glGenTextures(GLsizei n, GLuint *textureIDs)
-
-
-An array of n unused texture -IDs will be returned in the textureIDs -array.
-
-
-

6. Per-fragment Operations

-The fragments produced by rasterization are subjected to a number of -operations which either modify the fragment or test the fragment -(discarding the fragment if the test fails.)  This chapter -describes the per-fragment operations.  They are presented in the -order in which they're performed.  If a fragment fails a test it is -discarded and not subjected to subsequent tests or modifications.
-
-

6.1 Scissor Test

-The scissor test limits rendering to a 2-D rectangular region of the -framebuffer.  The command
-
-
void glScissor(GLintx, GLint y, GLsizei width, GLsizei height)
-
-
-defines a clipping region with the lower-left corner at (x, y) and the given width and height.  The scissor test is -enabled and disabled with the command glEnable(GL_SCISSOR_TEST) -and glDisable(GL_SCISSOR_TEST).
-
-If the incoming fragment's position is (xf, yf) -then the fragment will pass the test if x <= xf < x + width and y <= yf < y + height.  Otherwise, the -fragment is discarded.
-
-If width or height is less than zero the error -GL_INVALID_VALUE is raised.  The default scissor rectangle bounds -are (0, 0, w, h) where w is the initial window width and h is the -initial window height.  The scissor test is disabled by default.
-
-

6.2 Alpha Test

-The alpha test compares the fragment's alpha value against a reference -value and discards the fragment if the comparison fails.  The test -is specified by the command
-
-
void glAlphaFunc(GLenummode, GLclampf reference)
-
-
-mode specifies an inequality -and reference specifies a value -to compare against.  The following table lists all possible -modes and the -corresponding test:
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Comparison mode
-
The test passes if
-
GL_LESS
-
alpha < reference
-
GL_LEQUAL
-
alpha <= reference
GL_GREATER
-
alpha > reference
GL_GEQUAL
-
alpha >= reference
GL_EQUAL
-
alpha == reference
GL_NOTEQUAL
-
alpha != reference
GL_NEVER
-
never pass
-
GL_ALWAYS
-
always passes
-
-
-The reference parameter is -clamped to the range [0, 1].
-
-The alpha test is enabled and disabled with the commands glEnable(GL_ALPHA_TEST) and glDisable(GL_ALPHA_TEST).
-
-The default mode is GL_ALWAYS and the default reference value is 0.
-
-

6.3 Stencil Test

-The stencil buffer stores an N-bit integer value for each pixel in the -frame buffer.  The stencil test compares the stencil buffer value -at the fragment's position to a reference value and possibly discards -the fragment based on the outcome.  Furthermore, the stencil buffer -value may be updated or modified depending on the outcome.  If -there is no stencil buffer the stencil test is bypassed.
-
-Stenciling is controlled by the commands
-
-
void glStencilFunc(GLenumfunc, GLint ref, GLuint mask)
-void glStencilOp(GLenum stencilFail, GLenum depthTestFail, GLenum depthTestPass)
-
-
-The glStencilFunc command controls the -stencil test while glStencilOp -command controls the how the stencil buffer is updated/modified after -the test.
-
-ref is clamped to the range [0, -2N-1] where N is the number of bits per stencil value in the -stencil buffer.
-
-The following table lists all possible values for the func parameter and when the stencil -test will pass.  Both the stencil buffer value and the stencil -reference value are bit-wise ANDed with the mask parameter before the test.
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Stencil func value
-
Stencil test passes if
-
GL_LESS
-
(ref&mask) < (stencil buffer value -& mask)
-
GL_LEQUAL
-
(ref -& mask) <= (stencil -buffer value & mask)
GL_GREATER
-
(ref -& mask) > (stencil -buffer value & mask)
GL_GEQUAL
-
(ref -& mask) >= (stencil -buffer value & mask)
GL_EQUAL
-
(ref -& mask) == (stencil -buffer value & mask)
GL_NOTEQUAL
-
(ref -& mask) != (stencil -buffer value & mask)
GL_NEVER
-
never passes
-
GL_ALWAYS
-
always passes
-
-
-
-If the stencil test passes, the fragment is passed to the next -per-fragment operation.  Otherwise, if the stencil test fails, the -value in the stencil buffer is updated according to the value of the stencilFail parameter to glStencilOp.
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
stencilFail -value
-
New stencil buffer value
-
GL_KEEP
-
originalValue
-
GL_ZERO
-
0
-
GL_INVERT
-
BitWiseInvert(originalValue) -i.e. ~originalValue
-
GL_REPLACE
-
ref
-
GL_INCR
-
originalValue + 1, clamped to -[0, 2N-1]
GL_DECR
-
originalValue - 1, clamped to -[0, 2N-1]
-
-
-The depthTestFail and depthTestPass parameters to glStencilOp are ignored.  Values -for func and stencilFail other than those listed -in the table will cause the error GL_INVALID_ENUM to be raised.
-
-The stencil test is enabled and disabled with the commands glEnable(GL_STENCIL_TEST) and glDisable(GL_STENCIL_TEST).
-
-The default stencil function is GL_ALWAYS.  The default stencil -reference value is 0.  The default stencil mask is ~0.  The -default stencil fail operation is GL_KEEP.
-
-Values written into the stencil buffer are masked with the command
-
-
void glStencilMask(GLuintmask)
-
-
-Only the bits which are set in mask -will be modified in the stencil buffer when written to.  If each -stencil buffer value has N bits, only the least significant N bits of mask are relevant.  The default -stencil mask is ~0.
-
-

6.4 Blending and Logicop

-Blending or a logic operation combines the incoming fragment color with -the destination frame buffer color according to a blending equation or -bit-wise Boolean logical operation.
-
-Blending is enabled and disabled with the commands glEnable(GL_BLEND) and glDisable(GL_BLEND).
-
-The logic operation is enabled and disabled with the commands glEnable(GL_LOGIC_OP) and glDisable(GL_LOGIC_OP).
-
-If both blending and the logic operation are enabled, the logic -operation has higher priority; blending is bypassed.
-
-

6.4.1 Logic Op

-The command
-
-
void glLogicop(GLenummode)
-
-
-Specifies the Boolean logic operation for combining the incoming -fragment color with the destination frame buffer color.  Both the -incoming fragment color and destination frame buffer colors are -interpreted as four-tuples of unsigned integer color components in the -range [0, 2N-1] where N is the number of bits per color -channel.  N may not be the same for all color channels.
-
-The following table lists all values for mode and the boolean arithmetic used -to combine the incoming fragment color value (src) with the destination framebuffer -color value (dst).  Standard ANSI C operators used.
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
LogicOp mode
-
Resulting channel value
-
GL_CLEAR
-
0
-
GL_SET
-
~0
-
GL_COPY
-
src
-
GL_COPY_INVERTED
-
~s
-
GL_NOOP
-
dst
-
GL_INVERT
-
~dst
-
GL_AND
-
src & dst
-
GL_NAND
-
~(src & dst)
-
GL_AND_REVERSE
-
src & ~dst
-
GL_AND_INVERTED
-
~src & dst
-
GL_OR
-
src | dst
-
GL_NOR
-
~(src | dst)
-
GL_OR_REVERSE
-
src | ~dst
-
GL_OR_INVERTED
-
~src | dst
-
GL_XOR
-
src ^ dst
-
GL_EQUIV
-
~(src ^ dst)
-
-
-The fragment's color is replaced by the result of the logic operation.
-
-Specifying any value for mode -other than those listed in the above table will cause the error -GL_INVALID_ENUM to be raised.
-
-The default value for mode is -GL_COPY.  The logic operation is disabled by default.
-
-

6.4.2 Blending

-The command
-
-
void glBlendFunc(GLenumsrcTerm, GLenum dstTerm)
-
-
-specifies the terms of the blending equation.  If Cf = (Rf, Gf, -Bf, Af) is the incoming fragment color and Cb = (Rb, Gb, Bb, Ab) is the -frame buffer color, then the resulting color Cv = (Rv, Gv, Bv, Av) is -computed by:
-
-
Cv = Cf * srcTerm + Cb * dstTerm
-
-
-All possible values for srcTerm -and the corresponding arithmetic term are listed in the following table:
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
srcTerm
-
srcTermArithmetic
-
GL_ZERO
-
(0, 0, 0, 0)
-
GL_ONE
-
(1, 1, 1, 1)
-
GL_DST_COLOR
-
(Rb, Gb, Bb, Ab)
-
GL_ONE_MINUS_DST_COLOR
-
(1-Rb, 1-Gb, 1-Bb, 1-Ab)
-
GL_SRC_ALPHA
-
(Af, Af, Af, AF)
-
GL_ONE_MINUS_SRC_ALPHA
-
(1-Af, 1-Af, 1-Af, 1-Af)
-
GL_DST_ALPHA
-
(Ab, Ab, Ab, Ab)
-
GL_ONE_MINUS_DST_ALPHA
-
(1-Ab, 1-Ab, 1-Ab, 1-Ab)
-
GL_SRC_ALPHA_SATURATE
-
(m, m, m, 1) where m = MIN(Af, -1-Ab)
-
-
-All possible values for srcTerm -and the corresponding arithmetic term are listed in the following table:
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
dstTerm
-
dstTermArithmetic
-
GL_ZERO
-
(0, 0, 0, 0)
-
GL_ONE
-
(1, 1, 1, 1)
-
GL_SRC_COLOR
-
(Rf, Gf, Bf, Af)
-
GL_ONE_MINUS_SRC_COLOR
-
(1-Rf, 1-Gf, 1-Bf, 1-Af)
-
GL_SRC_ALPHA
-
(Af, Af, Af, AF)
-
GL_ONE_MINUS_SRC_ALPHA
-
(1-Af, 1-Af, 1-Af, 1-Af)
-
GL_DST_ALPHA
-
(Ab, Ab, Ab, Ab)
-
GL_ONE_MINUS_DST_ALPHA
-
(1-Ab, 1-Ab, 1-Ab, 1-Ab)
-
-
-The fragment's color is replaced by the result of the blending equation.
-
-Values for srcTerm and dstTerm other than those listed in -the table will cause the error GL_INVALID_ENUM to be raised.
-
-The default value for srcTerm -is GL_ONE.  The default value for dstTerm -is GL_ZERO.  Blending is disabled by default.
-
-

6.5 Color Mask

-The final fragment color is written into the current color buffer at -the end of the per-fragment operations.  Normally, all color -channels in the frame buffer are replaced with the final fragment color. - However, the command
-
-
void glColorMask(GLbooleanredMask, GLboolean greenMask, GLboolean blueMask, GLboolean alphaMask)
-
-
-allows selective writing to individual color channels.  If redMask is GL_TRUE then writing to -the red color channel is enabled, otherwise it's disabled. - Similarly, the green, blue and alpha channels can also be masked.
-
-Initially all four mask values are GL_TRUE.
-
-Color masking is not enabled/disabled with the glEnable/glDisable commands.
-
-

7. Frame Buffer Operations

-The frame buffer is considered to be a two-dimensional array of pixels. - The frame buffer is also organized into layers or logical buffers. - There may be a front color buffer, back color buffer and stencil -buffer.  A double-buffered frame buffer has both a front color -buffer and back color buffer.  A single-buffered framebuffer only -has a front color buffer.  Each pixel in a color buffer has a red, -green and blue value and an optional alpha value.
-
-

7.1 Clearing Buffers

-Buffers are cleared (set to uniform values) with the command
-
-
void glClear(GLbitfieldbuffers)
-
-
-buffers is a bitmask for which -the value may be the bitwise-OR of the values GL_COLOR_BUFFER_BIT and -GL_STENCIL_BUFFER_BIT.  If the GL_COLOR_BUFFER_BIT bit is -specified, the current color buffer will be cleared.  If the -GL_STENCIL_BUFFER_BIT bit is specified, the stencil buffer will be -cleared.
-
-The current color buffer is specified with the command
-
-
void glDrawBuffer(GLenum buffer)
-
-
-buffer may be either GL_FRONT, -GL_BACK or GL_NONE.  GL_FRONT indicates that the front color buffer -will be modified by glClear and -any drawing command.  GL_BACK indicates that the back color buffer -will be modified by glClear and -any drawing command.  GL_NONE indicates that neither color buffer -will be modified by glClear or -any drawing command.  GL_BACK is only valid for double-buffered -frame buffers.
-
-The current scissor rectangle, set by the glScissor command, effects glClear, limiting -the clear to the scissor rectangle, if it's enabled.  Furthermore, only the color channels enabled by glColorMask will be effected by glClear(GL_COLOR_BUFFER_BIT). - Likewise, only the stencil bits enabled by glStencilMask will be effected by glClear(GL_STENCIL_BUFFER_BIT).
-
-The current clear color is set with the command
-
-
void glClearColor(GLclampfred, GLclampf green, GLclampf blue, GLclampf alpha)
-
-
-Subsequent calls to glClear -will use the color (red, green, blue, -alpha) to clear the front or back color buffers.
-
-The current stencil clear value is set with the command
-
-
void glClearStencil(GLintclearValue)
-
-
-If the stencil buffer is N bits deep, the least significant N bits of clearValue will be used to clear the -stencil buffer.
-
-
-

8. Other Features

-

8.1 Frame Buffer Readback

-A rectangular region of pixels can be read from the frame buffer and -placed in client memory with the command
-
-
void glReadPixels(GLintx, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *data)
-
-
-x and y specify the coordinate of the -lower-left corner of the region to read and width and height specify the size of the -rectangular region to read.  format -specifies the format of image data and must be either GL_RGB or -GL_RGBA.  type specify the -data type of the image data and must be either GL_UNSIGNED_BYTE or -GL_FLOAT.  Other values for format -or type will cause the error -GL_INVALID_ENUM to be raised.
-
-The framebuffer may contain 3-component colors (red, green, blue) or -4-component colors (red, green, blue, alpha).  If an alpha channel -is not present, alpha values default to 1.0.
-
-The frame buffer color components (red, green, blue, alpha) are either -converted to 8-bit unsigned integers in the range[0, 255] if type is GL_UNSIGNED_BYTE or -converted to floating point values in the range [0, 1] if type is GL_FLOAT.  The (red, -green, blue, alpha) tuples are then stored as GL_RGB triplets (by -dropping the alpha component) or GL_RGBA quadruples in client memory.
-
-Image data is packed into -client memory according to the pixel packing parameters which are set by -the command
-
-
void glPixelStorei(GLenum pname, GLint value)
-
-
-pname must be -GL_PACK_ROW_LENGTH.  value -indicates the stride (in pixels) between subsequent rows in the -destination image.  If GL_PACK_ROW_LENGTH is zero (the default) -then the width parameter to glReadPixels indicates the row stride.
-
-Pixel readback takes place as follows:
-
-
if (GL_PACK_ROW_LENGTH == 0)
-    rowLength = width;
-else
-    rowLength = GL_PACK_ROW_LENGTH
-
-if (format == GL_RGB) {
-    for (i = 0; i < height; -i++) {
-        for (j = 0; j < width; j++) {
-            k = (i * -rowLength + j) * 3;
-            data[k+0] = FrameBuffer(x + j, y + i).red;
-            data[k+1] = FrameBuffer(x + j, y + i).green;
-            data[k+2] = FrameBuffer(x + j, y + i).blue;
-        }
-    }
-}
-else {
-    for (i = 0; i < height; -i++) {
-        for (j = 0; j < width; j++) {
-            k = (i * -rowLength + j) * 4;
-            data[k+0] = FrameBuffer(x + j, y + i).red;
-            data[k+1] = FrameBuffer(x + j, y + i).green;
-            data[k+2] = FrameBuffer(x + j, y + i).blue;
-            data[k+3] = FrameBuffer(x + j, y + i).alpha;
-        }
-    }
-}
-
-
-The function FrameBuffer(c, r) -returns the pixel in the frame buffer at column c of row r.  data is considered to be either a -GLubyte pointer or a GLfloat pointer, depending on the type parameter.  Similarly, the -FrameBuffer function returns either GLubyte values in the range [0, 255] -or GLfloat values in the range [0,1], depending on the type parameter.
-
-Pixels may be read from either the front or back color buffer. - The command
-
-
void glReadBuffer(GLenumbuffer)
-
-
-specifies the source for reading images with glReadPixels.  If buffer is GL_FRONT then front color -buffer is the source.  If buffer -is GL_BACK then the back color buffer is the source.  It is illegal -to specify GL_BACK when the color buffer is not double buffered. - Any invalid value for buffer -will raise the error GL_INVALID_ENUM.
-
-The default read source is GL_BACK if the frame buffer is double -buffered.  Otherwise, the default read source is GL_FRONT.
-
-

8.2 Selection Mode

-Selection mode is typically used to implement picking: determining which -primitive(s) are present at particular window positions.  The -command
-
-
GLint glRenderMode(GLenummode)
-
-
-is used to enable selection mode.  If mode is GL_SELECTION the graphics -library is put into selection mode.  If mode is GL_RENDER the graphic -library is put into normal rendering mode.  Any other value for mode will raise the error -GL_INVALID_ENUM.
-
-When in selection mode rendering commands will not effect the -framebuffer.  Instead, a record of the primitives that would have -been drawn is placed in the selection buffer.  The selection buffer -is specified with the command
-
-
void glSelectionBuffer(GLsizein, GLuint *buffer)
-
-
-buffer
is an array of n -unsigned integers.  No more than n -values will be placed in the buffer.
-
-The name stack is a stack -(LIFO) of unsigned integer names.  The following commands -manipulate the name stack:
-
-
void glInitNames(void)
-void glPushName(GLuint name)
-void glPopName(void)
-void glLoadName(GLuint name)
-
-
-glInitNames resets the name -stack to an empty state.  glPushName pushes the given name value onto the stack.  glPopName pops the top name from the -stack.  glLoadName replaces the top value on -the stack with the specified name. - Stack underflow and overflow conditions cause the errors -GL_STACK_OVERFLOW and GL_STACK_UNDERFLOW to be raised.
-
-While in selection mode, primitives (points, lines, polygons) are -transformed and clip-tested normally.  Primitives which aren't -discarded by clipping cause the hit data to be updated.  The hit -data consists of three pieces of information: a hit flag, a minimum Z -value and a maximum Z value.  First, the hit flag is set. - Then, for each of the primitive's vertices, the vertex Z value is -compared to the minimum and maximum Z values.  The minimum Z value -is updated if the vertex's Z value is less than the minimum Z value. - The maximum Z value is updated if the vertex's Z value is greater -than the maximum Z value.
-
-When any of glInitNames, glPushName, glPopName, glLoadName or glRenderMode are called and the hit -flag is set, a hit record is -written to the selection buffer.
-
-A hit record consists of a sequence of unsigned integers.  The -first value is the size of the name stack.  The second value is the -minimum Z value multiplied by 232-1.  The third value is -the maximum Z value multiplied by 232-1.  The remaining -values are the values in the name stack, in bottom to top order. - The hit flag is cleared after a hit record is written to the -selection buffer.  Hit records are places sequentially into the -selection buffer until it is full or selection mode is terminated.
-
-Selection mode is terminated by calling glRenderMode(GL_RENDER).   The -return value of glRenderMode -will be -1 if the selection buffer overflowed.  Otherwise, the -return value will indicate the number of values written into the -selection buffer.
-
-

8.3 Synchronization

-The command
-
-
void glFlush(void)
-
-
-makes the graphics library to flush all pending graphics commands. - The command
-

-void glFinish(void)
-
-
-makes the graphics library flush the command queue and wait until those -commands are completed.  glFlush -will not return until all previous graphics commands have been fully -completed.
-
-These commands are typically used to force completion of rendering to -the front color buffer.  Otherwise, rendering to the front color -buffer may not appear.  The swapbuffers -command (part of the window system binding library) does an implicit -flush before swapping the front and back color buffers.  The glReadPixels command also does an -implicit flush before reading pixel data from the frame buffer.
-
-

9. State Queries

-The current value of nearly all library state variables can be queried. - This chapter describes the commands used for querying the value of -state variables.
-
-

9.1 General State Queries

-The command
-
-
void glGetFloatv(GLenumpname, GLfloat *values)
-
-
-returns the value(s) of the state variable specified by pname.  The following table -lists all accepted values for pname -and a description of the value(s).  Specifying any other value for pname causes the error -GL_INVALID_ENUM to be raised.
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Variable (pname)
-
Number of values
-
Value(s) Description
-
GL_ALPHA_BITS
-
1
-
Number of bits per alpha value -in the frame buffer.
-
GL_ALPHA_TEST
-
1
-
Zero if the alpha test is -disabled.
-One if the alpha test is enabled.
-
GL_ALPHA_TEST_FUNC
-
1
-
The alpha test function.
-
GL_BLEND
-
1
-
Zero if blending is disabled.
-One if blending is enabled.
-
GL_BLEND_DST
-
1
-
Blend destination function/term.
-
GL_BLEND_SRC
-
1
-
Blend source function/term.
-
GL_BLUE_BITS
-
1
-
Number of bits per blue value in -the frame buffer.
-
GL_COLOR_CLEAR_VALUE
-
4
-
Clear color (red, green, blue, -alpha).
-
GL_COLOR_WRITE_MASK
-
4
-
Color buffer writemask (red, -green, blue, alpha).
-Zero if writing is disabled.
-One if writing is enabled.
-
GL_CULL_FACE
-
1
-
Zero if polygon culling is -disabled.
-One if polygon culling is enabled.
-
GL_CULL_FACE_MODE
-
1
-
Polygon cull mode: GL_FRONT, -GL_BACK or GL_FRONT_AND_BACK.
-
GL_CURRENT_COLOR
-
4
-
Current color (red, green, blue, -alpha).
-
GL_CURRENT_RASTER_COLOR
-
4
-
Current raster position color -(red, green, blue, alpha).
-
GL_CURRENT_RASTER_TEXTURE_COORDS
-
4
-
Current raster position texture -coordinates (s, t, r, q).
-
GL_CURRENT_RASTER_POSITION
-
4
-
Current raster position (x, y, -z, w).
-
GL_CURRENT_POSITION_VALID
-
1
-
Zero if current raster position -is invalid.
-One if current raster position is valid.
-
GL_CURRENT_TEXTURE_COORDS
-
4
-
Current texture coordinates (s, -t, r, q)
-
GL_DOUBLEBUFFER
-
1
-
Zero if color buffer is -single-buffered.
-One if color buffer is double-buffered.
-
GL_DRAW_BUFFER
-
1
-
Current color draw buffer: -GL_FRONT or GL_BACK.
-
GL_FRONT_FACE1
-
Polygon front-face winding: -GL_CW or GL_CCW.
-
GL_GREEN_BITS
-
1
-
Number of bits per green value -in the frame buffer.
-
GL_LINE_SMOOTH
-
1
-
Zero if line smoothing is -disabled.
-One if line smoothing is enabled.
-
GL_LINE_STIPPLE
-
1
-
Zero if line stippling is -disabled.
-One if line stippling is enabled.
-
GL_LINE_STIPPLE_PATTERN
-
1
-
Line stipple pattern.
-
GL_LINE_STIPPLE_REPEAT
-
1
-
Line stipple repeat factor.
-
GL_LINE_WIDTH
-
1
-
Line width in pixels.
-
GL_LINE_WIDTH_GRANULARITY
-
1
-
Aliased line width granularity.
-
GL_LINE_WIDTH_RANGE
-
2
-
Minimum and maximum aliased line -widths.
-
GL_ALIASED_LINE_WIDTH_RANGE
-
2
-
Minimum and maximum antialiased -line widths.
GL_COLOR_LOGIC_OP
-
1
-
Zero if logicop is disabled.
-One if logicop is enabled.
-
GL_LOGIC_OP_MODE
-
1
-
Logicop function.
-
GL_MATRIX_MODE
-
1
-
Matrix mode: GL_MODELVIEW or -GL_PROJECTION.
-
GL_MAX_MODELVIEW_STACK_DEPTH
-
1
-
Maximum size of the modelview -matrix stack.
-
GL_MAX_NAME_STACK_DEPTH
-
1
-
Maximum size of the selection -name stack.
-
GL_MAX_PROJECTION_STACK_DEPTH
-
1
-
Maximum size of the projection -matrix stack.
-
GL_MAX_TEXTURE_SIZE
-
1
-
Maximum 2D texture image width -and height.
-
GL_MAX_VIEWPORT_DIMS
-
2Maximum viewport width and -height in pixels.
-
GL_MODELVIEW_MATRIX
-
16
-
Current/top modelview matrix -values.
-
GL_MODELVIEW_MATRIX_STACK_DEPTH
-
1
-
Current size of the modelview -matrix stack.
-
GL_NAME_STACK_DEPTH
-
1
-
Current size of the selection -name stack.
-
GL_PACK_ROW_LENGTH
-
1
-
Pixel packing row length.
-
GL_POLYGON_SMOOTH
-
1
-
Zero if polygon smoothing is -disabled.
-One if polygon smoothing is enabled.
-
GL_PROJECTION_MATRIX
-
16
-
Current/top projection matrix -values.
-
GL_PROJECTION_STACK_DEPTH
-
1
-
Current size of projection -matrix stack.
-
GL_READ_BUFFER
-
1
-
Current read buffer: GL_FRONT or -GL_BACK.
-
GL_RED_BITS
-
1
-
Number of bits per red value in -the frame buffer.
-
GL_RENDER_MODE
-
1
-
Current rendering mode: -GL_RENDER or GL_SELECTION.
-
GL_RGBA_MODE
-
1
-
Always one.
-
GL_SCISSOR_BOX
-
4
-
Scissor box (x, y, width, -height).
-
GL_SCISSOR_TEST
-
1
-
Zero if scissor test is disabled.
-One if scissor test is enabled.
-
GL_SELECTION_BUFFER_SIZE
-
1
-
Size of selection buffer.
-
GL_SHADE_MODEL
-
1
-
Shade model: GL_FLAT or -GL_SMOOTH.
-
GL_STENCIL_BITS
-
1
-
Number of bits per stencil value -in the frame buffer.
-
GL_STENCIL_CLEAR_VALUE
-
1
-
Stencil buffer clear value.
-
GL_STENCIL_FAIL
-
1
-
Stencil fail operation.
-
GL_STENCIL_FUNC
-
1
-
Stencil function.
-
GL_STENCIL_REF
-
1
-
Stencil reference value.
-
GL_STENCIL_TEST
-
1
-
Zero if stencil test is disabled.
-One if stencil test is enabled.
-
GL_STENCIL_VALUE_MASK
-
1
-
Stencil mask value.
-
GL_STENCIL_WRITE_MASK
-
1
-
Stencil buffer write mask.
-
GL_TEXTURE_2D
-
1
-
Zero if 2D texture mapping is -disabled.
-One if 2D texture mapping is enabled.
-
GL_TEXTURE_BINDING_2D1
-
Name of currently bound 2D -texture object.
-
GL_TEXTURE_ENV_COLOR
-
4
-
Texture environment color (red, -green, blue, alpha).
-
GL_TEXTURE_ENV_MODE
-
1
-
Texture environment mode.
-
GL_UNPACK_ROW_LENGTH
-
1
-
Pixel unpacking row length.
-
GL_UNPACK_LSB_FIRST
-
1
-
Zero if most significant bit is -unpacked first for bitmaps.
-One if least significant bit is unpacked first for bitmaps.
-
GL_VIEWPORT
-
4
-
Current viewport (x, y, width, -height).
-
-
-
-

9.2 String Queries

-The command
-
-
const GLubyte *glGetString(GLenum name)
-
-
-is used to query string-valued values.  The legal values for name are described in the following -table:
-
- - - - - - - - - - - - - - - - - - - - - - - -
name
-
Return value
-
GL_VERSION
-
The library version, such as -"1.2".
-
GL_RENDERER
-
The renderer, such as "Mesa DRI -Radeon".
-
GL_VENDOR
-
The vendor of this -implementation, such as "Tungsten Graphics, Inc."
-
GL_EXTENSIONS
-
A white-space separated list of -the supported extensions.
-
-

9.3 Error Queries

-The command
-
-
GLenum glGetError(void)
-
-
-returns the current error code.  The current error code will be -set by a GL command when an error condition has been detected.  If -the current error code is already set, subsequent errors will not be -recorded.  The error code is reset/cleared to GL_NO_ERROR when glGetError returns.  The -following error codes are possible:
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Error code
-
Meaning
-
GL_NO_ERROR
-
No error has been recorded.
-
GL_INVALID_ENUM
-
An enum parameter had an invalid -value.
-
GL_INVALID_VALUE
-
A numeric parameter had an -invalid value.
-
GL_INVALID_OPERATION
-
A function was called when not -legal to do so.
-
GL_STACK_OVERFLOW
-
The current transformation -matrix stack is full.
-
GL_STACK_UNDERFLOW
-
The current transformation -matrix stack is empty.
-
GL_OUT_OF_MEMORY
-
The system ran out of dynamic -memory.
-
-
-
-

10. Unsupported Features

-This section lists other features and functions which are not supported -and not previously discussed.
-
-

10.1 Feedback Mode

-Feedback mode and the following related functions are not supported.
-
-
glFeedbackBuffer
-glPassThrough
-
-
-

10.2 1D and 3D Textures
-

-Only 2D texture images are supported.  The following functions -used to specify 1D and 3D texture images are not supported:
-
-
glTexImage1D
-glTexImage3D
-glTexSubImage1D
- glTexSubImage3D
-glCopyTexImage1D
- glCopyTexSubImage1D
- glCopyTexSubImage3D
-
-
-

10.3 Alternate Texture Image Commands
-

-Texture images may only be specified with glTexImage2D.  The following -alternate texture image commands are not supported:
-
-
glTexSubImage2D
-glCopyTexImage2D
-glCopyTexSubImage2D
-
-
-

10.4 Proxy Textures

-Proxy textures are not supported and the GL_PROXY_TEXTURE_2D token is -not supported by any function.
-
-
-

10.5 Other Texture Commands

-The following commands related to texture mapping are not supported by -the subset:
-
-
glPrioritizeTextures
-glAreTexturesResident
-glIsTexture
-glTexEnviv
-glTexEnvf
-glTexParameterf
-glTexParameteriv
-glTexParameterfv
-
-
-
-

10.6 Copy and Draw Pixels
-

-The following commands are not supported:
-
-
glDrawPixels
-glCopyPixels
-glPixelZoom
-
-
-

10.7 Color Index Mode
-

-Color index mode and the following related commands are not supported:
-
- -
glIndexub
-
glIndexi
-glIndexs
-glIndexf
-glIndexd
-
glIndexubv
-
glIndexiv
-glIndexsv
-glIndexfv
-glIndexdv

-glIndexMask
-
glClearIndex
-glIndexPointer

-
-
-

10.8 Pixel Transfer Operations

-The pixel transfer operations (scale, bias, look-up table, etc) are not -supported and the following commands are omitted:
-
-
glPixelTransferf
-glPixelTransferi
-glPixelMapfv
-glPixelMapuiv
-glPixelMapusv
-glGetPixelMapfv
-glGetPixelMapuiv
-glGetPixelMapusv
-
-
-

10.9 Hints

-Hints and the following related command is not supported:
-
-
glHint
-

-
-

10.10 State Query Commands
-

-The following state query commands are not supported:
-
-
glGetBooleanv
-glGetIntegerv
-glGetDoublev
-glGetPointerv
-glGetTexEnvi
-glGetTexEnvf
-glGetTexParameteriv
-glGetTexParameterfv
-glGetTexLevelParameteriv
-glGetTexLevelParameterfv
-glGetTexImage
-glGetClipPlane
-
-
-

10.11 Attribute Stacks

-State attribute stacks and the following related commands are not -supported:
-
-
glPushAttrib
-glPopAtttrib
-
-
-

10.12 Double-Valued Functions

-All functions which take double-precision floating point values, but -for which there is an equivalent single-precision valued function, are -omitted.  This includes, but is not limited to:
-
-
glVertex2d
-glVertex2dv
-glVertex3d
- glVertex3dv
-glVertex4d
- glVertex4dv
-glColor3d
-glColor3dv
-glColor4d
- glColor4dv
-glTexCoord1d
-glTexCoord1dv
-glTexCoord2d
- glTexCoord2dv
-glTexCoord3d
- glTexCoord3dv
-glTexCoord4d
- glTexCoord4dv
-glRasterPos2d
- glRasterPos2dv
-glRasterPos3d
- glRasterPos3dv
-glRasterPos4d
- glRasterPos4dv
-glLoadMatrixd
-glMultMatrixd
-glScaled
-glRotated
-glTranslated
-glRectd
-glRectdv
-

-
-

10.13 Evaluators

-Evaluators and the following related commands are not supported:
-
-
glMap1f
-glMap2d
-glMap2f
-glGetMapdv
-glGetMapfv
-glGetMapiv
-glEvalCoord1d
-glEvalCoord1f
-glEvalCoord1dv
-glEvalCoord1fv
-glEvalCoord2d
-glEvalCoord2f
-glEvalCoord2dv
-glEvalCoord2fv
-glMapGrid1d
-glMapGrid1f
-glMapGrid2d
-glMapGrid2f
-glEvalPoint1
-glEvalPoint2
-glEvalMesh1
-glEvalMesh2
-
-
-

10.14 Display Lists

-Display lists and the following related commands are not supported:
-
-
glIsList
-glDeleteLists
-glGenLists
-glNewList
-glEndList
-glCallList
-glCallLists
-glListBase
-
-
-

10.15 Accumulation Buffer

-The accumulation buffer and the following related commands are not -supported:
-
-
glAccum
-glClearAccum
-
-
-

10.16 Fog

-Fog and the following related commands are not supported:
-
-
glFogi
-glFogf
-glFogiv
-glFogfv
-
-
-

10.17 Depth Test

-Depth testing and the following related commands are not supported:
-
-
glDepthFunc
-glDepthMask
-glDepthRange
-glClearDepth
-
-
-

10.18 Imaging Subset

-The OpenGL imaging subset (which implements features such as -convolution, histogram, min/max recording, color matrix and color -tables) is not supported.
-
-
-

Appendix A: Issues

-This appendix lists documentation and subset issues with their current -status.  For items which are still open, the documentation (above) -follows the recommended solution.
-
-

A.1 Vertex Arrays

-Should vertex arrays be supported?  Is there a performance -advantage?
-
-RESOLUTION: No, there isn't enough of a performance advantage to -justify them.
-
-

A.2 Polygon Antialiasing and Edge Flags

-Should edge flags be supported for antialiasing?
-
-Edge flags don't effect antialiasing, at least not normally.  A -number of approaches to antialiasing have been summarized in email.
-
-RECOMMENDATION: don't support edge flags.  They don't effect -polygon antialiasing.
-
-RESOLUTION: closed, as of 26 Feb 2003.
-
-

A.3 glRasterPos vs. glWindowPos

-Should glRasterPos and/or glWindowPos commands be supported?
-
-RESOLUTION: Closed: implement glRasterPos commands, but not glWindowPos -commands.
-
-

A.4 GL_IBM_rasterpos_clip extension

-Should the GL_IBM_rasterpos_clip extension be implemented?
-
-RESOLUTION:  No.  It's not required.
-
-

A.5 Image Formats and Types

-Which image formats and types should be supported for glTexImage2D and glReadPixels?
-
-OpenGL specifies a large -variety of image formats and data types.  Only a few are commonly -used.
-
-RECOMMENDATION:  we propose a subset:
-
-For glTexImage2D only allow type=GL_UNSIGNED_BYTE and format=GL_RGBA, GL_RGB, -GL_INTENSITY.   Only allow internalFormat -to be GL_RGBA, GL_RGB or GL_INTENSITY as well.  Basically, only -support image formats/types that are directly supported by the Radeon -hardware.  This will allow glTexImage2D -to basically just use memcpy to -copy texture images.
-
-For glReadPixels, only allow type = GL_UNSIGNED_BYTE or GL_FLOAT. - Only allow format = -GL_RGB or GL_RGBA.  This is just enough to support the OpenGL -conformance tests.
-
-RESOLUTION: open
-
-

A.6 Texture Environment Modes

-Which texture environment modes should be supported?  OpenGL 1.2 -has GL_REPLACE, GL_MODULATE, GL_DECAL and GL_BLEND.  GL_DECAL isn't -defined for all base internal texture formats.  GL_ADD is another -useful mode.  Perhaps drop GL_DECAL mode and add GL_ADD mode.
-
-RECOMMENDATION: implement the standard modes GL_REPLACE, GL_MODULATE, -GL_DECAL and GL_BLEND.
-
-RESOLUTION: open
-
-

A.7 Truncated Mipmaps and LOD Control

-Should we support the GL_TEXTURE_BASE_LEVEL, GL_TEXTURE_MAX_LEVEL, -GL_TEXTURE_MIN_LOD and GL_TEXTURE_MAX_LOD texture parameters?
-
-RECOMMENDATION:  We propose omitting these features at this time, -in the interest of simplifying the driver.
-
-RESOLUTION: open
-
-

A.8 Texture Priorities and Residency

-Should the subset support texture priorities via glPrioritizeTextures and the glAreTexturesResident command?
-
-RECOMMENDATION:  Few applications use these features and -functions.  We propose omitting them to simplify the driver.
-
-RESOLUTION: open
-
-

A.9 Pixel Pack/Unpack Alignment Control

-Should we support the GL_PACK_ALIGNMENT and GL_UNPACK_ALIGNMENT options?
-
-These are used to align pixel data addresses to 1, 2 and 4-byte -multiples for glBitmap, glTexImage2D -and glReadPixels.  These -aren't strictly needed since the user can provide a 1, 2 or 4-byte -aligned address and appropriate GL_PACK_ROW_LENGTH or -GL_UNPACK_ROW_LENGTH values instead.
-
-RECOMMENDATION:  We recommend omitting them to simplify the driver.
-
-RESOLUTION: open
-
-

A.10 Pixel Pack/Unpack Skip Rows/Pixels Control

-Should we support the GL_UNPACK_SKIP_PIXELS, GL_UNPACK_SKIP_ROWS, -GL_PACK_SKIP_PIXELS and GL_PACK_SKIP_ROWS options for pixel -unpacking/packing?
-
-These options aren't really needed since the user can adjust the start -address and GL_PACK/UNPACK_ROW_LENGTH parameters to achieve the same -effect.
-
-RECOMMENDATION:  omit these parameters.
-
-RESOLUTION: open
-
-

A.11 Texture State Queries

-Should we support the command glGetTexEnvi/fv, -glGetTexParameteri/fv and glGetTexLevelParameteri/fv?
-
-RECOMMENDATION:  No. They're seldom needed and their -implementation is several hundred lines of code in length.
-
-RESOLUTION:  open
-
-

A.12 glGetIntegerv, glGetBooleanv and glGetDoublev

-Should we support the commands glGetIntegerv, -glGetBooleanv and glGetDoublev -in addition to glGetFloatv?
-
-RECOMMENDATION:  Omit the boolean, integer and double-valued -functions. All state values which can be queried by these commands can -be expressed as floating point values and queried with glGetFloatv.  The -implementation of the other three commands involves many lines of code.
-
-RESOLUTION:  open
-
-

A.13 glBitmap and Per-Fragment Operations

-Should bitmaps rendered with glBitmap -be subjected to the per-fragment operations?
-
-If bitmaps are implemented with points it will be easy to implement the -per-fragment operations.  Otherwise, it could be difficult.
-
-RECOMMENDATION:  Implement glBitmap by drawing points/pixels with -the hardware.  This will make supporting the per-fragments -trivially easy.  Also, it makes portrait-mode display relatively -easy.
-
-RESOLUTION:  open
-
-

A.14 Reduced gl.h Header File

-Should we produce a reduced gl.h header file which only defines the -tokens and functions which are implemented by the subset?
-
-RECOMMENDATION: yes.  It would be a useful reference to -programmers to quickly determine which functions and tokens are -supported.
-
-RESOLUTION: open
-
-

A.15 glPolygonMode

-Is glPolygonMode needed?
-
-RECOMMENDATION: No.  Omit it.
-
-RESOLUTION: closed, as of 26 Feb 2003
-
-
-

- - diff --git a/nx-X11/extras/Mesa/docs/subset.html b/nx-X11/extras/Mesa/docs/subset.html deleted file mode 100644 index dd1d742a8..000000000 --- a/nx-X11/extras/Mesa/docs/subset.html +++ /dev/null @@ -1,33 +0,0 @@ - - -Mesa Subset - - - - - -

Mesa Subset

- -

-In 2002/2003 Tungsten Graphics was contracted to develop a subset Mesa/Radeon -driver for an embedded environment. The result is a reduced-size DRI driver -for the ATI R200 chip, for use with Linux fbdev rather than XFree86. -

- -

-The specification for this subset can be found -here. -

- -

-The MiniGLX specification describes the -interface between fbdev and Mesa. -

- -

-More info to come... -

- - - - diff --git a/nx-X11/extras/Mesa/docs/systems.html b/nx-X11/extras/Mesa/docs/systems.html deleted file mode 100644 index 3a6594f5f..000000000 --- a/nx-X11/extras/Mesa/docs/systems.html +++ /dev/null @@ -1,56 +0,0 @@ - - -Supported Systems and Drivers - - - - - -

Supported Systems and Drivers

- -

-Mesa was originally designed for Unix/X11 systems and is still best -supported on those systems. All you need is an ANSI C compiler and the -X development environment to use Mesa. -

- -

-The DRI hardware drivers for the X.org server and XFree86 provide -hardware accelerated rendering for chips from ATI, Intel, Matrox, 3dfx -and others on Linux and FreeBSD. -

- -

-Drivers for other assorted platforms include: -the Amiga, Apple Macintosh, BeOS, NeXT, OS/2, MS-DOS, VMS, Windows -9x/NT, and Direct3D. -

- -

-Details about particular drivers follows. -Be warned that some drivers may be out of date and no longer function. -

- - - - - \ No newline at end of file diff --git a/nx-X11/extras/Mesa/docs/thanks.html b/nx-X11/extras/Mesa/docs/thanks.html deleted file mode 100644 index 78b9e3e5e..000000000 --- a/nx-X11/extras/Mesa/docs/thanks.html +++ /dev/null @@ -1,134 +0,0 @@ - - - -Acknowledgements - - - - - - -

Acknowledgments

- - -The following individuals and groups are to be acknowledged for their -contributions to Mesa over the years. -This list is far from complete and somewhat dated, unfortunately. - - -
    -
  • Early Mesa development was done while Brian was part of the -SSEC Visualization Project at the University of -Wisconsin. He'd like to thank Bill Hibbard for letting him work on -Mesa as part of that project. -
    -
    -
  • John Carmack of id Software, Inc. funded Keith Whitwell in 1999 in -order to optimize Mesa's vertex transformation module. This is a very -substantial piece of work. -
    -
    -
  • Precision Insight, Inc., VA Linux Systems, Inc., and most recently, -Tungsten Graphics, Inc. have supported the ongoing development of Mesa. -
    -
    -
  • The -Mesa -website is hosted by - -Sourceforge.net -
    -
    - -
  • The Mesa CVS repository is hosted by -freedesktop.org. -
    -
    - - -
  • alt.software contributed the Direct3D driver. - -
  • Bernd Barsuhn wrote the evaluator code for (splines, -patches) in Mesa. - -
  • Bernhard Tschirren wrote the Allegro DJGPP driver. - -
  • Bogdan Sikorski wrote the GLU NURBS and polygon tessellator -in Mesa. - -
  • Charlie Wallace wrote the MS-DOS driver. - -
  • CJ Beyer was the www.mesa3d.org webmaster. - -
  • Darren Abbott provided the OS/2 driver. - -
  • David Bucciarelli wrote and maintained the 3Dfx Glide -driver. Thousands of Linux/Quake players thank David! - -
  • Gareth Hughes wrote new GLU 1.2 Polygon Tessellation code -(now superceded by SGI SI GLU). - -
  • Holger Waechtler contributed AMD 3DNow! assembly code which -accelerates vertex transformation in Mesa 3.1. Holger also implemented -the GL_EXT_texture_env_combine extension. - -
  • Jeroen van der Zijp and Thorsten Ohl contributed the -Xt/Motif widget code. - -
  • John Stone provided the multi-threading support in Mesa 3.0. - -
  • John Watson assisted with web page design. - -
  • Josh Vanderhoof contributed Intel x86 assembly code which -accelerates vertex transformation in Mesa 3.x. - -
  • Jouk Jansen contributed and continues to maintain the VMS -support. - -
  • Karl Schultz has been maintaining the Windows driver. - -
  • Keith Whitwell has made extension contributions to Mesa -since 1999. - -
  • Kendall Bennett wrote the SciTech MGL driver. - -
  • Klaus Niederkrueger contributed many improvements to Mesa's -software rasterizer. - -
  • Mark Kilgard contributed antialiased line improvements and -several extensions. - -
  • Michael Pichler contributed many bug fixes - -
  • Miklos Fazekas wrote and maintains the Macintosh driver. - -
  • Pascal Thibaudeau wrote the NeXT driver. - -
  • Pedro Vazquez setup and maintains the Mesa Mailing list. - -
  • Randy Frank contributed many bug fixes. - -
  • Stefan Zivkovic wrote the Amiga driver. - -
  • Stephane Rehel provided the Cygnus Win32 support - -
  • Ted Jump maintained the -makefiles and project files for Windows 95/98/NT compilation for some time. - -
  • Uwe Maurer wrote the LibGGI driver for Mesa-3.0. - -
  • Victor Ng-Thow-Hing wrote the Amiwin driver for the Amiga. - -
- -

-Apologies to anyone who's been omitted. -Please send corrections and additions to Brian. -

- - - - diff --git a/nx-X11/extras/Mesa/docs/utilities.html b/nx-X11/extras/Mesa/docs/utilities.html deleted file mode 100644 index 4693639b8..000000000 --- a/nx-X11/extras/Mesa/docs/utilities.html +++ /dev/null @@ -1,26 +0,0 @@ - - -Development Utilities - - - - - -

Development Utilities

- -
    - -
  • The Mesa distribution includes several utility routines in the -progs/util/ directory - -
  • Allen Akin's glean is a framework for OpenGL testing. - -
  • Valgrind is a very useful tool for tracking down -memory-related problems in your code. - -
- - - \ No newline at end of file diff --git a/nx-X11/extras/Mesa/docs/utility.html b/nx-X11/extras/Mesa/docs/utility.html deleted file mode 100644 index c7cad0114..000000000 --- a/nx-X11/extras/Mesa/docs/utility.html +++ /dev/null @@ -1,44 +0,0 @@ - - -Utilities - - - - - -

Utilities

- - - - - - diff --git a/nx-X11/extras/Mesa/docs/webmaster.html b/nx-X11/extras/Mesa/docs/webmaster.html deleted file mode 100644 index e645b90ba..000000000 --- a/nx-X11/extras/Mesa/docs/webmaster.html +++ /dev/null @@ -1,24 +0,0 @@ - - -Mesa Introduction - - - - - -

Webmaster

- -

-If you have problems, edits or additions for this website send them -to Brian -(brian_e_paul@yahoo.com). -

- -

-Mark Manning made the frame-based layout for the website. -Brian's modified it a lot since then. -

- - - - \ No newline at end of file diff --git a/nx-X11/extras/Mesa/include/GL/Makefile.am b/nx-X11/extras/Mesa/include/GL/Makefile.am deleted file mode 100644 index 199bd5c8f..000000000 --- a/nx-X11/extras/Mesa/include/GL/Makefile.am +++ /dev/null @@ -1,43 +0,0 @@ -## Process this file with automake to produce Makefile.in - -GLincludedir = $(includedir)/GL - -INC_FX = fxmesa.h -INC_GGI = ggimesa.h -INC_OSMESA = osmesa.h -INC_SVGA = svgamesa.h -INC_X11 = glx.h glxext.h glx_mangle.h xmesa.h xmesa_x.h xmesa_xf86.h -INC_GLUT = glut.h glutf90.h - -if HAVE_FX -sel_inc_fx = $(INC_FX) -endif - -if HAVE_GGI -sel_inc_ggi = $(INC_GGI) -endif - -if HAVE_OSMESA -sel_inc_osmesa = $(INC_OSMESA) -endif - -if HAVE_SVGA -sel_inc_svga = $(INC_SVGA) -endif - -if HAVE_X11 -sel_inc_x11 = $(INC_X11) -endif - -if NEED_GLUT -sel_inc_glut = $(INC_GLUT) -endif - -EXTRA_HEADERS = amesa.h dosmesa.h foomesa.h glut_h.dja mesa_wgl.h mglmesa.h \ - vms_x_fix.h wmesa.h \ - $(INC_FX) $(INC_GGI) $(INC_OSMESA) $(INC_SVGA) $(INC_X11) $(INC_GLUT) - -GLinclude_HEADERS = gl.h glext.h gl_mangle.h glu.h glu_mangle.h \ - $(sel_inc_fx) $(sel_inc_ggi) $(sel_inc_osmesa) $(sel_inc_svga) \ - $(sel_inc_x11) $(sel_inc_glut) -include $(top_srcdir)/common_rules.make diff --git a/nx-X11/extras/Mesa/include/GL/amesa.h b/nx-X11/extras/Mesa/include/GL/amesa.h deleted file mode 100644 index 852d34cf4..000000000 --- a/nx-X11/extras/Mesa/include/GL/amesa.h +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Mesa 3-D graphics library - * Version: 3.3 - * - * Copyright (C) 1999-2000 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. - */ - - -/* Allegro (DJGPP) driver by Bernhard Tschirren (bernie-t@geocities.com) */ - - -#ifndef AMESA_H -#define AMESA_H - - -#define AMESA_MAJOR_VERSION 3 -#define AMESA_MINOR_VERSION 3 - - -typedef struct amesa_visual *AMesaVisual; -typedef struct amesa_buffer *AMesaBuffer; -typedef struct amesa_context *AMesaContext; - - -extern AMesaVisual AMesaCreateVisual(GLboolean dbFlag, GLint depth, - GLint depthSize, - GLint stencilSize, - GLint accumSize); - -extern void AMesaDestroyVisual(AMesaVisual visual); - -extern AMesaBuffer AMesaCreateBuffer(AMesaVisual visual, - GLint width, GLint height); - -extern void AMesaDestroyBuffer(AMesaBuffer buffer); - - -extern AMesaContext AMesaCreateContext(AMesaVisual visual, - AMesaContext sharelist); - -extern void AMesaDestroyContext(AMesaContext context); - -extern GLboolean AMesaMakeCurrent(AMesaContext context, AMesaBuffer buffer); - -extern void AMesaSwapBuffers(AMesaBuffer buffer); - - -#endif /* AMESA_H */ diff --git a/nx-X11/extras/Mesa/include/GL/directfbgl.h b/nx-X11/extras/Mesa/include/GL/directfbgl.h deleted file mode 100644 index 984c4b142..000000000 --- a/nx-X11/extras/Mesa/include/GL/directfbgl.h +++ /dev/null @@ -1,89 +0,0 @@ -/* - (c) Copyright 2001 convergence integrated media GmbH. - All rights reserved. - - Written by Denis Oliver Kropp and - Andreas Hundt . - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the - Free Software Foundation, Inc., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. -*/ - -#ifndef __DIRECTFBGL_H__ -#define __DIRECTFBGL_H__ - -#include - -#ifdef __cplusplus -extern "C" -{ -#endif - - -typedef struct { - int buffer_size; - int depth_size; - int stencil_size; - int aux_buffers; - - int red_size; - int green_size; - int blue_size; - int alpha_size; - - int accum_red_size; - int accum_green_size; - int accum_blue_size; - int accum_alpha_size; - - DFBBoolean double_buffer; - DFBBoolean stereo; -} DFBGLAttributes; - - -DEFINE_INTERFACE( IDirectFBGL, - - /** Context handling **/ - - /* - * Acquire the hardware lock. - */ - DFBResult (*Lock) ( - IDirectFBGL *thiz - ); - - /* - * Release the lock. - */ - DFBResult (*Unlock) ( - IDirectFBGL *thiz - ); - - /* - * Query the OpenGL attributes. - */ - DFBResult (*GetAttributes) ( - IDirectFBGL *thiz, - DFBGLAttributes *attributes - ); -) - - -#ifdef __cplusplus -} -#endif - -#endif - diff --git a/nx-X11/extras/Mesa/include/GL/dmesa.h b/nx-X11/extras/Mesa/include/GL/dmesa.h deleted file mode 100644 index e67b3426f..000000000 --- a/nx-X11/extras/Mesa/include/GL/dmesa.h +++ /dev/null @@ -1,160 +0,0 @@ -/* - * Mesa 3-D graphics library - * Version: 6.1 - * - * Copyright (C) 1999-2004 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. - */ - -/* - * DOS/DJGPP device driver v1.7 for Mesa - * - * Copyright (C) 2002 - Daniel Borca - * Email : dborca@users.sourceforge.net - * Web : http://www.geocities.com/dborca - */ - - -#ifndef DMESA_H_included -#define DMESA_H_included - -#define DMESA_MAJOR_VERSION 6 -#define DMESA_MINOR_VERSION 3 - -/* Sample Usage: - * - * 1. Call DMesaCreateVisual() to initialize graphics. - * 2. Call DMesaCreateContext() to create a DMesa rendering context. - * 3. Call DMesaCreateBuffer() to define the window. - * 4. Call DMesaMakeCurrent() to bind the DMesaBuffer to a DMesaContext. - * 5. Make gl* calls to render your graphics. - * 6. Use DMesaSwapBuffers() when double buffering to swap front/back buffers. - * 7. Before exiting, destroy DMesaBuffer, DMesaContext and DMesaVisual. - */ - -typedef struct dmesa_context *DMesaContext; -typedef struct dmesa_visual *DMesaVisual; -typedef struct dmesa_buffer *DMesaBuffer; - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Create a new Visual and set graphics mode. - */ -DMesaVisual DMesaCreateVisual (GLint width, /* X res */ - GLint height, /* Y res */ - GLint colDepth, /* BPP */ - GLint refresh, /* refresh rate: 0=default */ - GLboolean dbFlag, /* double-buffered */ - GLboolean rgbFlag, /* RGB mode */ - GLint alphaSize, /* requested bits/alpha */ - GLint depthSize, /* requested bits/depth */ - GLint stencilSize, /* requested bits/stencil */ - GLint accumSize); /* requested bits/accum */ - -/* - * Destroy Visual and restore screen. - */ -void DMesaDestroyVisual (DMesaVisual v); - - - -/* - * Create a new Context for rendering. - */ -DMesaContext DMesaCreateContext (DMesaVisual visual, DMesaContext share); - -/* - * Destroy Context. - */ -void DMesaDestroyContext (DMesaContext c); - -/* - * Return a handle to the current context. - */ -DMesaContext DMesaGetCurrentContext (void); - - - -/* - * Create a new Buffer (window). - */ -DMesaBuffer DMesaCreateBuffer (DMesaVisual visual, - GLint xpos, GLint ypos, - GLint width, GLint height); - -/* - * Destroy Buffer. - */ -void DMesaDestroyBuffer (DMesaBuffer b); - -/* - * Return a handle to the current buffer. - */ -DMesaBuffer DMesaGetCurrentBuffer (void); - -/* - * Swap the front and back buffers for the given Buffer. - * No action is taken if the buffer is not double buffered. - */ -void DMesaSwapBuffers (DMesaBuffer b); - -/* - * Bind Buffer to Context and make the Context the current one. - */ -GLboolean DMesaMakeCurrent (DMesaContext c, DMesaBuffer b); - - - -/* - * Move/Resize current Buffer. - */ -GLboolean DMesaMoveBuffer (GLint xpos, GLint ypos); -GLboolean DMesaResizeBuffer (GLint width, GLint height); - -/* - * Set palette index, using normalized values. - */ -void DMesaSetCI (int ndx, GLfloat red, GLfloat green, GLfloat blue); - -/* - * DMesa functions - */ -typedef void (*DMesaProc) (void); -DMesaProc DMesaGetProcAddress (const char *name); - -/* - * DMesa state retrieval. - */ -#define DMESA_GET_SCREEN_SIZE 0x0100 -#define DMESA_GET_DRIVER_CAPS 0x0200 -#define DMESA_GET_VIDEO_MODES 0x0300 -#define DMESA_GET_BUFFER_ADDR 0x0400 - -#define DMESA_DRIVER_SWDB_BIT 0x1 /* software double-buffered */ -#define DMESA_DRIVER_LLWO_BIT 0x2 /* lower-left window origin */ -int DMesaGetIntegerv (GLenum pname, GLint *params); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/nx-X11/extras/Mesa/include/GL/foomesa.h b/nx-X11/extras/Mesa/include/GL/foomesa.h deleted file mode 100644 index 8517d8838..000000000 --- a/nx-X11/extras/Mesa/include/GL/foomesa.h +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Mesa 3-D graphics library - * Version: 3.0 - * Copyright (C) 1995-1998 Brian Paul - * - * This 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. - * - * This 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 this library; if not, write to the Free - * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - */ - - -/* - * Example Foo/Mesa interface. See src/ddsample.c for more info. - */ - - - -#ifndef FOOMESA_H -#define FOOMESA_H - - - -typedef struct foo_mesa_visual *FooMesaVisual; - -typedef struct foo_mesa_buffer *FooMesaBuffer; - -typedef struct foo_mesa_context *FooMesaContext; - - - -#ifdef BEOS -#pragma export on -#endif - - -extern FooMesaVisual FooMesaChooseVisual( /* your params */ ); - -extern void FooMesaDestroyVisual( FooMesaVisual visual ); - - -extern FooMesaBuffer FooMesaCreateBuffer( FooMesaVisual visual, - void *your_window_id ); - -extern void FooMesaDestroyBuffer( FooMesaBuffer buffer ); - - -extern FooMesaContext FooMesaCreateContext( FooMesaVisual visual, - FooMesaContext sharelist ); - -extern void FooMesaDestroyContext( FooMesaContext context ); - - -extern void FooMesaMakeCurrent( FooMesaContext context, FooMesaBuffer buffer ); - - -extern void FooMesaSwapBuffers( FooMesaBuffer buffer ); - - -/* Probably some more functions... */ - - -#ifdef BEOS -#pragma export off -#endif - -#endif diff --git a/nx-X11/extras/Mesa/include/GL/fxmesa.h b/nx-X11/extras/Mesa/include/GL/fxmesa.h deleted file mode 100644 index f8e9661f9..000000000 --- a/nx-X11/extras/Mesa/include/GL/fxmesa.h +++ /dev/null @@ -1,103 +0,0 @@ -/* - * Mesa 3-D graphics library - * Version: 4.0 - * Copyright (C) 1995-2001 Brian Paul - * - * This 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. - * - * This 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 this library; if not, write to the Free - * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - */ - - -/* - * FXMesa - 3Dfx Glide driver for Mesa. Contributed by David Bucciarelli - * - * NOTE: This version requires Glide3 (http://sourceforge.net/projects/glide) - */ - - -#ifndef FXMESA_H -#define FXMESA_H - - -#include - - -#ifdef __cplusplus -extern "C" { -#endif - - -#define FXMESA_MAJOR_VERSION 6 -#define FXMESA_MINOR_VERSION 3 - - -/* - * Values for attribList parameter to fxMesaCreateContext(): - */ -#define FXMESA_NONE 0 /* to terminate attribList */ -#define FXMESA_DOUBLEBUFFER 10 -#define FXMESA_ALPHA_SIZE 11 /* followed by an integer */ -#define FXMESA_DEPTH_SIZE 12 /* followed by an integer */ -#define FXMESA_STENCIL_SIZE 13 /* followed by an integer */ -#define FXMESA_ACCUM_SIZE 14 /* followed by an integer */ -#define FXMESA_COLORDEPTH 20 /* followed by an integer */ -#define FXMESA_SHARE_CONTEXT 990099 /* keep in sync with xmesa1.c! */ - - - -typedef struct tfxMesaContext *fxMesaContext; - - -#if defined (__BEOS__) -#pragma export on -#endif - - -GLAPI fxMesaContext GLAPIENTRY fxMesaCreateContext(GLuint win, GrScreenResolution_t, - GrScreenRefresh_t, - const GLint attribList[]); - -GLAPI fxMesaContext GLAPIENTRY fxMesaCreateBestContext(GLuint win, - GLint width, GLint height, - const GLint attribList[]); -GLAPI void GLAPIENTRY fxMesaDestroyContext(fxMesaContext ctx); - -GLAPI GLint GLAPIENTRY fxMesaSelectCurrentBoard(int n); - -GLAPI void GLAPIENTRY fxMesaMakeCurrent(fxMesaContext ctx); - -GLAPI fxMesaContext GLAPIENTRY fxMesaGetCurrentContext(void); - -GLAPI void GLAPIENTRY fxMesaSwapBuffers(void); - -GLAPI void GLAPIENTRY fxMesaSetNearFar(GLfloat nearVal, GLfloat farVal); - -GLAPI void GLAPIENTRY fxMesaUpdateScreenSize(fxMesaContext ctx); - -GLAPI void GLAPIENTRY fxCloseHardware(void); - -GLAPI void GLAPIENTRY fxGetScreenGeometry (GLint *w, GLint *h); - - -#if defined (__BEOS__) -#pragma export off -#endif - - -#ifdef __cplusplus -} -#endif - - -#endif diff --git a/nx-X11/extras/Mesa/include/GL/ggimesa.h b/nx-X11/extras/Mesa/include/GL/ggimesa.h deleted file mode 100644 index 90e0b4222..000000000 --- a/nx-X11/extras/Mesa/include/GL/ggimesa.h +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Mesa 3-D graphics library GGI bindings (GGIGL [giggle]) - * Version: 4.0 - * Copyright (C) 1995-2000 Brian Paul - * Copyright (C) 1998 Uwe Maurer - * Copyrigth (C) 2001 Filip Spacek - * - * This 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. - * - * This 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 this library; if not, write to the Free - * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - */ - - -#ifndef GGIMESA_H -#define GGIMESA_H - -#define GGIMESA_MAJOR_VERSION 4 -#define GGIMESA_MINOR_VERSION 0 - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include "GL/gl.h" - -typedef struct ggi_mesa_context *ggi_mesa_context_t; - -/* - * Initialize Mesa GGI extension - */ -int ggiMesaInit(void); -/* - * Clean up Mesa GGI exension - */ -int ggiMesaExit(void); - -/* - * Attach Mesa GGI extension to the visual 'vis' - */ -int ggiMesaAttach(ggi_visual_t vis); -/* - * Detach Mesa GGI extension from the visual 'vis' - */ -int ggiMesaDetach(ggi_visual_t vis); - -int ggiMesaExtendVisual(ggi_visual_t vis, GLboolean alpha_flag, - GLboolean stereo_flag, GLint depth_size, - GLint stencil_size, GLint accum_red_size, - GLint accum_green_size, GLint accum_blue_size, - GLint accum_alpha_size, GLint num_samples); - -/* - * Create a new context capable of displaying on the visual vis. - */ -ggi_mesa_context_t ggiMesaCreateContext(ggi_visual_t vis); -/* - * Destroy the context 'ctx' - */ -void ggiMesaDestroyContext(ggi_mesa_context_t ctx); - -/* - * Make context 'ctx' the current context and bind it to visual 'vis'. - * Note that the context must have been created with respect to that visual. - */ -void ggiMesaMakeCurrent(ggi_mesa_context_t ctx, ggi_visual_t vis); - -void ggiMesaSwapBuffers(void); - - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/nx-X11/extras/Mesa/include/GL/gl_mangle.h b/nx-X11/extras/Mesa/include/GL/gl_mangle.h deleted file mode 100644 index c1b443c6b..000000000 --- a/nx-X11/extras/Mesa/include/GL/gl_mangle.h +++ /dev/null @@ -1,1472 +0,0 @@ -#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*/ - -/* Internal symbols which may collide with other OpenGL implementations. */ -#define __glCoreCreateContext __mglCoreCreateContext -#define __glCoreNopDispatch __mglCoreNopDispatch - -/*REGENERATE_TO_END-----------ALL LINES BELOW HERE GET REPLACED ON REGENERATION */ - -#define glAccum MANGLE(Accum) -#define glActiveStencilFaceEXT MANGLE(ActiveStencilFaceEXT) -#define glActiveTextureARB MANGLE(ActiveTextureARB) -#define glActiveTexture MANGLE(ActiveTexture) -#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 glBeginFragmentShaderATI MANGLE(BeginFragmentShaderATI) -#define glBegin MANGLE(Begin) -#define glBeginOcclusionQueryNV MANGLE(BeginOcclusionQueryNV) -#define glBeginQueryARB MANGLE(BeginQueryARB) -#define glBeginQuery MANGLE(BeginQuery) -#define glBeginVertexShaderEXT MANGLE(BeginVertexShaderEXT) -#define glBindAttribLocationARB MANGLE(BindAttribLocationARB) -#define glBindAttribLocation MANGLE(BindAttribLocation) -#define glBindBufferARB MANGLE(BindBufferARB) -#define glBindBuffer MANGLE(BindBuffer) -#define glBindFragmentShaderATI MANGLE(BindFragmentShaderATI) -#define glBindFramebufferEXT MANGLE(BindFramebufferEXT) -#define glBindLightParameterEXT MANGLE(BindLightParameterEXT) -#define glBindMaterialParameterEXT MANGLE(BindMaterialParameterEXT) -#define glBindParameterEXT MANGLE(BindParameterEXT) -#define glBindProgramARB MANGLE(BindProgramARB) -#define glBindProgramNV MANGLE(BindProgramNV) -#define glBindRenderbufferEXT MANGLE(BindRenderbufferEXT) -#define glBindTexGenParameterEXT MANGLE(BindTexGenParameterEXT) -#define glBindTextureEXT MANGLE(BindTextureEXT) -#define glBindTexture MANGLE(BindTexture) -#define glBindTextureUnitParameterEXT MANGLE(BindTextureUnitParameterEXT) -#define glBindVertexArrayAPPLE MANGLE(BindVertexArrayAPPLE) -#define glBindVertexShaderEXT MANGLE(BindVertexShaderEXT) -#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 glBlendEquation MANGLE(BlendEquation) -#define glBlendEquationSeparateATI MANGLE(BlendEquationSeparateATI) -#define glBlendEquationSeparateEXT MANGLE(BlendEquationSeparateEXT) -#define glBlendEquationSeparate MANGLE(BlendEquationSeparate) -#define glBlendFunc MANGLE(BlendFunc) -#define glBlendFuncSeparateEXT MANGLE(BlendFuncSeparateEXT) -#define glBlendFuncSeparateINGR MANGLE(BlendFuncSeparateINGR) -#define glBlendFuncSeparate MANGLE(BlendFuncSeparate) -#define glBufferDataARB MANGLE(BufferDataARB) -#define glBufferData MANGLE(BufferData) -#define glBufferSubDataARB MANGLE(BufferSubDataARB) -#define glBufferSubData MANGLE(BufferSubData) -#define glCallList MANGLE(CallList) -#define glCallLists MANGLE(CallLists) -#define glCheckFramebufferStatusEXT MANGLE(CheckFramebufferStatusEXT) -#define glClampColorARB MANGLE(ClampColorARB) -#define glClearAccum MANGLE(ClearAccum) -#define glClearColor MANGLE(ClearColor) -#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 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 glColorFragmentOp1ATI MANGLE(ColorFragmentOp1ATI) -#define glColorFragmentOp2ATI MANGLE(ColorFragmentOp2ATI) -#define glColorFragmentOp3ATI MANGLE(ColorFragmentOp3ATI) -#define glColorMask MANGLE(ColorMask) -#define glColorMaterial MANGLE(ColorMaterial) -#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 glCompileShader MANGLE(CompileShader) -#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 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 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 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 glCreateProgram MANGLE(CreateProgram) -#define glCreateProgramObjectARB MANGLE(CreateProgramObjectARB) -#define glCreateShader MANGLE(CreateShader) -#define glCreateShaderObjectARB MANGLE(CreateShaderObjectARB) -#define glCullFace MANGLE(CullFace) -#define glCullParameterdvEXT MANGLE(CullParameterdvEXT) -#define glCullParameterfvEXT MANGLE(CullParameterfvEXT) -#define glCurrentPaletteMatrixARB MANGLE(CurrentPaletteMatrixARB) -#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 glDeleteLists MANGLE(DeleteLists) -#define glDeleteObjectARB MANGLE(DeleteObjectARB) -#define glDeleteOcclusionQueriesNV MANGLE(DeleteOcclusionQueriesNV) -#define glDeleteProgram MANGLE(DeleteProgram) -#define glDeleteProgramsARB MANGLE(DeleteProgramsARB) -#define glDeleteProgramsNV MANGLE(DeleteProgramsNV) -#define glDeleteQueriesARB MANGLE(DeleteQueriesARB) -#define glDeleteQueries MANGLE(DeleteQueries) -#define glDeleteRenderbuffersEXT MANGLE(DeleteRenderbuffersEXT) -#define glDeleteShader MANGLE(DeleteShader) -#define glDeleteTexturesEXT MANGLE(DeleteTexturesEXT) -#define glDeleteTextures MANGLE(DeleteTextures) -#define glDeleteVertexArraysAPPLE MANGLE(DeleteVertexArraysAPPLE) -#define glDeleteVertexShaderEXT MANGLE(DeleteVertexShaderEXT) -#define glDepthBoundsEXT MANGLE(DepthBoundsEXT) -#define glDepthFunc MANGLE(DepthFunc) -#define glDepthMask MANGLE(DepthMask) -#define glDepthRange MANGLE(DepthRange) -#define glDetachObjectARB MANGLE(DetachObjectARB) -#define glDetachShader MANGLE(DetachShader) -#define glDetailTexFuncSGIS MANGLE(DetailTexFuncSGIS) -#define glDisableClientState MANGLE(DisableClientState) -#define glDisable MANGLE(Disable) -#define glDisableTraceMESA MANGLE(DisableTraceMESA) -#define glDisableVariantClientStateEXT MANGLE(DisableVariantClientStateEXT) -#define glDisableVertexAttribArrayARB MANGLE(DisableVertexAttribArrayARB) -#define glDisableVertexAttribArray MANGLE(DisableVertexAttribArray) -#define glDrawArraysEXT MANGLE(DrawArraysEXT) -#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 glDrawElements MANGLE(DrawElements) -#define glDrawMeshArraysSUN MANGLE(DrawMeshArraysSUN) -#define glDrawPixels MANGLE(DrawPixels) -#define glDrawRangeElementArrayAPPLE MANGLE(DrawRangeElementArrayAPPLE) -#define glDrawRangeElementArrayATI MANGLE(DrawRangeElementArrayATI) -#define glDrawRangeElementsEXT MANGLE(DrawRangeElementsEXT) -#define glDrawRangeElements MANGLE(DrawRangeElements) -#define glEdgeFlag MANGLE(EdgeFlag) -#define glEdgeFlagPointerEXT MANGLE(EdgeFlagPointerEXT) -#define glEdgeFlagPointerListIBM MANGLE(EdgeFlagPointerListIBM) -#define glEdgeFlagPointer MANGLE(EdgeFlagPointer) -#define glEdgeFlagv MANGLE(EdgeFlagv) -#define glElementPointerAPPLE MANGLE(ElementPointerAPPLE) -#define glElementPointerATI MANGLE(ElementPointerATI) -#define glEnableClientState MANGLE(EnableClientState) -#define glEnable MANGLE(Enable) -#define glEnableTraceMESA MANGLE(EnableTraceMESA) -#define glEnableVariantClientStateEXT MANGLE(EnableVariantClientStateEXT) -#define glEnableVertexAttribArrayARB MANGLE(EnableVertexAttribArrayARB) -#define glEnableVertexAttribArray MANGLE(EnableVertexAttribArray) -#define glEndFragmentShaderATI MANGLE(EndFragmentShaderATI) -#define glEndList MANGLE(EndList) -#define glEnd MANGLE(End) -#define glEndOcclusionQueryNV MANGLE(EndOcclusionQueryNV) -#define glEndQueryARB MANGLE(EndQueryARB) -#define glEndQuery MANGLE(EndQuery) -#define glEndTraceMESA MANGLE(EndTraceMESA) -#define glEndVertexShaderEXT MANGLE(EndVertexShaderEXT) -#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 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 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 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 glFramebufferRenderbufferEXT MANGLE(FramebufferRenderbufferEXT) -#define glFramebufferTexture1DEXT MANGLE(FramebufferTexture1DEXT) -#define glFramebufferTexture2DEXT MANGLE(FramebufferTexture2DEXT) -#define glFramebufferTexture3DEXT MANGLE(FramebufferTexture3DEXT) -#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 glGenFencesAPPLE MANGLE(GenFencesAPPLE) -#define glGenFencesNV MANGLE(GenFencesNV) -#define glGenFragmentShadersATI MANGLE(GenFragmentShadersATI) -#define glGenFramebuffersEXT MANGLE(GenFramebuffersEXT) -#define glGenLists MANGLE(GenLists) -#define glGenOcclusionQueriesNV MANGLE(GenOcclusionQueriesNV) -#define glGenProgramsARB MANGLE(GenProgramsARB) -#define glGenProgramsNV MANGLE(GenProgramsNV) -#define glGenQueriesARB MANGLE(GenQueriesARB) -#define glGenQueries MANGLE(GenQueries) -#define glGenRenderbuffersEXT MANGLE(GenRenderbuffersEXT) -#define glGenSymbolsEXT MANGLE(GenSymbolsEXT) -#define glGenTexturesEXT MANGLE(GenTexturesEXT) -#define glGenTextures MANGLE(GenTextures) -#define glGenVertexArraysAPPLE MANGLE(GenVertexArraysAPPLE) -#define glGenVertexShadersEXT MANGLE(GenVertexShadersEXT) -#define glGetActiveAttribARB MANGLE(GetActiveAttribARB) -#define glGetActiveAttrib MANGLE(GetActiveAttrib) -#define glGetActiveUniformARB MANGLE(GetActiveUniformARB) -#define glGetActiveUniform MANGLE(GetActiveUniform) -#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 glGetBooleanv MANGLE(GetBooleanv) -#define glGetBufferParameterivARB MANGLE(GetBufferParameterivARB) -#define glGetBufferParameteriv MANGLE(GetBufferParameteriv) -#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 glGetCompressedTexImageARB MANGLE(GetCompressedTexImageARB) -#define glGetCompressedTexImage MANGLE(GetCompressedTexImage) -#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 glGetDetailTexFuncSGIS MANGLE(GetDetailTexFuncSGIS) -#define glGetDoublev MANGLE(GetDoublev) -#define glGetError MANGLE(GetError) -#define glGetFenceivNV MANGLE(GetFenceivNV) -#define glGetFinalCombinerInputParameterfvNV MANGLE(GetFinalCombinerInputParameterfvNV) -#define glGetFinalCombinerInputParameterivNV MANGLE(GetFinalCombinerInputParameterivNV) -#define glGetFloatv MANGLE(GetFloatv) -#define glGetFogFuncSGIS MANGLE(GetFogFuncSGIS) -#define glGetFragmentLightfvSGIX MANGLE(GetFragmentLightfvSGIX) -#define glGetFragmentLightivSGIX MANGLE(GetFragmentLightivSGIX) -#define glGetFragmentMaterialfvSGIX MANGLE(GetFragmentMaterialfvSGIX) -#define glGetFragmentMaterialivSGIX MANGLE(GetFragmentMaterialivSGIX) -#define glGetFramebufferAttachmentParameterivEXT MANGLE(GetFramebufferAttachmentParameterivEXT) -#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 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 glGetObjectBufferfvATI MANGLE(GetObjectBufferfvATI) -#define glGetObjectBufferivATI MANGLE(GetObjectBufferivATI) -#define glGetObjectParameterfvARB MANGLE(GetObjectParameterfvARB) -#define glGetObjectParameterivARB MANGLE(GetObjectParameterivARB) -#define glGetOcclusionQueryivNV MANGLE(GetOcclusionQueryivNV) -#define glGetOcclusionQueryuivNV MANGLE(GetOcclusionQueryuivNV) -#define glGetPixelMapfv MANGLE(GetPixelMapfv) -#define glGetPixelMapuiv MANGLE(GetPixelMapuiv) -#define glGetPixelMapusv MANGLE(GetPixelMapusv) -#define glGetPixelTexGenParameterfvSGIS MANGLE(GetPixelTexGenParameterfvSGIS) -#define glGetPixelTexGenParameterivSGIS MANGLE(GetPixelTexGenParameterivSGIS) -#define glGetPointervEXT MANGLE(GetPointervEXT) -#define glGetPointerv MANGLE(GetPointerv) -#define glGetPolygonStipple MANGLE(GetPolygonStipple) -#define glGetProgramEnvParameterdvARB MANGLE(GetProgramEnvParameterdvARB) -#define glGetProgramEnvParameterfvARB MANGLE(GetProgramEnvParameterfvARB) -#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 glGetProgramNamedParameterdvNV MANGLE(GetProgramNamedParameterdvNV) -#define glGetProgramNamedParameterfvNV MANGLE(GetProgramNamedParameterfvNV) -#define glGetProgramParameterdvNV MANGLE(GetProgramParameterdvNV) -#define glGetProgramParameterfvNV MANGLE(GetProgramParameterfvNV) -#define glGetProgramRegisterfvMESA MANGLE(GetProgramRegisterfvMESA) -#define glGetProgramStringARB MANGLE(GetProgramStringARB) -#define glGetProgramStringNV MANGLE(GetProgramStringNV) -#define glGetQueryivARB MANGLE(GetQueryivARB) -#define glGetQueryiv MANGLE(GetQueryiv) -#define glGetQueryObjectivARB MANGLE(GetQueryObjectivARB) -#define glGetQueryObjectiv MANGLE(GetQueryObjectiv) -#define glGetQueryObjectuivARB MANGLE(GetQueryObjectuivARB) -#define glGetQueryObjectuiv MANGLE(GetQueryObjectuiv) -#define glGetRenderbufferParameterivEXT MANGLE(GetRenderbufferParameterivEXT) -#define glGetSeparableFilterEXT MANGLE(GetSeparableFilterEXT) -#define glGetSeparableFilter MANGLE(GetSeparableFilter) -#define glGetShaderInfoLog MANGLE(GetShaderInfoLog) -#define glGetShaderiv MANGLE(GetShaderiv) -#define glGetShaderSourceARB MANGLE(GetShaderSourceARB) -#define glGetShaderSource MANGLE(GetShaderSource) -#define glGetSharpenTexFuncSGIS MANGLE(GetSharpenTexFuncSGIS) -#define glGetString MANGLE(GetString) -#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 glGetTexParameteriv MANGLE(GetTexParameteriv) -#define glGetTrackMatrixivNV MANGLE(GetTrackMatrixivNV) -#define glGetUniformfvARB MANGLE(GetUniformfvARB) -#define glGetUniformfv MANGLE(GetUniformfv) -#define glGetUniformivARB MANGLE(GetUniformivARB) -#define glGetUniformiv MANGLE(GetUniformiv) -#define glGetUniformLocationARB MANGLE(GetUniformLocationARB) -#define glGetUniformLocation MANGLE(GetUniformLocation) -#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 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 glGetVertexAttribivARB MANGLE(GetVertexAttribivARB) -#define glGetVertexAttribiv MANGLE(GetVertexAttribiv) -#define glGetVertexAttribivNV MANGLE(GetVertexAttribivNV) -#define glGetVertexAttribPointervARB MANGLE(GetVertexAttribPointervARB) -#define glGetVertexAttribPointerv MANGLE(GetVertexAttribPointerv) -#define glGetVertexAttribPointervNV MANGLE(GetVertexAttribPointervNV) -#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 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 glIsEnabled MANGLE(IsEnabled) -#define glIsFenceAPPLE MANGLE(IsFenceAPPLE) -#define glIsFenceNV MANGLE(IsFenceNV) -#define glIsFramebufferEXT MANGLE(IsFramebufferEXT) -#define glIsList MANGLE(IsList) -#define glIsObjectBufferATI MANGLE(IsObjectBufferATI) -#define glIsOcclusionQueryNV MANGLE(IsOcclusionQueryNV) -#define glIsProgramARB MANGLE(IsProgramARB) -#define glIsProgram MANGLE(IsProgram) -#define glIsProgramNV MANGLE(IsProgramNV) -#define glIsQueryARB MANGLE(IsQueryARB) -#define glIsQuery MANGLE(IsQuery) -#define glIsRenderbufferEXT MANGLE(IsRenderbufferEXT) -#define glIsShader MANGLE(IsShader) -#define glIsTextureEXT MANGLE(IsTextureEXT) -#define glIsTexture MANGLE(IsTexture) -#define glIsVariantEnabledEXT MANGLE(IsVariantEnabledEXT) -#define glIsVertexArrayAPPLE MANGLE(IsVertexArrayAPPLE) -#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 glMap1d MANGLE(Map1d) -#define glMap1f MANGLE(Map1f) -#define glMap2d MANGLE(Map2d) -#define glMap2f MANGLE(Map2f) -#define glMapBufferARB MANGLE(MapBufferARB) -#define glMapBuffer MANGLE(MapBuffer) -#define glMapControlPointsNV MANGLE(MapControlPointsNV) -#define glMapGrid1d MANGLE(MapGrid1d) -#define glMapGrid1f MANGLE(MapGrid1f) -#define glMapGrid2d MANGLE(MapGrid2d) -#define glMapGrid2f MANGLE(MapGrid2f) -#define glMapObjectBufferATI MANGLE(MapObjectBufferATI) -#define glMapParameterfvNV MANGLE(MapParameterfvNV) -#define glMapParameterivNV MANGLE(MapParameterivNV) -#define glMaterialf MANGLE(Materialf) -#define glMaterialfv MANGLE(Materialfv) -#define glMateriali MANGLE(Materiali) -#define glMaterialiv MANGLE(Materialiv) -#define glMatrixIndexPointerARB MANGLE(MatrixIndexPointerARB) -#define glMatrixIndexubvARB MANGLE(MatrixIndexubvARB) -#define glMatrixIndexuivARB MANGLE(MatrixIndexuivARB) -#define glMatrixIndexusvARB MANGLE(MatrixIndexusvARB) -#define glMatrixMode MANGLE(MatrixMode) -#define glMinmaxEXT MANGLE(MinmaxEXT) -#define glMinmax MANGLE(Minmax) -#define glMultiDrawArraysEXT MANGLE(MultiDrawArraysEXT) -#define glMultiDrawArrays MANGLE(MultiDrawArrays) -#define glMultiDrawElementArrayAPPLE MANGLE(MultiDrawElementArrayAPPLE) -#define glMultiDrawElementsEXT MANGLE(MultiDrawElementsEXT) -#define glMultiDrawElements MANGLE(MultiDrawElements) -#define glMultiDrawRangeElementArrayAPPLE MANGLE(MultiDrawRangeElementArrayAPPLE) -#define glMultiModeDrawArraysIBM MANGLE(MultiModeDrawArraysIBM) -#define glMultiModeDrawElementsIBM MANGLE(MultiModeDrawElementsIBM) -#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 glMultMatrixd MANGLE(MultMatrixd) -#define glMultMatrixf MANGLE(MultMatrixf) -#define glMultTransposeMatrixdARB MANGLE(MultTransposeMatrixdARB) -#define glMultTransposeMatrixd MANGLE(MultTransposeMatrixd) -#define glMultTransposeMatrixfARB MANGLE(MultTransposeMatrixfARB) -#define glMultTransposeMatrixf MANGLE(MultTransposeMatrixf) -#define glNewList MANGLE(NewList) -#define glNewObjectBufferATI MANGLE(NewObjectBufferATI) -#define glNewTraceMESA MANGLE(NewTraceMESA) -#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 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 glOrtho MANGLE(Ortho) -#define glPassTexCoordATI MANGLE(PassTexCoordATI) -#define glPassThrough MANGLE(PassThrough) -#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 glPrimitiveRestartIndexNV MANGLE(PrimitiveRestartIndexNV) -#define glPrimitiveRestartNV MANGLE(PrimitiveRestartNV) -#define glPrioritizeTexturesEXT MANGLE(PrioritizeTexturesEXT) -#define glPrioritizeTextures MANGLE(PrioritizeTextures) -#define glProgramCallbackMESA MANGLE(ProgramCallbackMESA) -#define glProgramEnvParameter4dARB MANGLE(ProgramEnvParameter4dARB) -#define glProgramEnvParameter4dvARB MANGLE(ProgramEnvParameter4dvARB) -#define glProgramEnvParameter4fARB MANGLE(ProgramEnvParameter4fARB) -#define glProgramEnvParameter4fvARB MANGLE(ProgramEnvParameter4fvARB) -#define glProgramLocalParameter4dARB MANGLE(ProgramLocalParameter4dARB) -#define glProgramLocalParameter4dvARB MANGLE(ProgramLocalParameter4dvARB) -#define glProgramLocalParameter4fARB MANGLE(ProgramLocalParameter4fARB) -#define glProgramLocalParameter4fvARB MANGLE(ProgramLocalParameter4fvARB) -#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 glProgramParameters4dvNV MANGLE(ProgramParameters4dvNV) -#define glProgramParameters4fvNV MANGLE(ProgramParameters4fvNV) -#define glProgramStringARB MANGLE(ProgramStringARB) -#define glPushAttrib MANGLE(PushAttrib) -#define glPushClientAttrib MANGLE(PushClientAttrib) -#define glPushMatrix MANGLE(PushMatrix) -#define glPushName MANGLE(PushName) -#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 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 glRenderbufferStorageEXT MANGLE(RenderbufferStorageEXT) -#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 glRotated MANGLE(Rotated) -#define glRotatef MANGLE(Rotatef) -#define glSampleCoverageARB MANGLE(SampleCoverageARB) -#define glSampleCoverage MANGLE(SampleCoverage) -#define glSampleMapATI MANGLE(SampleMapATI) -#define glSampleMaskEXT MANGLE(SampleMaskEXT) -#define glSampleMaskSGIS MANGLE(SampleMaskSGIS) -#define glSamplePatternEXT MANGLE(SamplePatternEXT) -#define glSamplePatternSGIS MANGLE(SamplePatternSGIS) -#define glScaled MANGLE(Scaled) -#define glScalef MANGLE(Scalef) -#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 glSecondaryColorPointerEXT MANGLE(SecondaryColorPointerEXT) -#define glSecondaryColorPointerListIBM MANGLE(SecondaryColorPointerListIBM) -#define glSecondaryColorPointer MANGLE(SecondaryColorPointer) -#define glSelectBuffer MANGLE(SelectBuffer) -#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 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 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 glTestFenceAPPLE MANGLE(TestFenceAPPLE) -#define glTestFenceNV MANGLE(TestFenceNV) -#define glTestObjectAPPLE MANGLE(TestObjectAPPLE) -#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 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 glTexImage3DEXT MANGLE(TexImage3DEXT) -#define glTexImage3D MANGLE(TexImage3D) -#define glTexImage4DSGIS MANGLE(TexImage4DSGIS) -#define glTexParameterf MANGLE(TexParameterf) -#define glTexParameterfv MANGLE(TexParameterfv) -#define glTexParameteri MANGLE(TexParameteri) -#define glTexParameteriv MANGLE(TexParameteriv) -#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 glTextureColorMaskSGIS MANGLE(TextureColorMaskSGIS) -#define glTextureLightEXT MANGLE(TextureLightEXT) -#define glTextureMaterialEXT MANGLE(TextureMaterialEXT) -#define glTextureNormalEXT MANGLE(TextureNormalEXT) -#define glTraceAssertAttribMESA MANGLE(TraceAssertAttribMESA) -#define glTraceCommentMESA MANGLE(TraceCommentMESA) -#define glTraceListMESA MANGLE(TraceListMESA) -#define glTracePointerMESA MANGLE(TracePointerMESA) -#define glTracePointerRangeMESA MANGLE(TracePointerRangeMESA) -#define glTraceTextureMESA MANGLE(TraceTextureMESA) -#define glTrackMatrixNV MANGLE(TrackMatrixNV) -#define glTranslated MANGLE(Translated) -#define glTranslatef MANGLE(Translatef) -#define glUniform1fARB MANGLE(Uniform1fARB) -#define glUniform1f MANGLE(Uniform1f) -#define glUniform1fvARB MANGLE(Uniform1fvARB) -#define glUniform1fv MANGLE(Uniform1fv) -#define glUniform1iARB MANGLE(Uniform1iARB) -#define glUniform1i MANGLE(Uniform1i) -#define glUniform1ivARB MANGLE(Uniform1ivARB) -#define glUniform1iv MANGLE(Uniform1iv) -#define glUniform2fARB MANGLE(Uniform2fARB) -#define glUniform2f MANGLE(Uniform2f) -#define glUniform2fvARB MANGLE(Uniform2fvARB) -#define glUniform2fv MANGLE(Uniform2fv) -#define glUniform2iARB MANGLE(Uniform2iARB) -#define glUniform2i MANGLE(Uniform2i) -#define glUniform2ivARB MANGLE(Uniform2ivARB) -#define glUniform2iv MANGLE(Uniform2iv) -#define glUniform3fARB MANGLE(Uniform3fARB) -#define glUniform3f MANGLE(Uniform3f) -#define glUniform3fvARB MANGLE(Uniform3fvARB) -#define glUniform3fv MANGLE(Uniform3fv) -#define glUniform3iARB MANGLE(Uniform3iARB) -#define glUniform3i MANGLE(Uniform3i) -#define glUniform3ivARB MANGLE(Uniform3ivARB) -#define glUniform3iv MANGLE(Uniform3iv) -#define glUniform4fARB MANGLE(Uniform4fARB) -#define glUniform4f MANGLE(Uniform4f) -#define glUniform4fvARB MANGLE(Uniform4fvARB) -#define glUniform4fv MANGLE(Uniform4fv) -#define glUniform4iARB MANGLE(Uniform4iARB) -#define glUniform4i MANGLE(Uniform4i) -#define glUniform4ivARB MANGLE(Uniform4ivARB) -#define glUniform4iv MANGLE(Uniform4iv) -#define glUniformMatrix2fvARB MANGLE(UniformMatrix2fvARB) -#define glUniformMatrix2fv MANGLE(UniformMatrix2fv) -#define glUniformMatrix3fvARB MANGLE(UniformMatrix3fvARB) -#define glUniformMatrix3fv MANGLE(UniformMatrix3fv) -#define glUniformMatrix4fvARB MANGLE(UniformMatrix4fvARB) -#define glUniformMatrix4fv MANGLE(UniformMatrix4fv) -#define glUnlockArraysEXT MANGLE(UnlockArraysEXT) -#define glUnmapBufferARB MANGLE(UnmapBufferARB) -#define glUnmapBuffer MANGLE(UnmapBuffer) -#define glUnmapObjectBufferATI MANGLE(UnmapObjectBufferATI) -#define glUpdateObjectBufferATI MANGLE(UpdateObjectBufferATI) -#define glUseProgram MANGLE(UseProgram) -#define glUseProgramObjectARB MANGLE(UseProgramObjectARB) -#define glValidateProgramARB MANGLE(ValidateProgramARB) -#define glValidateProgram MANGLE(ValidateProgram) -#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 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 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 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 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 glViewport MANGLE(Viewport) -#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/nx-X11/extras/Mesa/include/GL/glfbdev.h b/nx-X11/extras/Mesa/include/GL/glfbdev.h deleted file mode 100644 index 6af3ac314..000000000 --- a/nx-X11/extras/Mesa/include/GL/glfbdev.h +++ /dev/null @@ -1,148 +0,0 @@ -/* - * Mesa 3-D graphics library - * Version: 5.1 - * - * Copyright (C) 1999-2003 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. - */ - - -#ifndef GLFBDEV_H -#define GLFBDEV_H - - -/* avoid including linux/fb.h */ -struct fb_fix_screeninfo; -struct fb_var_screeninfo; - - -/* public types */ -typedef struct GLFBDevVisualRec *GLFBDevVisualPtr; -typedef struct GLFBDevBufferRec *GLFBDevBufferPtr; -typedef struct GLFBDevContextRec *GLFBDevContextPtr; - - -/* API version */ -#define GLFBDEV_VERSION_1_0 1 - - -/* For glFBDevCreateVisual */ -#define GLFBDEV_DOUBLE_BUFFER 100 -#define GLFBDEV_COLOR_INDEX 101 -#define GLFBDEV_DEPTH_SIZE 102 -#define GLFBDEV_STENCIL_SIZE 103 -#define GLFBDEV_ACCUM_SIZE 104 -#define GLFBDEV_LEVEL 105 -#define GLFBDEV_NONE 0 - -/* For glFBDevGetString */ -#define GLFBDEV_VERSION 200 -#define GLFBDEV_VENDOR 201 - - -/* Misc functions */ - -extern const char * -glFBDevGetString( int str ); - - -typedef void (*GLFBDevProc)(); - - -extern const GLFBDevProc -glFBDevGetProcAddress( const char *procName ); - - - -/** - * Create a GLFBDevVisual. - * \param fixInfo - needed to get the visual types, etc. - * \param varInfo - needed to get the bits_per_pixel, etc. - * \param attribs - for requesting depth, stencil, accum buffers, etc. - */ -extern GLFBDevVisualPtr -glFBDevCreateVisual( const struct fb_fix_screeninfo *fixInfo, - const struct fb_var_screeninfo *varInfo, - const int *attribs ); - -extern void -glFBDevDestroyVisual( GLFBDevVisualPtr visual ); - -extern int -glFBDevGetVisualAttrib( const GLFBDevVisualPtr visual, int attrib); - - - -/** - * Create a GLFBDevBuffer. - * \param fixInfo, varInfo - needed in order to get the screen size - * (resolution), etc. - * \param visual - as returned by glFBDevCreateVisual() - * \param frontBuffer - address of front color buffer - * \param backBuffer - address of back color buffer (may be NULL) - * \param size - size of the color buffer(s) in bytes. - */ -extern GLFBDevBufferPtr -glFBDevCreateBuffer( const struct fb_fix_screeninfo *fixInfo, - const struct fb_var_screeninfo *varInfo, - const GLFBDevVisualPtr visual, - void *frontBuffer, void *backBuffer, size_t size ); - -extern void -glFBDevDestroyBuffer( GLFBDevBufferPtr buffer ); - -extern int -glFBDevGetBufferAttrib( const GLFBDevBufferPtr buffer, int attrib); - -extern GLFBDevBufferPtr -glFBDevGetCurrentDrawBuffer( void ); - -extern GLFBDevBufferPtr -glFBDevGetCurrentReadBuffer( void ); - -extern void -glFBDevSwapBuffers( GLFBDevBufferPtr buffer ); - - - -/** - * Create a GLFBDevContext. - * \param visual - as created by glFBDevCreateVisual. - * \param share - specifies another context with which to share textures, - * display lists, etc. (may be NULL). - */ -extern GLFBDevContextPtr -glFBDevCreateContext( const GLFBDevVisualPtr visual, GLFBDevContextPtr share ); - -extern void -glFBDevDestroyContext( GLFBDevContextPtr context ); - -extern int -glFBDevGetContextAttrib( const GLFBDevContextPtr context, int attrib); - -extern GLFBDevContextPtr -glFBDevGetCurrentContext( void ); - -extern int -glFBDevMakeCurrent( GLFBDevContextPtr context, - GLFBDevBufferPtr drawBuffer, - GLFBDevBufferPtr readBuffer ); - - -#endif /* GLFBDEV_H */ diff --git a/nx-X11/extras/Mesa/include/GL/glu.h b/nx-X11/extras/Mesa/include/GL/glu.h deleted file mode 100644 index c0bac75a8..000000000 --- a/nx-X11/extras/Mesa/include/GL/glu.h +++ /dev/null @@ -1,340 +0,0 @@ -/* -** License Applicability. Except to the extent portions of this file are -** made subject to an alternative license as permitted in the SGI Free -** Software License B, Version 1.1 (the "License"), the contents of this -** file are subject only to the provisions of the License. You may not use -** this file except in compliance with the License. You may obtain a copy -** of the License at Silicon Graphics, Inc., attn: Legal Services, 1600 -** Amphitheatre Parkway, Mountain View, CA 94043-1351, or at: -** -** http://oss.sgi.com/projects/FreeB -** -** Note that, as provided in the License, the Software is distributed on an -** "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS -** DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND -** CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A -** PARTICULAR PURPOSE, AND NON-INFRINGEMENT. -** -** Original Code. The Original Code is: OpenGL Sample Implementation, -** Version 1.2.1, released January 26, 2000, developed by Silicon Graphics, -** Inc. The Original Code is Copyright (c) 1991-2000 Silicon Graphics, Inc. -** Copyright in any portions created by third parties is as indicated -** elsewhere herein. All Rights Reserved. -** -** Additional Notice Provisions: This software was created using the -** OpenGL(R) version 1.2.1 Sample Implementation published by SGI, but has -** not been independently verified as being compliant with the OpenGL(R) -** version 1.2.1 Specification. -*/ - -#ifndef __glu_h__ -#define __glu_h__ - -#if defined(USE_MGL_NAMESPACE) -#include "glu_mangle.h" -#endif - -#include - -#ifndef GLAPIENTRY -#define GLAPIENTRY -#endif - -#ifndef GLAPIENTRYP -#define GLAPIENTRYP GLAPIENTRY * -#endif - -#ifndef GLAPI -#define GLAPI -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -/*************************************************************/ - -/* Extensions */ -#define GLU_EXT_object_space_tess 1 -#define GLU_EXT_nurbs_tessellator 1 - -/* Boolean */ -#define GLU_FALSE 0 -#define GLU_TRUE 1 - -/* Version */ -#define GLU_VERSION_1_1 1 -#define GLU_VERSION_1_2 1 -#define GLU_VERSION_1_3 1 - -/* StringName */ -#define GLU_VERSION 100800 -#define GLU_EXTENSIONS 100801 - -/* ErrorCode */ -#define GLU_INVALID_ENUM 100900 -#define GLU_INVALID_VALUE 100901 -#define GLU_OUT_OF_MEMORY 100902 -#define GLU_INCOMPATIBLE_GL_VERSION 100903 -#define GLU_INVALID_OPERATION 100904 - -/* NurbsDisplay */ -/* GLU_FILL */ -#define GLU_OUTLINE_POLYGON 100240 -#define GLU_OUTLINE_PATCH 100241 - -/* NurbsCallback */ -#define GLU_NURBS_ERROR 100103 -#define GLU_ERROR 100103 -#define GLU_NURBS_BEGIN 100164 -#define GLU_NURBS_BEGIN_EXT 100164 -#define GLU_NURBS_VERTEX 100165 -#define GLU_NURBS_VERTEX_EXT 100165 -#define GLU_NURBS_NORMAL 100166 -#define GLU_NURBS_NORMAL_EXT 100166 -#define GLU_NURBS_COLOR 100167 -#define GLU_NURBS_COLOR_EXT 100167 -#define GLU_NURBS_TEXTURE_COORD 100168 -#define GLU_NURBS_TEX_COORD_EXT 100168 -#define GLU_NURBS_END 100169 -#define GLU_NURBS_END_EXT 100169 -#define GLU_NURBS_BEGIN_DATA 100170 -#define GLU_NURBS_BEGIN_DATA_EXT 100170 -#define GLU_NURBS_VERTEX_DATA 100171 -#define GLU_NURBS_VERTEX_DATA_EXT 100171 -#define GLU_NURBS_NORMAL_DATA 100172 -#define GLU_NURBS_NORMAL_DATA_EXT 100172 -#define GLU_NURBS_COLOR_DATA 100173 -#define GLU_NURBS_COLOR_DATA_EXT 100173 -#define GLU_NURBS_TEXTURE_COORD_DATA 100174 -#define GLU_NURBS_TEX_COORD_DATA_EXT 100174 -#define GLU_NURBS_END_DATA 100175 -#define GLU_NURBS_END_DATA_EXT 100175 - -/* NurbsError */ -#define GLU_NURBS_ERROR1 100251 -#define GLU_NURBS_ERROR2 100252 -#define GLU_NURBS_ERROR3 100253 -#define GLU_NURBS_ERROR4 100254 -#define GLU_NURBS_ERROR5 100255 -#define GLU_NURBS_ERROR6 100256 -#define GLU_NURBS_ERROR7 100257 -#define GLU_NURBS_ERROR8 100258 -#define GLU_NURBS_ERROR9 100259 -#define GLU_NURBS_ERROR10 100260 -#define GLU_NURBS_ERROR11 100261 -#define GLU_NURBS_ERROR12 100262 -#define GLU_NURBS_ERROR13 100263 -#define GLU_NURBS_ERROR14 100264 -#define GLU_NURBS_ERROR15 100265 -#define GLU_NURBS_ERROR16 100266 -#define GLU_NURBS_ERROR17 100267 -#define GLU_NURBS_ERROR18 100268 -#define GLU_NURBS_ERROR19 100269 -#define GLU_NURBS_ERROR20 100270 -#define GLU_NURBS_ERROR21 100271 -#define GLU_NURBS_ERROR22 100272 -#define GLU_NURBS_ERROR23 100273 -#define GLU_NURBS_ERROR24 100274 -#define GLU_NURBS_ERROR25 100275 -#define GLU_NURBS_ERROR26 100276 -#define GLU_NURBS_ERROR27 100277 -#define GLU_NURBS_ERROR28 100278 -#define GLU_NURBS_ERROR29 100279 -#define GLU_NURBS_ERROR30 100280 -#define GLU_NURBS_ERROR31 100281 -#define GLU_NURBS_ERROR32 100282 -#define GLU_NURBS_ERROR33 100283 -#define GLU_NURBS_ERROR34 100284 -#define GLU_NURBS_ERROR35 100285 -#define GLU_NURBS_ERROR36 100286 -#define GLU_NURBS_ERROR37 100287 - -/* NurbsProperty */ -#define GLU_AUTO_LOAD_MATRIX 100200 -#define GLU_CULLING 100201 -#define GLU_SAMPLING_TOLERANCE 100203 -#define GLU_DISPLAY_MODE 100204 -#define GLU_PARAMETRIC_TOLERANCE 100202 -#define GLU_SAMPLING_METHOD 100205 -#define GLU_U_STEP 100206 -#define GLU_V_STEP 100207 -#define GLU_NURBS_MODE 100160 -#define GLU_NURBS_MODE_EXT 100160 -#define GLU_NURBS_TESSELLATOR 100161 -#define GLU_NURBS_TESSELLATOR_EXT 100161 -#define GLU_NURBS_RENDERER 100162 -#define GLU_NURBS_RENDERER_EXT 100162 - -/* NurbsSampling */ -#define GLU_OBJECT_PARAMETRIC_ERROR 100208 -#define GLU_OBJECT_PARAMETRIC_ERROR_EXT 100208 -#define GLU_OBJECT_PATH_LENGTH 100209 -#define GLU_OBJECT_PATH_LENGTH_EXT 100209 -#define GLU_PATH_LENGTH 100215 -#define GLU_PARAMETRIC_ERROR 100216 -#define GLU_DOMAIN_DISTANCE 100217 - -/* NurbsTrim */ -#define GLU_MAP1_TRIM_2 100210 -#define GLU_MAP1_TRIM_3 100211 - -/* QuadricDrawStyle */ -#define GLU_POINT 100010 -#define GLU_LINE 100011 -#define GLU_FILL 100012 -#define GLU_SILHOUETTE 100013 - -/* QuadricCallback */ -/* GLU_ERROR */ - -/* QuadricNormal */ -#define GLU_SMOOTH 100000 -#define GLU_FLAT 100001 -#define GLU_NONE 100002 - -/* QuadricOrientation */ -#define GLU_OUTSIDE 100020 -#define GLU_INSIDE 100021 - -/* TessCallback */ -#define GLU_TESS_BEGIN 100100 -#define GLU_BEGIN 100100 -#define GLU_TESS_VERTEX 100101 -#define GLU_VERTEX 100101 -#define GLU_TESS_END 100102 -#define GLU_END 100102 -#define GLU_TESS_ERROR 100103 -#define GLU_TESS_EDGE_FLAG 100104 -#define GLU_EDGE_FLAG 100104 -#define GLU_TESS_COMBINE 100105 -#define GLU_TESS_BEGIN_DATA 100106 -#define GLU_TESS_VERTEX_DATA 100107 -#define GLU_TESS_END_DATA 100108 -#define GLU_TESS_ERROR_DATA 100109 -#define GLU_TESS_EDGE_FLAG_DATA 100110 -#define GLU_TESS_COMBINE_DATA 100111 - -/* TessContour */ -#define GLU_CW 100120 -#define GLU_CCW 100121 -#define GLU_INTERIOR 100122 -#define GLU_EXTERIOR 100123 -#define GLU_UNKNOWN 100124 - -/* TessProperty */ -#define GLU_TESS_WINDING_RULE 100140 -#define GLU_TESS_BOUNDARY_ONLY 100141 -#define GLU_TESS_TOLERANCE 100142 - -/* TessError */ -#define GLU_TESS_ERROR1 100151 -#define GLU_TESS_ERROR2 100152 -#define GLU_TESS_ERROR3 100153 -#define GLU_TESS_ERROR4 100154 -#define GLU_TESS_ERROR5 100155 -#define GLU_TESS_ERROR6 100156 -#define GLU_TESS_ERROR7 100157 -#define GLU_TESS_ERROR8 100158 -#define GLU_TESS_MISSING_BEGIN_POLYGON 100151 -#define GLU_TESS_MISSING_BEGIN_CONTOUR 100152 -#define GLU_TESS_MISSING_END_POLYGON 100153 -#define GLU_TESS_MISSING_END_CONTOUR 100154 -#define GLU_TESS_COORD_TOO_LARGE 100155 -#define GLU_TESS_NEED_COMBINE_CALLBACK 100156 - -/* TessWinding */ -#define GLU_TESS_WINDING_ODD 100130 -#define GLU_TESS_WINDING_NONZERO 100131 -#define GLU_TESS_WINDING_POSITIVE 100132 -#define GLU_TESS_WINDING_NEGATIVE 100133 -#define GLU_TESS_WINDING_ABS_GEQ_TWO 100134 - -/*************************************************************/ - - -#ifdef __cplusplus -class GLUnurbs; -class GLUquadric; -class GLUtesselator; -#else -typedef struct GLUnurbs GLUnurbs; -typedef struct GLUquadric GLUquadric; -typedef struct GLUtesselator GLUtesselator; -#endif - -typedef GLUnurbs GLUnurbsObj; -typedef GLUquadric GLUquadricObj; -typedef GLUtesselator GLUtesselatorObj; -typedef GLUtesselator GLUtriangulatorObj; - -#define GLU_TESS_MAX_COORD 1.0e150 - -/* Internal convenience typedefs */ -typedef void (GLAPIENTRYP _GLUfuncptr)(); - -GLAPI void GLAPIENTRY gluBeginCurve (GLUnurbs* nurb); -GLAPI void GLAPIENTRY gluBeginPolygon (GLUtesselator* tess); -GLAPI void GLAPIENTRY gluBeginSurface (GLUnurbs* nurb); -GLAPI void GLAPIENTRY gluBeginTrim (GLUnurbs* nurb); -GLAPI GLint GLAPIENTRY gluBuild1DMipmapLevels (GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void *data); -GLAPI GLint GLAPIENTRY gluBuild1DMipmaps (GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, const void *data); -GLAPI GLint GLAPIENTRY gluBuild2DMipmapLevels (GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void *data); -GLAPI GLint GLAPIENTRY gluBuild2DMipmaps (GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *data); -GLAPI GLint GLAPIENTRY gluBuild3DMipmapLevels (GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void *data); -GLAPI GLint GLAPIENTRY gluBuild3DMipmaps (GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *data); -GLAPI GLboolean GLAPIENTRY gluCheckExtension (const GLubyte *extName, const GLubyte *extString); -GLAPI void GLAPIENTRY gluCylinder (GLUquadric* quad, GLdouble base, GLdouble top, GLdouble height, GLint slices, GLint stacks); -GLAPI void GLAPIENTRY gluDeleteNurbsRenderer (GLUnurbs* nurb); -GLAPI void GLAPIENTRY gluDeleteQuadric (GLUquadric* quad); -GLAPI void GLAPIENTRY gluDeleteTess (GLUtesselator* tess); -GLAPI void GLAPIENTRY gluDisk (GLUquadric* quad, GLdouble inner, GLdouble outer, GLint slices, GLint loops); -GLAPI void GLAPIENTRY gluEndCurve (GLUnurbs* nurb); -GLAPI void GLAPIENTRY gluEndPolygon (GLUtesselator* tess); -GLAPI void GLAPIENTRY gluEndSurface (GLUnurbs* nurb); -GLAPI void GLAPIENTRY gluEndTrim (GLUnurbs* nurb); -GLAPI const GLubyte * GLAPIENTRY gluErrorString (GLenum error); -GLAPI void GLAPIENTRY gluGetNurbsProperty (GLUnurbs* nurb, GLenum property, GLfloat* data); -GLAPI const GLubyte * GLAPIENTRY gluGetString (GLenum name); -GLAPI void GLAPIENTRY gluGetTessProperty (GLUtesselator* tess, GLenum which, GLdouble* data); -GLAPI void GLAPIENTRY gluLoadSamplingMatrices (GLUnurbs* nurb, const GLfloat *model, const GLfloat *perspective, const GLint *view); -GLAPI void GLAPIENTRY gluLookAt (GLdouble eyeX, GLdouble eyeY, GLdouble eyeZ, GLdouble centerX, GLdouble centerY, GLdouble centerZ, GLdouble upX, GLdouble upY, GLdouble upZ); -GLAPI GLUnurbs* GLAPIENTRY gluNewNurbsRenderer (void); -GLAPI GLUquadric* GLAPIENTRY gluNewQuadric (void); -GLAPI GLUtesselator* GLAPIENTRY gluNewTess (void); -GLAPI void GLAPIENTRY gluNextContour (GLUtesselator* tess, GLenum type); -GLAPI void GLAPIENTRY gluNurbsCallback (GLUnurbs* nurb, GLenum which, _GLUfuncptr CallBackFunc); -GLAPI void GLAPIENTRY gluNurbsCallbackData (GLUnurbs* nurb, GLvoid* userData); -GLAPI void GLAPIENTRY gluNurbsCallbackDataEXT (GLUnurbs* nurb, GLvoid* userData); -GLAPI void GLAPIENTRY gluNurbsCurve (GLUnurbs* nurb, GLint knotCount, GLfloat *knots, GLint stride, GLfloat *control, GLint order, GLenum type); -GLAPI void GLAPIENTRY gluNurbsProperty (GLUnurbs* nurb, GLenum property, GLfloat value); -GLAPI void GLAPIENTRY gluNurbsSurface (GLUnurbs* nurb, GLint sKnotCount, GLfloat* sKnots, GLint tKnotCount, GLfloat* tKnots, GLint sStride, GLint tStride, GLfloat* control, GLint sOrder, GLint tOrder, GLenum type); -GLAPI void GLAPIENTRY gluOrtho2D (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top); -GLAPI void GLAPIENTRY gluPartialDisk (GLUquadric* quad, GLdouble inner, GLdouble outer, GLint slices, GLint loops, GLdouble start, GLdouble sweep); -GLAPI void GLAPIENTRY gluPerspective (GLdouble fovy, GLdouble aspect, GLdouble zNear, GLdouble zFar); -GLAPI void GLAPIENTRY gluPickMatrix (GLdouble x, GLdouble y, GLdouble delX, GLdouble delY, GLint *viewport); -GLAPI GLint GLAPIENTRY gluProject (GLdouble objX, GLdouble objY, GLdouble objZ, const GLdouble *model, const GLdouble *proj, const GLint *view, GLdouble* winX, GLdouble* winY, GLdouble* winZ); -GLAPI void GLAPIENTRY gluPwlCurve (GLUnurbs* nurb, GLint count, GLfloat* data, GLint stride, GLenum type); -GLAPI void GLAPIENTRY gluQuadricCallback (GLUquadric* quad, GLenum which, _GLUfuncptr CallBackFunc); -GLAPI void GLAPIENTRY gluQuadricDrawStyle (GLUquadric* quad, GLenum draw); -GLAPI void GLAPIENTRY gluQuadricNormals (GLUquadric* quad, GLenum normal); -GLAPI void GLAPIENTRY gluQuadricOrientation (GLUquadric* quad, GLenum orientation); -GLAPI void GLAPIENTRY gluQuadricTexture (GLUquadric* quad, GLboolean texture); -GLAPI GLint GLAPIENTRY gluScaleImage (GLenum format, GLsizei wIn, GLsizei hIn, GLenum typeIn, const void *dataIn, GLsizei wOut, GLsizei hOut, GLenum typeOut, GLvoid* dataOut); -GLAPI void GLAPIENTRY gluSphere (GLUquadric* quad, GLdouble radius, GLint slices, GLint stacks); -GLAPI void GLAPIENTRY gluTessBeginContour (GLUtesselator* tess); -GLAPI void GLAPIENTRY gluTessBeginPolygon (GLUtesselator* tess, GLvoid* data); -GLAPI void GLAPIENTRY gluTessCallback (GLUtesselator* tess, GLenum which, _GLUfuncptr CallBackFunc); -GLAPI void GLAPIENTRY gluTessEndContour (GLUtesselator* tess); -GLAPI void GLAPIENTRY gluTessEndPolygon (GLUtesselator* tess); -GLAPI void GLAPIENTRY gluTessNormal (GLUtesselator* tess, GLdouble valueX, GLdouble valueY, GLdouble valueZ); -GLAPI void GLAPIENTRY gluTessProperty (GLUtesselator* tess, GLenum which, GLdouble data); -GLAPI void GLAPIENTRY gluTessVertex (GLUtesselator* tess, GLdouble *location, GLvoid* data); -GLAPI GLint GLAPIENTRY gluUnProject (GLdouble winX, GLdouble winY, GLdouble winZ, const GLdouble *model, const GLdouble *proj, const GLint *view, GLdouble* objX, GLdouble* objY, GLdouble* objZ); -GLAPI GLint GLAPIENTRY gluUnProject4 (GLdouble winX, GLdouble winY, GLdouble winZ, GLdouble clipW, const GLdouble *model, const GLdouble *proj, const GLint *view, GLdouble nearVal, GLdouble farVal, GLdouble* objX, GLdouble* objY, GLdouble* objZ, GLdouble* objW); - -#ifdef __cplusplus -} -#endif - -#endif /* __glu_h__ */ diff --git a/nx-X11/extras/Mesa/include/GL/glu_mangle.h b/nx-X11/extras/Mesa/include/GL/glu_mangle.h deleted file mode 100644 index 9c25aa864..000000000 --- a/nx-X11/extras/Mesa/include/GL/glu_mangle.h +++ /dev/null @@ -1,86 +0,0 @@ -/* - * Mesa 3-D graphics library - * Version: 3.0 - * Copyright (C) 1995-1998 Brian Paul - * - * This 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. - * - * This 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 this library; if not, write to the Free - * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - */ - - -#ifndef GLU_MANGLE_H -#define GLU_MANGLE_H - - -#define gluLookAt mgluLookAt -#define gluOrtho2D mgluOrtho2D -#define gluPerspective mgluPerspective -#define gluPickMatrix mgluPickMatrix -#define gluProject mgluProject -#define gluUnProject mgluUnProject -#define gluErrorString mgluErrorString -#define gluScaleImage mgluScaleImage -#define gluBuild1DMipmaps mgluBuild1DMipmaps -#define gluBuild2DMipmaps mgluBuild2DMipmaps -#define gluNewQuadric mgluNewQuadric -#define gluDeleteQuadric mgluDeleteQuadric -#define gluQuadricDrawStyle mgluQuadricDrawStyle -#define gluQuadricOrientation mgluQuadricOrientation -#define gluQuadricNormals mgluQuadricNormals -#define gluQuadricTexture mgluQuadricTexture -#define gluQuadricCallback mgluQuadricCallback -#define gluCylinder mgluCylinder -#define gluSphere mgluSphere -#define gluDisk mgluDisk -#define gluPartialDisk mgluPartialDisk -#define gluNewNurbsRenderer mgluNewNurbsRenderer -#define gluDeleteNurbsRenderer mgluDeleteNurbsRenderer -#define gluLoadSamplingMatrices mgluLoadSamplingMatrices -#define gluNurbsProperty mgluNurbsProperty -#define gluGetNurbsProperty mgluGetNurbsProperty -#define gluBeginCurve mgluBeginCurve -#define gluEndCurve mgluEndCurve -#define gluNurbsCurve mgluNurbsCurve -#define gluBeginSurface mgluBeginSurface -#define gluEndSurface mgluEndSurface -#define gluNurbsSurface mgluNurbsSurface -#define gluBeginTrim mgluBeginTrim -#define gluEndTrim mgluEndTrim -#define gluPwlCurve mgluPwlCurve -#define gluNurbsCallback mgluNurbsCallback -#define gluNewTess mgluNewTess -#define gluDeleteTess mgluDeleteTess -#define gluTessBeginPolygon mgluTessBeginPolygon -#define gluTessBeginContour mgluTessBeginContour -#define gluTessVertex mgluTessVertex -#define gluTessEndPolygon mgluTessEndPolygon -#define gluTessEndContour mgluTessEndContour -#define gluTessProperty mgluTessProperty -#define gluTessNormal mgluTessNormal -#define gluTessCallback mgluTessCallback -#define gluGetTessProperty mgluGetTessProperty -#define gluBeginPolygon mgluBeginPolygon -#define gluNextContour mgluNextContour -#define gluEndPolygon mgluEndPolygon -#define gluGetString mgluGetString -#define gluBuild1DMipmapLevels mgluBuild1DMipmapLevels -#define gluBuild2DMipmapLevels mgluBuild2DMipmapLevels -#define gluBuild3DMipmapLevels mgluBuild3DMipmapLevels -#define gluBuild3DMipmaps mgluBuild3DMipmaps -#define gluCheckExtension mgluCheckExtension -#define gluUnProject4 mgluUnProject4 -#define gluNurbsCallbackData mgluNurbsCallbackData -#define gluNurbsCallbackDataEXT mgluNurbsCallbackDataEXT - -#endif diff --git a/nx-X11/extras/Mesa/include/GL/glut.h b/nx-X11/extras/Mesa/include/GL/glut.h deleted file mode 100644 index 23c740ee1..000000000 --- a/nx-X11/extras/Mesa/include/GL/glut.h +++ /dev/null @@ -1,748 +0,0 @@ -#ifndef __glut_h__ -#define __glut_h__ - -/* Copyright (c) Mark J. Kilgard, 1994, 1995, 1996, 1998. */ - -/* This program is freely distributable without licensing fees and is - provided without guarantee or warrantee expressed or implied. This - program is -not- in the public domain. */ - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -#if defined(_WIN32) - -/* GLUT 3.7 now tries to avoid including - to avoid name space pollution, but Win32's - needs APIENTRY and WINGDIAPI defined properly. - - tjump@spgs.com contributes: - If users are building glut code on MS Windows, then they should - make sure they include windows.h early, let's not get into a - header definitions war since MS has proven it's capability to - change header dependencies w/o publishing they have done so. - - So, let's not include windows.h here, as it's not really required and - MS own gl/gl.h *should* include it if the dependency is there. */ - -/* To disable automatic library usage for GLUT, define GLUT_NO_LIB_PRAGMA - in your compile preprocessor options. */ -# if !defined(GLUT_BUILDING_LIB) && !defined(GLUT_NO_LIB_PRAGMA) -# pragma comment (lib, "winmm.lib") /* link with Windows MultiMedia lib */ -/* To enable automatic SGI OpenGL for Windows library usage for GLUT, - define GLUT_USE_SGI_OPENGL in your compile preprocessor options. */ -# ifdef GLUT_USE_SGI_OPENGL -# pragma comment (lib, "opengl.lib") /* link with SGI OpenGL for Windows lib */ -# pragma comment (lib, "glu.lib") /* link with SGI OpenGL Utility lib */ -# pragma comment (lib, "glut.lib") /* link with Win32 GLUT for SGI OpenGL lib */ -# else -# pragma comment (lib, "opengl32.lib") /* link with Microsoft OpenGL lib */ -# pragma comment (lib, "glu32.lib") /* link with Microsoft OpenGL Utility lib */ -# pragma comment (lib, "glut32.lib") /* link with Win32 GLUT lib */ -# endif -# endif - -/* To disable supression of annoying warnings about floats being promoted - to doubles, define GLUT_NO_WARNING_DISABLE in your compile preprocessor - options. */ -# ifndef GLUT_NO_WARNING_DISABLE -# pragma warning (disable:4244) /* Disable bogus VC++ 4.2 conversion warnings. */ -# pragma warning (disable:4305) /* VC++ 5.0 version of above warning. */ -# endif - -/* Win32 has an annoying issue where there are multiple C run-time - libraries (CRTs). If the executable is linked with a different CRT - from the GLUT DLL, the GLUT DLL will not share the same CRT static - data seen by the executable. In particular, atexit callbacks registered - in the executable will not be called if GLUT calls its (different) - exit routine). GLUT is typically built with the - "/MD" option (the CRT with multithreading DLL support), but the Visual - C++ linker default is "/ML" (the single threaded CRT). - - One workaround to this issue is requiring users to always link with - the same CRT as GLUT is compiled with. That requires users supply a - non-standard option. GLUT 3.7 has its own built-in workaround where - the executable's "exit" function pointer is covertly passed to GLUT. - GLUT then calls the executable's exit function pointer to ensure that - any "atexit" calls registered by the application are called if GLUT - needs to exit. - - Note that the __glut*WithExit routines should NEVER be called directly. - To avoid the atexit workaround, #define GLUT_DISABLE_ATEXIT_HACK. */ - -/* XXX This is from Win32's */ -# if !defined(_MSC_VER) && !defined(__MINGW32__) && !defined(__cdecl) - /* Define __cdecl for non-Microsoft compilers. */ -# define __cdecl -# define GLUT_DEFINED___CDECL -# endif -# ifndef _CRTIMP -# ifdef _NTSDK - /* Definition compatible with NT SDK */ -# define _CRTIMP -# else - /* Current definition */ -# ifdef _DLL -# define _CRTIMP __declspec(dllimport) -# else -# define _CRTIMP -# endif -# endif -# define GLUT_DEFINED__CRTIMP -# endif -# ifndef GLUT_BUILDING_LIB -extern _CRTIMP void __cdecl exit(int); -# endif - -/* GLUT callback calling convention for Win32. */ -# define GLUTCALLBACK __cdecl - -/* for callback/function pointer defs */ -# define GLUTAPIENTRYV __cdecl - -/* glut-win32 specific macros, defined to prevent collision with - and redifinition of Windows system defs, also removes requirement of - pretty much any standard windows header from this file */ - -#if (_MSC_VER >= 800) || defined(__MINGW32__) || defined(_STDCALL_SUPPORTED) || defined(__CYGWIN32__) -# define GLUTAPIENTRY __stdcall -#else -# define GLUTAPIENTRY -#endif - -/* GLUT API entry point declarations for Win32. */ -#if defined(GLUT_BUILDING_LIB) && defined(_DLL) -# define GLUTAPI __declspec(dllexport) -#elif defined(_DLL) -# define GLUTAPI __declspec(dllimport) -#else -# define GLUTAPI extern -#endif - -#if defined(_WIN32) && !defined(_WINDEF_) && !defined(MESA) -# if !defined(MESA_MINWARN) -# pragma message( "note: WINDOWS.H not included, providing Mesa definition of CALLBACK macro" ) -# pragma message( "----: and PROC typedef. If you receive compiler warnings about either ") -# pragma message( "----: being multiply defined you should include WINDOWS.H priot to gl/glut.h" ) -# endif -# define CALLBACK __stdcall -typedef int (GLUTAPIENTRY *PROC)(); -typedef void *HGLRC; -typedef void *HDC; -typedef unsigned long COLORREF; -#endif - -#if defined(_WIN32) && !defined(_WINGDI_) && !defined(MESA) -# if !defined(MESA_MINWARN) -# pragma message( "note: WINDOWS.H not included, providing Mesa definition of wgl functions" ) -# pragma message( "----: and macros. If you receive compiler warnings about any being multiply ") -# pragma message( "----: defined you should include WINDOWS.H priot to gl/glut.h" ) -# endif -# define WGL_FONT_LINES 0 -# define WGL_FONT_POLYGONS 1 -# ifdef UNICODE -# define wglUseFontBitmaps wglUseFontBitmapsW -# define wglUseFontOutlines wglUseFontOutlinesW -# else -# define wglUseFontBitmaps wglUseFontBitmapsA -# define wglUseFontOutlines wglUseFontOutlinesA -# endif /* !UNICODE */ -typedef struct tagLAYERPLANEDESCRIPTOR LAYERPLANEDESCRIPTOR, *PLAYERPLANEDESCRIPTOR, *LPLAYERPLANEDESCRIPTOR; -typedef struct _GLYPHMETRICSFLOAT GLYPHMETRICSFLOAT, *PGLYPHMETRICSFLOAT, *LPGLYPHMETRICSFLOAT; -# pragma warning( push ) -# pragma warning( disable : 4273 ) /* 'function' : inconsistent DLL linkage. dllexport assumed. */ -# define WGLAPI __declspec(dllimport) -WGLAPI int GLAPIENTRY wglDeleteContext(HGLRC); -WGLAPI int GLAPIENTRY wglMakeCurrent(HDC,HGLRC); -WGLAPI int GLAPIENTRY wglSetPixelFormat(HDC, int, const PIXELFORMATDESCRIPTOR *); -WGLAPI int GLAPIENTRY wglSwapBuffers(HDC hdc); -WGLAPI HDC GLAPIENTRY wglGetCurrentDC(void); -WGLAPI HGLRC GLAPIENTRY wglCreateContext(HDC); -WGLAPI HGLRC GLAPIENTRY wglCreateLayerContext(HDC,int); -WGLAPI HGLRC GLAPIENTRY wglGetCurrentContext(void); -WGLAPI PROC GLAPIENTRY wglGetProcAddress(const char*); -WGLAPI int GLAPIENTRY wglChoosePixelFormat(HDC, const PIXELFORMATDESCRIPTOR *); -WGLAPI int GLAPIENTRY wglCopyContext(HGLRC, HGLRC, unsigned int); -WGLAPI int GLAPIENTRY wglDeleteContext(HGLRC); -WGLAPI int GLAPIENTRY wglDescribeLayerPlane(HDC, int, int, unsigned int,LPLAYERPLANEDESCRIPTOR); -WGLAPI int GLAPIENTRY wglDescribePixelFormat(HDC,int, unsigned int, LPPIXELFORMATDESCRIPTOR); -WGLAPI int GLAPIENTRY wglGetLayerPaletteEntries(HDC, int, int, int,COLORREF *); -WGLAPI int GLAPIENTRY wglGetPixelFormat(HDC hdc); -WGLAPI int GLAPIENTRY wglMakeCurrent(HDC, HGLRC); -WGLAPI int GLAPIENTRY wglRealizeLayerPalette(HDC, int, int); -WGLAPI int GLAPIENTRY wglSetLayerPaletteEntries(HDC, int, int, int,const COLORREF *); -WGLAPI int GLAPIENTRY wglShareLists(HGLRC, HGLRC); -WGLAPI int GLAPIENTRY wglSwapLayerBuffers(HDC, unsigned int); -WGLAPI int GLAPIENTRY wglUseFontBitmapsA(HDC, unsigned long, unsigned long, unsigned long); -WGLAPI int GLAPIENTRY wglUseFontBitmapsW(HDC, unsigned long, unsigned long, unsigned long); -WGLAPI int GLAPIENTRY wglUseFontOutlinesA(HDC, unsigned long, unsigned long, unsigned long, float,float, int, LPGLYPHMETRICSFLOAT); -WGLAPI int GLAPIENTRY wglUseFontOutlinesW(HDC, unsigned long, unsigned long, unsigned long, float,float, int, LPGLYPHMETRICSFLOAT); -WGLAPI int GLAPIENTRY SwapBuffers(HDC); -WGLAPI int GLAPIENTRY ChoosePixelFormat(HDC,const PIXELFORMATDESCRIPTOR *); -WGLAPI int GLAPIENTRY DescribePixelFormat(HDC,int,unsigned int,LPPIXELFORMATDESCRIPTOR); -WGLAPI int GLAPIENTRY GetPixelFormat(HDC); -WGLAPI int GLAPIENTRY SetPixelFormat(HDC,int,const PIXELFORMATDESCRIPTOR *); -# undef WGLAPI -# pragma warning( pop ) -#endif - -#else /* _WIN32 not defined */ - -/* Define GLUTAPIENTRY and GLUTCALLBACK to nothing if we aren't on Win32. */ -# define GLUTAPIENTRY GLAPIENTRY -# define GLUTAPIENTRYV -# define GLUTCALLBACK -# define GLUTAPI extern - -#endif - - -/** - GLUT API revision history: - - GLUT_API_VERSION is updated to reflect incompatible GLUT - API changes (interface changes, semantic changes, deletions, - or additions). - - GLUT_API_VERSION=1 First public release of GLUT. 11/29/94 - - GLUT_API_VERSION=2 Added support for OpenGL/GLX multisampling, - extension. Supports new input devices like tablet, dial and button - box, and Spaceball. Easy to query OpenGL extensions. - - GLUT_API_VERSION=3 glutMenuStatus added. - - GLUT_API_VERSION=4 glutInitDisplayString, glutWarpPointer, - glutBitmapLength, glutStrokeLength, glutWindowStatusFunc, dynamic - video resize subAPI, glutPostWindowRedisplay, glutKeyboardUpFunc, - glutSpecialUpFunc, glutIgnoreKeyRepeat, glutSetKeyRepeat, - glutJoystickFunc, glutForceJoystickFunc (NOT FINALIZED!). - - GLUT_API_VERSION=5 glutGetProcAddress (added by BrianP) -**/ -#ifndef GLUT_API_VERSION /* allow this to be overriden */ -#define GLUT_API_VERSION 5 -#endif - -/** - GLUT implementation revision history: - - GLUT_XLIB_IMPLEMENTATION is updated to reflect both GLUT - API revisions and implementation revisions (ie, bug fixes). - - GLUT_XLIB_IMPLEMENTATION=1 mjk's first public release of - GLUT Xlib-based implementation. 11/29/94 - - GLUT_XLIB_IMPLEMENTATION=2 mjk's second public release of - GLUT Xlib-based implementation providing GLUT version 2 - interfaces. - - GLUT_XLIB_IMPLEMENTATION=3 mjk's GLUT 2.2 images. 4/17/95 - - GLUT_XLIB_IMPLEMENTATION=4 mjk's GLUT 2.3 images. 6/?/95 - - GLUT_XLIB_IMPLEMENTATION=5 mjk's GLUT 3.0 images. 10/?/95 - - GLUT_XLIB_IMPLEMENTATION=7 mjk's GLUT 3.1+ with glutWarpPoitner. 7/24/96 - - GLUT_XLIB_IMPLEMENTATION=8 mjk's GLUT 3.1+ with glutWarpPoitner - and video resize. 1/3/97 - - GLUT_XLIB_IMPLEMENTATION=9 mjk's GLUT 3.4 release with early GLUT 4 routines. - - GLUT_XLIB_IMPLEMENTATION=11 Mesa 2.5's GLUT 3.6 release. - - GLUT_XLIB_IMPLEMENTATION=12 mjk's GLUT 3.6 release with early GLUT 4 routines + signal handling. - - GLUT_XLIB_IMPLEMENTATION=13 mjk's GLUT 3.7 beta with GameGLUT support. - - GLUT_XLIB_IMPLEMENTATION=14 mjk's GLUT 3.7 beta with f90gl friend interface. - - GLUT_XLIB_IMPLEMENTATION=15 mjk's GLUT 3.7 beta sync'ed with Mesa -**/ -#ifndef GLUT_XLIB_IMPLEMENTATION /* Allow this to be overriden. */ -#define GLUT_XLIB_IMPLEMENTATION 15 -#endif - -/* Display mode bit masks. */ -#define GLUT_RGB 0 -#define GLUT_RGBA GLUT_RGB -#define GLUT_INDEX 1 -#define GLUT_SINGLE 0 -#define GLUT_DOUBLE 2 -#define GLUT_ACCUM 4 -#define GLUT_ALPHA 8 -#define GLUT_DEPTH 16 -#define GLUT_STENCIL 32 -#if (GLUT_API_VERSION >= 2) -#define GLUT_MULTISAMPLE 128 -#define GLUT_STEREO 256 -#endif -#if (GLUT_API_VERSION >= 3) -#define GLUT_LUMINANCE 512 -#endif - -/* Mouse buttons. */ -#define GLUT_LEFT_BUTTON 0 -#define GLUT_MIDDLE_BUTTON 1 -#define GLUT_RIGHT_BUTTON 2 - -/* Mouse button state. */ -#define GLUT_DOWN 0 -#define GLUT_UP 1 - -#if (GLUT_API_VERSION >= 2) -/* function keys */ -#define GLUT_KEY_F1 1 -#define GLUT_KEY_F2 2 -#define GLUT_KEY_F3 3 -#define GLUT_KEY_F4 4 -#define GLUT_KEY_F5 5 -#define GLUT_KEY_F6 6 -#define GLUT_KEY_F7 7 -#define GLUT_KEY_F8 8 -#define GLUT_KEY_F9 9 -#define GLUT_KEY_F10 10 -#define GLUT_KEY_F11 11 -#define GLUT_KEY_F12 12 -/* directional keys */ -#define GLUT_KEY_LEFT 100 -#define GLUT_KEY_UP 101 -#define GLUT_KEY_RIGHT 102 -#define GLUT_KEY_DOWN 103 -#define GLUT_KEY_PAGE_UP 104 -#define GLUT_KEY_PAGE_DOWN 105 -#define GLUT_KEY_HOME 106 -#define GLUT_KEY_END 107 -#define GLUT_KEY_INSERT 108 -#endif - -/* Entry/exit state. */ -#define GLUT_LEFT 0 -#define GLUT_ENTERED 1 - -/* Menu usage state. */ -#define GLUT_MENU_NOT_IN_USE 0 -#define GLUT_MENU_IN_USE 1 - -/* Visibility state. */ -#define GLUT_NOT_VISIBLE 0 -#define GLUT_VISIBLE 1 - -/* Window status state. */ -#define GLUT_HIDDEN 0 -#define GLUT_FULLY_RETAINED 1 -#define GLUT_PARTIALLY_RETAINED 2 -#define GLUT_FULLY_COVERED 3 - -/* Color index component selection values. */ -#define GLUT_RED 0 -#define GLUT_GREEN 1 -#define GLUT_BLUE 2 - -/* Layers for use. */ -#define GLUT_NORMAL 0 -#define GLUT_OVERLAY 1 - -#if defined(_WIN32) || defined (GLUT_IMPORT_LIB) -/* Stroke font constants (use these in GLUT program). */ -#define GLUT_STROKE_ROMAN ((void*)0) -#define GLUT_STROKE_MONO_ROMAN ((void*)1) - -/* Bitmap font constants (use these in GLUT program). */ -#define GLUT_BITMAP_9_BY_15 ((void*)2) -#define GLUT_BITMAP_8_BY_13 ((void*)3) -#define GLUT_BITMAP_TIMES_ROMAN_10 ((void*)4) -#define GLUT_BITMAP_TIMES_ROMAN_24 ((void*)5) -#if (GLUT_API_VERSION >= 3) -#define GLUT_BITMAP_HELVETICA_10 ((void*)6) -#define GLUT_BITMAP_HELVETICA_12 ((void*)7) -#define GLUT_BITMAP_HELVETICA_18 ((void*)8) -#endif -#else -/* Stroke font opaque addresses (use constants instead in source code). */ -GLUTAPI void *glutStrokeRoman; -GLUTAPI void *glutStrokeMonoRoman; - -/* Stroke font constants (use these in GLUT program). */ -#define GLUT_STROKE_ROMAN (&glutStrokeRoman) -#define GLUT_STROKE_MONO_ROMAN (&glutStrokeMonoRoman) - -/* Bitmap font opaque addresses (use constants instead in source code). */ -GLUTAPI void *glutBitmap9By15; -GLUTAPI void *glutBitmap8By13; -GLUTAPI void *glutBitmapTimesRoman10; -GLUTAPI void *glutBitmapTimesRoman24; -GLUTAPI void *glutBitmapHelvetica10; -GLUTAPI void *glutBitmapHelvetica12; -GLUTAPI void *glutBitmapHelvetica18; - -/* Bitmap font constants (use these in GLUT program). */ -#define GLUT_BITMAP_9_BY_15 (&glutBitmap9By15) -#define GLUT_BITMAP_8_BY_13 (&glutBitmap8By13) -#define GLUT_BITMAP_TIMES_ROMAN_10 (&glutBitmapTimesRoman10) -#define GLUT_BITMAP_TIMES_ROMAN_24 (&glutBitmapTimesRoman24) -#if (GLUT_API_VERSION >= 3) -#define GLUT_BITMAP_HELVETICA_10 (&glutBitmapHelvetica10) -#define GLUT_BITMAP_HELVETICA_12 (&glutBitmapHelvetica12) -#define GLUT_BITMAP_HELVETICA_18 (&glutBitmapHelvetica18) -#endif -#endif - -/* glutGet parameters. */ -#define GLUT_WINDOW_X 100 -#define GLUT_WINDOW_Y 101 -#define GLUT_WINDOW_WIDTH 102 -#define GLUT_WINDOW_HEIGHT 103 -#define GLUT_WINDOW_BUFFER_SIZE 104 -#define GLUT_WINDOW_STENCIL_SIZE 105 -#define GLUT_WINDOW_DEPTH_SIZE 106 -#define GLUT_WINDOW_RED_SIZE 107 -#define GLUT_WINDOW_GREEN_SIZE 108 -#define GLUT_WINDOW_BLUE_SIZE 109 -#define GLUT_WINDOW_ALPHA_SIZE 110 -#define GLUT_WINDOW_ACCUM_RED_SIZE 111 -#define GLUT_WINDOW_ACCUM_GREEN_SIZE 112 -#define GLUT_WINDOW_ACCUM_BLUE_SIZE 113 -#define GLUT_WINDOW_ACCUM_ALPHA_SIZE 114 -#define GLUT_WINDOW_DOUBLEBUFFER 115 -#define GLUT_WINDOW_RGBA 116 -#define GLUT_WINDOW_PARENT 117 -#define GLUT_WINDOW_NUM_CHILDREN 118 -#define GLUT_WINDOW_COLORMAP_SIZE 119 -#if (GLUT_API_VERSION >= 2) -#define GLUT_WINDOW_NUM_SAMPLES 120 -#define GLUT_WINDOW_STEREO 121 -#endif -#if (GLUT_API_VERSION >= 3) -#define GLUT_WINDOW_CURSOR 122 -#endif -#define GLUT_SCREEN_WIDTH 200 -#define GLUT_SCREEN_HEIGHT 201 -#define GLUT_SCREEN_WIDTH_MM 202 -#define GLUT_SCREEN_HEIGHT_MM 203 -#define GLUT_MENU_NUM_ITEMS 300 -#define GLUT_DISPLAY_MODE_POSSIBLE 400 -#define GLUT_INIT_WINDOW_X 500 -#define GLUT_INIT_WINDOW_Y 501 -#define GLUT_INIT_WINDOW_WIDTH 502 -#define GLUT_INIT_WINDOW_HEIGHT 503 -#define GLUT_INIT_DISPLAY_MODE 504 -#if (GLUT_API_VERSION >= 2) -#define GLUT_ELAPSED_TIME 700 -#endif -#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13) -#define GLUT_WINDOW_FORMAT_ID 123 -#endif - -#if (GLUT_API_VERSION >= 2) -/* glutDeviceGet parameters. */ -#define GLUT_HAS_KEYBOARD 600 -#define GLUT_HAS_MOUSE 601 -#define GLUT_HAS_SPACEBALL 602 -#define GLUT_HAS_DIAL_AND_BUTTON_BOX 603 -#define GLUT_HAS_TABLET 604 -#define GLUT_NUM_MOUSE_BUTTONS 605 -#define GLUT_NUM_SPACEBALL_BUTTONS 606 -#define GLUT_NUM_BUTTON_BOX_BUTTONS 607 -#define GLUT_NUM_DIALS 608 -#define GLUT_NUM_TABLET_BUTTONS 609 -#endif -#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13) -#define GLUT_DEVICE_IGNORE_KEY_REPEAT 610 -#define GLUT_DEVICE_KEY_REPEAT 611 -#define GLUT_HAS_JOYSTICK 612 -#define GLUT_OWNS_JOYSTICK 613 -#define GLUT_JOYSTICK_BUTTONS 614 -#define GLUT_JOYSTICK_AXES 615 -#define GLUT_JOYSTICK_POLL_RATE 616 -#endif - -#if (GLUT_API_VERSION >= 3) -/* glutLayerGet parameters. */ -#define GLUT_OVERLAY_POSSIBLE 800 -#define GLUT_LAYER_IN_USE 801 -#define GLUT_HAS_OVERLAY 802 -#define GLUT_TRANSPARENT_INDEX 803 -#define GLUT_NORMAL_DAMAGED 804 -#define GLUT_OVERLAY_DAMAGED 805 - -#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) -/* glutVideoResizeGet parameters. */ -#define GLUT_VIDEO_RESIZE_POSSIBLE 900 -#define GLUT_VIDEO_RESIZE_IN_USE 901 -#define GLUT_VIDEO_RESIZE_X_DELTA 902 -#define GLUT_VIDEO_RESIZE_Y_DELTA 903 -#define GLUT_VIDEO_RESIZE_WIDTH_DELTA 904 -#define GLUT_VIDEO_RESIZE_HEIGHT_DELTA 905 -#define GLUT_VIDEO_RESIZE_X 906 -#define GLUT_VIDEO_RESIZE_Y 907 -#define GLUT_VIDEO_RESIZE_WIDTH 908 -#define GLUT_VIDEO_RESIZE_HEIGHT 909 -#endif - -/* glutUseLayer parameters. */ -#define GLUT_NORMAL 0 -#define GLUT_OVERLAY 1 - -/* glutGetModifiers return mask. */ -#define GLUT_ACTIVE_SHIFT 1 -#define GLUT_ACTIVE_CTRL 2 -#define GLUT_ACTIVE_ALT 4 - -/* glutSetCursor parameters. */ -/* Basic arrows. */ -#define GLUT_CURSOR_RIGHT_ARROW 0 -#define GLUT_CURSOR_LEFT_ARROW 1 -/* Symbolic cursor shapes. */ -#define GLUT_CURSOR_INFO 2 -#define GLUT_CURSOR_DESTROY 3 -#define GLUT_CURSOR_HELP 4 -#define GLUT_CURSOR_CYCLE 5 -#define GLUT_CURSOR_SPRAY 6 -#define GLUT_CURSOR_WAIT 7 -#define GLUT_CURSOR_TEXT 8 -#define GLUT_CURSOR_CROSSHAIR 9 -/* Directional cursors. */ -#define GLUT_CURSOR_UP_DOWN 10 -#define GLUT_CURSOR_LEFT_RIGHT 11 -/* Sizing cursors. */ -#define GLUT_CURSOR_TOP_SIDE 12 -#define GLUT_CURSOR_BOTTOM_SIDE 13 -#define GLUT_CURSOR_LEFT_SIDE 14 -#define GLUT_CURSOR_RIGHT_SIDE 15 -#define GLUT_CURSOR_TOP_LEFT_CORNER 16 -#define GLUT_CURSOR_TOP_RIGHT_CORNER 17 -#define GLUT_CURSOR_BOTTOM_RIGHT_CORNER 18 -#define GLUT_CURSOR_BOTTOM_LEFT_CORNER 19 -/* Inherit from parent window. */ -#define GLUT_CURSOR_INHERIT 100 -/* Blank cursor. */ -#define GLUT_CURSOR_NONE 101 -/* Fullscreen crosshair (if available). */ -#define GLUT_CURSOR_FULL_CROSSHAIR 102 -#endif - -/* GLUT initialization sub-API. */ -GLUTAPI void GLUTAPIENTRY glutInit(int *argcp, char **argv); -#if defined(_WIN32) && !defined(GLUT_DISABLE_ATEXIT_HACK) -GLUTAPI void GLUTAPIENTRY __glutInitWithExit(int *argcp, char **argv, void (__cdecl *exitfunc)(int)); -#ifndef GLUT_BUILDING_LIB -static void GLUTAPIENTRY glutInit_ATEXIT_HACK(int *argcp, char **argv) { __glutInitWithExit(argcp, argv, exit); } -#define glutInit glutInit_ATEXIT_HACK -#endif -#endif -GLUTAPI void GLUTAPIENTRY glutInitDisplayMode(unsigned int mode); -#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) -GLUTAPI void GLUTAPIENTRY glutInitDisplayString(const char *string); -#endif -GLUTAPI void GLUTAPIENTRY glutInitWindowPosition(int x, int y); -GLUTAPI void GLUTAPIENTRY glutInitWindowSize(int width, int height); -GLUTAPI void GLUTAPIENTRY glutMainLoop(void); - -/* GLUT window sub-API. */ -GLUTAPI int GLUTAPIENTRY glutCreateWindow(const char *title); -#if defined(_WIN32) && !defined(GLUT_DISABLE_ATEXIT_HACK) -GLUTAPI int GLUTAPIENTRY __glutCreateWindowWithExit(const char *title, void (__cdecl *exitfunc)(int)); -#ifndef GLUT_BUILDING_LIB -static int GLUTAPIENTRY glutCreateWindow_ATEXIT_HACK(const char *title) { return __glutCreateWindowWithExit(title, exit); } -#define glutCreateWindow glutCreateWindow_ATEXIT_HACK -#endif -#endif -GLUTAPI int GLUTAPIENTRY glutCreateSubWindow(int win, int x, int y, int width, int height); -GLUTAPI void GLUTAPIENTRY glutDestroyWindow(int win); -GLUTAPI void GLUTAPIENTRY glutPostRedisplay(void); -#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 11) -GLUTAPI void GLUTAPIENTRY glutPostWindowRedisplay(int win); -#endif -GLUTAPI void GLUTAPIENTRY glutSwapBuffers(void); -GLUTAPI int GLUTAPIENTRY glutGetWindow(void); -GLUTAPI void GLUTAPIENTRY glutSetWindow(int win); -GLUTAPI void GLUTAPIENTRY glutSetWindowTitle(const char *title); -GLUTAPI void GLUTAPIENTRY glutSetIconTitle(const char *title); -GLUTAPI void GLUTAPIENTRY glutPositionWindow(int x, int y); -GLUTAPI void GLUTAPIENTRY glutReshapeWindow(int width, int height); -GLUTAPI void GLUTAPIENTRY glutPopWindow(void); -GLUTAPI void GLUTAPIENTRY glutPushWindow(void); -GLUTAPI void GLUTAPIENTRY glutIconifyWindow(void); -GLUTAPI void GLUTAPIENTRY glutShowWindow(void); -GLUTAPI void GLUTAPIENTRY glutHideWindow(void); -#if (GLUT_API_VERSION >= 3) -GLUTAPI void GLUTAPIENTRY glutFullScreen(void); -GLUTAPI void GLUTAPIENTRY glutSetCursor(int cursor); -#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) -GLUTAPI void GLUTAPIENTRY glutWarpPointer(int x, int y); -#endif - -/* GLUT overlay sub-API. */ -GLUTAPI void GLUTAPIENTRY glutEstablishOverlay(void); -GLUTAPI void GLUTAPIENTRY glutRemoveOverlay(void); -GLUTAPI void GLUTAPIENTRY glutUseLayer(GLenum layer); -GLUTAPI void GLUTAPIENTRY glutPostOverlayRedisplay(void); -#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 11) -GLUTAPI void GLUTAPIENTRY glutPostWindowOverlayRedisplay(int win); -#endif -GLUTAPI void GLUTAPIENTRY glutShowOverlay(void); -GLUTAPI void GLUTAPIENTRY glutHideOverlay(void); -#endif - -/* GLUT menu sub-API. */ -GLUTAPI int GLUTAPIENTRY glutCreateMenu(void (GLUTCALLBACK *func)(int)); -#if defined(_WIN32) && !defined(GLUT_DISABLE_ATEXIT_HACK) -GLUTAPI int GLUTAPIENTRY __glutCreateMenuWithExit(void (GLUTCALLBACK *func)(int), void (__cdecl *exitfunc)(int)); -#ifndef GLUT_BUILDING_LIB -static int GLUTAPIENTRY glutCreateMenu_ATEXIT_HACK(void (GLUTCALLBACK *func)(int)) { return __glutCreateMenuWithExit(func, exit); } -#define glutCreateMenu glutCreateMenu_ATEXIT_HACK -#endif -#endif -GLUTAPI void GLUTAPIENTRY glutDestroyMenu(int menu); -GLUTAPI int GLUTAPIENTRY glutGetMenu(void); -GLUTAPI void GLUTAPIENTRY glutSetMenu(int menu); -GLUTAPI void GLUTAPIENTRY glutAddMenuEntry(const char *label, int value); -GLUTAPI void GLUTAPIENTRY glutAddSubMenu(const char *label, int submenu); -GLUTAPI void GLUTAPIENTRY glutChangeToMenuEntry(int item, const char *label, int value); -GLUTAPI void GLUTAPIENTRY glutChangeToSubMenu(int item, const char *label, int submenu); -GLUTAPI void GLUTAPIENTRY glutRemoveMenuItem(int item); -GLUTAPI void GLUTAPIENTRY glutAttachMenu(int button); -GLUTAPI void GLUTAPIENTRY glutDetachMenu(int button); - -/* GLUT window callback sub-API. */ -GLUTAPI void GLUTAPIENTRY glutDisplayFunc(void (GLUTCALLBACK *func)(void)); -GLUTAPI void GLUTAPIENTRY glutReshapeFunc(void (GLUTCALLBACK *func)(int width, int height)); -GLUTAPI void GLUTAPIENTRY glutKeyboardFunc(void (GLUTCALLBACK *func)(unsigned char key, int x, int y)); -GLUTAPI void GLUTAPIENTRY glutMouseFunc(void (GLUTCALLBACK *func)(int button, int state, int x, int y)); -GLUTAPI void GLUTAPIENTRY glutMotionFunc(void (GLUTCALLBACK *func)(int x, int y)); -GLUTAPI void GLUTAPIENTRY glutPassiveMotionFunc(void (GLUTCALLBACK *func)(int x, int y)); -GLUTAPI void GLUTAPIENTRY glutEntryFunc(void (GLUTCALLBACK *func)(int state)); -GLUTAPI void GLUTAPIENTRY glutVisibilityFunc(void (GLUTCALLBACK *func)(int state)); -GLUTAPI void GLUTAPIENTRY glutIdleFunc(void (GLUTCALLBACK *func)(void)); -GLUTAPI void GLUTAPIENTRY glutTimerFunc(unsigned int millis, void (GLUTCALLBACK *func)(int value), int value); -GLUTAPI void GLUTAPIENTRY glutMenuStateFunc(void (GLUTCALLBACK *func)(int state)); -#if (GLUT_API_VERSION >= 2) -GLUTAPI void GLUTAPIENTRY glutSpecialFunc(void (GLUTCALLBACK *func)(int key, int x, int y)); -GLUTAPI void GLUTAPIENTRY glutSpaceballMotionFunc(void (GLUTCALLBACK *func)(int x, int y, int z)); -GLUTAPI void GLUTAPIENTRY glutSpaceballRotateFunc(void (GLUTCALLBACK *func)(int x, int y, int z)); -GLUTAPI void GLUTAPIENTRY glutSpaceballButtonFunc(void (GLUTCALLBACK *func)(int button, int state)); -GLUTAPI void GLUTAPIENTRY glutButtonBoxFunc(void (GLUTCALLBACK *func)(int button, int state)); -GLUTAPI void GLUTAPIENTRY glutDialsFunc(void (GLUTCALLBACK *func)(int dial, int value)); -GLUTAPI void GLUTAPIENTRY glutTabletMotionFunc(void (GLUTCALLBACK *func)(int x, int y)); -GLUTAPI void GLUTAPIENTRY glutTabletButtonFunc(void (GLUTCALLBACK *func)(int button, int state, int x, int y)); -#if (GLUT_API_VERSION >= 3) -GLUTAPI void GLUTAPIENTRY glutMenuStatusFunc(void (GLUTCALLBACK *func)(int status, int x, int y)); -GLUTAPI void GLUTAPIENTRY glutOverlayDisplayFunc(void (GLUTCALLBACK *func)(void)); -#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) -GLUTAPI void GLUTAPIENTRY glutWindowStatusFunc(void (GLUTCALLBACK *func)(int state)); -#endif -#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13) -GLUTAPI void GLUTAPIENTRY glutKeyboardUpFunc(void (GLUTCALLBACK *func)(unsigned char key, int x, int y)); -GLUTAPI void GLUTAPIENTRY glutSpecialUpFunc(void (GLUTCALLBACK *func)(int key, int x, int y)); -GLUTAPI void GLUTAPIENTRY glutJoystickFunc(void (GLUTCALLBACK *func)(unsigned int buttonMask, int x, int y, int z), int pollInterval); -#endif -#endif -#endif - -/* GLUT color index sub-API. */ -GLUTAPI void GLUTAPIENTRY glutSetColor(int ndx, GLfloat red, GLfloat green, GLfloat blue); -GLUTAPI GLfloat GLUTAPIENTRY glutGetColor(int ndx, int component); -GLUTAPI void GLUTAPIENTRY glutCopyColormap(int win); - -/* GLUT state retrieval sub-API. */ -GLUTAPI int GLUTAPIENTRY glutGet(GLenum type); -GLUTAPI int GLUTAPIENTRY glutDeviceGet(GLenum type); -#if (GLUT_API_VERSION >= 2) -/* GLUT extension support sub-API */ -GLUTAPI int GLUTAPIENTRY glutExtensionSupported(const char *name); -#endif -#if (GLUT_API_VERSION >= 3) -GLUTAPI int GLUTAPIENTRY glutGetModifiers(void); -GLUTAPI int GLUTAPIENTRY glutLayerGet(GLenum type); -#endif -#if (GLUT_API_VERSION >= 5) -typedef void (*GLUTproc)(); -GLUTAPI GLUTproc GLUTAPIENTRY glutGetProcAddress(const char *procName); -#endif - -/* GLUT font sub-API */ -GLUTAPI void GLUTAPIENTRY glutBitmapCharacter(void *font, int character); -GLUTAPI int GLUTAPIENTRY glutBitmapWidth(void *font, int character); -GLUTAPI void GLUTAPIENTRY glutStrokeCharacter(void *font, int character); -GLUTAPI int GLUTAPIENTRY glutStrokeWidth(void *font, int character); -#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) -GLUTAPI int GLUTAPIENTRY glutBitmapLength(void *font, const unsigned char *string); -GLUTAPI int GLUTAPIENTRY glutStrokeLength(void *font, const unsigned char *string); -#endif - -/* GLUT pre-built models sub-API */ -GLUTAPI void GLUTAPIENTRY glutWireSphere(GLdouble radius, GLint slices, GLint stacks); -GLUTAPI void GLUTAPIENTRY glutSolidSphere(GLdouble radius, GLint slices, GLint stacks); -GLUTAPI void GLUTAPIENTRY glutWireCone(GLdouble base, GLdouble height, GLint slices, GLint stacks); -GLUTAPI void GLUTAPIENTRY glutSolidCone(GLdouble base, GLdouble height, GLint slices, GLint stacks); -GLUTAPI void GLUTAPIENTRY glutWireCube(GLdouble size); -GLUTAPI void GLUTAPIENTRY glutSolidCube(GLdouble size); -GLUTAPI void GLUTAPIENTRY glutWireTorus(GLdouble innerRadius, GLdouble outerRadius, GLint sides, GLint rings); -GLUTAPI void GLUTAPIENTRY glutSolidTorus(GLdouble innerRadius, GLdouble outerRadius, GLint sides, GLint rings); -GLUTAPI void GLUTAPIENTRY glutWireDodecahedron(void); -GLUTAPI void GLUTAPIENTRY glutSolidDodecahedron(void); -GLUTAPI void GLUTAPIENTRY glutWireTeapot(GLdouble size); -GLUTAPI void GLUTAPIENTRY glutSolidTeapot(GLdouble size); -GLUTAPI void GLUTAPIENTRY glutWireOctahedron(void); -GLUTAPI void GLUTAPIENTRY glutSolidOctahedron(void); -GLUTAPI void GLUTAPIENTRY glutWireTetrahedron(void); -GLUTAPI void GLUTAPIENTRY glutSolidTetrahedron(void); -GLUTAPI void GLUTAPIENTRY glutWireIcosahedron(void); -GLUTAPI void GLUTAPIENTRY glutSolidIcosahedron(void); - -#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) -/* GLUT video resize sub-API. */ -GLUTAPI int GLUTAPIENTRY glutVideoResizeGet(GLenum param); -GLUTAPI void GLUTAPIENTRY glutSetupVideoResizing(void); -GLUTAPI void GLUTAPIENTRY glutStopVideoResizing(void); -GLUTAPI void GLUTAPIENTRY glutVideoResize(int x, int y, int width, int height); -GLUTAPI void GLUTAPIENTRY glutVideoPan(int x, int y, int width, int height); - -/* GLUT debugging sub-API. */ -GLUTAPI void GLUTAPIENTRY glutReportErrors(void); -#endif - -#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13) -/* GLUT device control sub-API. */ -/* glutSetKeyRepeat modes. */ -#define GLUT_KEY_REPEAT_OFF 0 -#define GLUT_KEY_REPEAT_ON 1 -#define GLUT_KEY_REPEAT_DEFAULT 2 - -/* Joystick button masks. */ -#define GLUT_JOYSTICK_BUTTON_A 1 -#define GLUT_JOYSTICK_BUTTON_B 2 -#define GLUT_JOYSTICK_BUTTON_C 4 -#define GLUT_JOYSTICK_BUTTON_D 8 - -GLUTAPI void GLUTAPIENTRY glutIgnoreKeyRepeat(int ignore); -GLUTAPI void GLUTAPIENTRY glutSetKeyRepeat(int repeatMode); -GLUTAPI void GLUTAPIENTRY glutForceJoystickFunc(void); - -/* GLUT game mode sub-API. */ -/* glutGameModeGet. */ -#define GLUT_GAME_MODE_ACTIVE 0 -#define GLUT_GAME_MODE_POSSIBLE 1 -#define GLUT_GAME_MODE_WIDTH 2 -#define GLUT_GAME_MODE_HEIGHT 3 -#define GLUT_GAME_MODE_PIXEL_DEPTH 4 -#define GLUT_GAME_MODE_REFRESH_RATE 5 -#define GLUT_GAME_MODE_DISPLAY_CHANGED 6 - -GLUTAPI void GLUTAPIENTRY glutGameModeString(const char *string); -GLUTAPI int GLUTAPIENTRY glutEnterGameMode(void); -GLUTAPI void GLUTAPIENTRY glutLeaveGameMode(void); -GLUTAPI int GLUTAPIENTRY glutGameModeGet(GLenum mode); -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* __glut_h__ */ diff --git a/nx-X11/extras/Mesa/include/GL/glut_h.dja b/nx-X11/extras/Mesa/include/GL/glut_h.dja deleted file mode 100644 index e76dcb985..000000000 --- a/nx-X11/extras/Mesa/include/GL/glut_h.dja +++ /dev/null @@ -1,340 +0,0 @@ - -/* - * Mesa 3-D graphics library - * Version: 3.1 - * Copyright (C) 1995-1998 Brian Paul - * - * This 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. - * - * This 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 this library; if not, write to the Free - * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - */ - - -/* - * This header file is based on the REAL glut.h by Mark J. Kilgard. - * - * The DJGPP/ALLEGRO (DJA) GLUT implementation was written by - * Bernhard Tschirren (bernie-t@geocities.com) for the sole purpose - * of compiling all the sample programs (which use GLUT). Therefore, - * is NOT AT ALL a complete version of GLUT! - */ - - -#ifndef __AGLUT_H__ -#define __AGLUT_H__ - -#include -#include - -#define GLUTCALLBACK -#define APIENTRY -#define GLUTAPI extern - -#define GLUT_RGB 0 -#define GLUT_RGBA GLUT_RGB -#define GLUT_INDEX 1 -#define GLUT_SINGLE 0 -#define GLUT_DOUBLE 2 -#define GLUT_ACCUM 4 -#define GLUT_ALPHA 8 -#define GLUT_DEPTH 16 -#define GLUT_STENCIL 32 - -/* Mouse buttons. */ -#define GLUT_LEFT_BUTTON 0 -#define GLUT_MIDDLE_BUTTON 1 -#define GLUT_RIGHT_BUTTON 2 - -/* Mouse button state. */ -#define GLUT_DOWN 0 -#define GLUT_UP 1 - -/* function keys */ -#define GLUT_KEY_F1 1 -#define GLUT_KEY_F2 2 -#define GLUT_KEY_F3 3 -#define GLUT_KEY_F4 4 -#define GLUT_KEY_F5 5 -#define GLUT_KEY_F6 6 -#define GLUT_KEY_F7 7 -#define GLUT_KEY_F8 8 -#define GLUT_KEY_F9 9 -#define GLUT_KEY_F10 10 -#define GLUT_KEY_F11 11 -#define GLUT_KEY_F12 12 - -/* directional keys */ -#define GLUT_KEY_LEFT 100 -#define GLUT_KEY_UP 101 -#define GLUT_KEY_RIGHT 102 -#define GLUT_KEY_DOWN 103 -#define GLUT_KEY_PAGE_UP 104 -#define GLUT_KEY_PAGE_DOWN 105 -#define GLUT_KEY_HOME 106 -#define GLUT_KEY_END 107 -#define GLUT_KEY_INSERT 108 - -/* Entry/exit state. */ -#define GLUT_LEFT 0 -#define GLUT_ENTERED 1 - -/* Visibility state. */ -#define GLUT_NOT_VISIBLE 0 -#define GLUT_VISIBLE 1 - -/* Color index component selection values. */ -#define GLUT_RED 0 -#define GLUT_GREEN 1 -#define GLUT_BLUE 2 - -/* Layers for use. */ -#define GLUT_NORMAL 0 -#define GLUT_OVERLAY 1 - -/* Stroke font constants (use these in GLUT program). */ -#define GLUT_STROKE_ROMAN ((void*)0) -#define GLUT_STROKE_MONO_ROMAN ((void*)1) - -/* Bitmap font constants (use these in GLUT program). */ -#define GLUT_BITMAP_9_BY_15 ((void*)2) -#define GLUT_BITMAP_8_BY_13 ((void*)3) -#define GLUT_BITMAP_TIMES_ROMAN_10 ((void*)4) -#define GLUT_BITMAP_TIMES_ROMAN_24 ((void*)5) -#define GLUT_BITMAP_HELVETICA_10 ((void*)6) -#define GLUT_BITMAP_HELVETICA_12 ((void*)7) -#define GLUT_BITMAP_HELVETICA_18 ((void*)8) - -/* glutGet parameters. */ -#define GLUT_WINDOW_X 100 -#define GLUT_WINDOW_Y 101 -#define GLUT_WINDOW_WIDTH 102 -#define GLUT_WINDOW_HEIGHT 103 -#define GLUT_WINDOW_BUFFER_SIZE 104 -#define GLUT_WINDOW_STENCIL_SIZE 105 -#define GLUT_WINDOW_DEPTH_SIZE 106 -#define GLUT_WINDOW_RED_SIZE 107 -#define GLUT_WINDOW_GREEN_SIZE 108 -#define GLUT_WINDOW_BLUE_SIZE 109 -#define GLUT_WINDOW_ALPHA_SIZE 110 -#define GLUT_WINDOW_ACCUM_RED_SIZE 111 -#define GLUT_WINDOW_ACCUM_GREEN_SIZE 112 -#define GLUT_WINDOW_ACCUM_BLUE_SIZE 113 -#define GLUT_WINDOW_ACCUM_ALPHA_SIZE 114 -#define GLUT_WINDOW_DOUBLEBUFFER 115 -#define GLUT_WINDOW_RGBA 116 -#define GLUT_WINDOW_PARENT 117 -#define GLUT_WINDOW_NUM_CHILDREN 118 -#define GLUT_WINDOW_COLORMAP_SIZE 119 -#define GLUT_WINDOW_NUM_SAMPLES 120 -#define GLUT_WINDOW_STEREO 121 -#define GLUT_WINDOW_CURSOR 122 -#define GLUT_SCREEN_WIDTH 200 -#define GLUT_SCREEN_HEIGHT 201 -#define GLUT_SCREEN_WIDTH_MM 202 -#define GLUT_SCREEN_HEIGHT_MM 203 -#define GLUT_MENU_NUM_ITEMS 300 -#define GLUT_DISPLAY_MODE_POSSIBLE 400 -#define GLUT_INIT_WINDOW_X 500 -#define GLUT_INIT_WINDOW_Y 501 -#define GLUT_INIT_WINDOW_WIDTH 502 -#define GLUT_INIT_WINDOW_HEIGHT 503 -#define GLUT_INIT_DISPLAY_MODE 504 -#define GLUT_ELAPSED_TIME 700 -#define GLUT_WINDOW_FORMAT_ID 123 - -/* glutDeviceGet parameters. */ -#define GLUT_HAS_KEYBOARD 600 -#define GLUT_HAS_MOUSE 601 -#define GLUT_HAS_SPACEBALL 602 -#define GLUT_HAS_DIAL_AND_BUTTON_BOX 603 -#define GLUT_HAS_TABLET 604 -#define GLUT_NUM_MOUSE_BUTTONS 605 -#define GLUT_NUM_SPACEBALL_BUTTONS 606 -#define GLUT_NUM_BUTTON_BOX_BUTTONS 607 -#define GLUT_NUM_DIALS 608 -#define GLUT_NUM_TABLET_BUTTONS 609 -#define GLUT_DEVICE_IGNORE_KEY_REPEAT 610 -#define GLUT_DEVICE_KEY_REPEAT 611 -#define GLUT_HAS_JOYSTICK 612 -#define GLUT_OWNS_JOYSTICK 613 -#define GLUT_JOYSTICK_BUTTONS 614 -#define GLUT_JOYSTICK_AXES 615 -#define GLUT_JOYSTICK_POLL_RATE 616 - -/* glutLayerGet parameters. */ -#define GLUT_OVERLAY_POSSIBLE 800 -#define GLUT_LAYER_IN_USE 801 -#define GLUT_HAS_OVERLAY 802 -#define GLUT_TRANSPARENT_INDEX 803 -#define GLUT_NORMAL_DAMAGED 804 -#define GLUT_OVERLAY_DAMAGED 805 - -/* glutVideoResizeGet parameters. */ -#define GLUT_VIDEO_RESIZE_POSSIBLE 900 -#define GLUT_VIDEO_RESIZE_IN_USE 901 -#define GLUT_VIDEO_RESIZE_X_DELTA 902 -#define GLUT_VIDEO_RESIZE_Y_DELTA 903 -#define GLUT_VIDEO_RESIZE_WIDTH_DELTA 904 -#define GLUT_VIDEO_RESIZE_HEIGHT_DELTA 905 -#define GLUT_VIDEO_RESIZE_X 906 -#define GLUT_VIDEO_RESIZE_Y 907 -#define GLUT_VIDEO_RESIZE_WIDTH 908 -#define GLUT_VIDEO_RESIZE_HEIGHT 909 - -/* glutUseLayer parameters. */ -#define GLUT_NORMAL 0 -#define GLUT_OVERLAY 1 - -/* glutGetModifiers return mask. */ -#define GLUT_ACTIVE_SHIFT 1 -#define GLUT_ACTIVE_CTRL 2 -#define GLUT_ACTIVE_ALT 4 - -/* glutSetCursor parameters. */ -/* Basic arrows. */ -#define GLUT_CURSOR_RIGHT_ARROW 0 -#define GLUT_CURSOR_LEFT_ARROW 1 -/* Symbolic cursor shapes. */ -#define GLUT_CURSOR_INFO 2 -#define GLUT_CURSOR_DESTROY 3 -#define GLUT_CURSOR_HELP 4 -#define GLUT_CURSOR_CYCLE 5 -#define GLUT_CURSOR_SPRAY 6 -#define GLUT_CURSOR_WAIT 7 -#define GLUT_CURSOR_TEXT 8 -#define GLUT_CURSOR_CROSSHAIR 9 -/* Directional cursors. */ -#define GLUT_CURSOR_UP_DOWN 10 -#define GLUT_CURSOR_LEFT_RIGHT 11 -/* Sizing cursors. */ -#define GLUT_CURSOR_TOP_SIDE 12 -#define GLUT_CURSOR_BOTTOM_SIDE 13 -#define GLUT_CURSOR_LEFT_SIDE 14 -#define GLUT_CURSOR_RIGHT_SIDE 15 -#define GLUT_CURSOR_TOP_LEFT_CORNER 16 -#define GLUT_CURSOR_TOP_RIGHT_CORNER 17 -#define GLUT_CURSOR_BOTTOM_RIGHT_CORNER 18 -#define GLUT_CURSOR_BOTTOM_LEFT_CORNER 19 -/* Inherit from parent window. */ -#define GLUT_CURSOR_INHERIT 100 -/* Blank cursor. */ -#define GLUT_CURSOR_NONE 101 -/* Fullscreen crosshair (if available). */ -#define GLUT_CURSOR_FULL_CROSSHAIR 102 - -/* GLUT initialization sub-API. */ -GLUTAPI void APIENTRY glutInit(int *argcp, char **argv); -GLUTAPI void APIENTRY glutInitDisplayMode(unsigned int mode); -GLUTAPI void APIENTRY glutInitWindowPosition(int x, int y); -GLUTAPI void APIENTRY glutInitWindowSize(int width, int height); -GLUTAPI void APIENTRY glutMainLoop(void); - -/* GLUT window sub-API. */ -GLUTAPI int APIENTRY glutCreateWindow(const char *title); -GLUTAPI int APIENTRY glutCreateSubWindow(int win, int x, int y, int width, int height); -GLUTAPI void APIENTRY glutDestroyWindow(int win); -GLUTAPI void APIENTRY glutPostRedisplay(void); -GLUTAPI void APIENTRY glutSwapBuffers(void); -GLUTAPI int APIENTRY glutGetWindow(void); -GLUTAPI void APIENTRY glutSetWindow(int win); -GLUTAPI void APIENTRY glutSetWindowTitle(const char *title); -GLUTAPI void APIENTRY glutSetIconTitle(const char *title); -GLUTAPI void APIENTRY glutPositionWindow(int x, int y); -GLUTAPI void APIENTRY glutReshapeWindow(int width, int height); -GLUTAPI void APIENTRY glutPopWindow(void); -GLUTAPI void APIENTRY glutPushWindow(void); -GLUTAPI void APIENTRY glutIconifyWindow(void); -GLUTAPI void APIENTRY glutShowWindow(void); -GLUTAPI void APIENTRY glutHideWindow(void); - -/* GLUT overlay sub-API. */ -GLUTAPI void APIENTRY glutEstablishOverlay(void); -GLUTAPI void APIENTRY glutRemoveOverlay(void); -GLUTAPI void APIENTRY glutUseLayer(GLenum layer); -GLUTAPI void APIENTRY glutPostOverlayRedisplay(void); -GLUTAPI void APIENTRY glutShowOverlay(void); -GLUTAPI void APIENTRY glutHideOverlay(void); - -/* GLUT menu sub-API. */ -GLUTAPI int APIENTRY glutCreateMenu(void (GLUTCALLBACK *)(int)); -GLUTAPI void APIENTRY glutDestroyMenu(int menu); -GLUTAPI int APIENTRY glutGetMenu(void); -GLUTAPI void APIENTRY glutSetMenu(int menu); -GLUTAPI void APIENTRY glutAddMenuEntry(const char *label, int value); -GLUTAPI void APIENTRY glutAddSubMenu(const char *label, int submenu); -GLUTAPI void APIENTRY glutChangeToMenuEntry(int item, const char *label, int value); -GLUTAPI void APIENTRY glutChangeToSubMenu(int item, const char *label, int submenu); -GLUTAPI void APIENTRY glutRemoveMenuItem(int item); -GLUTAPI void APIENTRY glutAttachMenu(int button); -GLUTAPI void APIENTRY glutDetachMenu(int button); - -/* GLUT window callback sub-API. */ -GLUTAPI void APIENTRY glutDisplayFunc(void (GLUTCALLBACK * func)(void)); -GLUTAPI void APIENTRY glutReshapeFunc(void (GLUTCALLBACK * func)(int width, int height)); -GLUTAPI void APIENTRY glutKeyboardFunc(void (GLUTCALLBACK * func)(unsigned char key, int x, int y)); -GLUTAPI void APIENTRY glutMouseFunc(void (GLUTCALLBACK * func)(int button, int state, int x, int y)); -GLUTAPI void APIENTRY glutMotionFunc(void (GLUTCALLBACK * func)(int x, int y)); -GLUTAPI void APIENTRY glutPassiveMotionFunc(void (GLUTCALLBACK * func)(int x, int y)); -GLUTAPI void APIENTRY glutEntryFunc(void (GLUTCALLBACK * func)(int state)); -GLUTAPI void APIENTRY glutVisibilityFunc(void (GLUTCALLBACK * func)(int state)); -GLUTAPI void APIENTRY glutIdleFunc(void (GLUTCALLBACK * func)(void)); -GLUTAPI void APIENTRY glutTimerFunc(unsigned int millis, void (GLUTCALLBACK * func)(int value), int value); -GLUTAPI void APIENTRY glutMenuStateFunc(void (GLUTCALLBACK * func)(int state)); -GLUTAPI void APIENTRY glutSpecialFunc(void (GLUTCALLBACK * func)(int key, int x, int y)); -GLUTAPI void APIENTRY glutSpaceballMotionFunc(void (GLUTCALLBACK * func)(int x, int y, int z)); -GLUTAPI void APIENTRY glutSpaceballRotateFunc(void (GLUTCALLBACK * func)(int x, int y, int z)); -GLUTAPI void APIENTRY glutSpaceballButtonFunc(void (GLUTCALLBACK * func)(int button, int state)); -GLUTAPI void APIENTRY glutButtonBoxFunc(void (GLUTCALLBACK * func)(int button, int state)); -GLUTAPI void APIENTRY glutDialsFunc(void (GLUTCALLBACK * func)(int dial, int value)); -GLUTAPI void APIENTRY glutTabletMotionFunc(void (GLUTCALLBACK * func)(int x, int y)); -GLUTAPI void APIENTRY glutTabletButtonFunc(void (GLUTCALLBACK * func)(int button, int state, int x, int y)); -GLUTAPI void APIENTRY glutMenuStatusFunc(void (GLUTCALLBACK * func)(int status, int x, int y)); -GLUTAPI void APIENTRY glutOverlayDisplayFunc(void (GLUTCALLBACK * func)(void)); -GLUTAPI void APIENTRY glutWindowStatusFunc(void (GLUTCALLBACK * func)(int state)); - -/* GLUT color index sub-API. */ -GLUTAPI void APIENTRY glutSetColor(int, GLfloat red, GLfloat green, GLfloat blue); -GLUTAPI GLfloat APIENTRY glutGetColor(int ndx, int component); -GLUTAPI void APIENTRY glutCopyColormap(int win); - -/* GLUT state retrieval sub-API. */ -GLUTAPI int APIENTRY glutGet(GLenum type); -GLUTAPI int APIENTRY glutDeviceGet(GLenum type); - -/* GLUT font sub-API */ -GLUTAPI void APIENTRY glutBitmapCharacter(void *font, int character); -GLUTAPI int APIENTRY glutBitmapWidth(void *font, int character); -GLUTAPI void APIENTRY glutStrokeCharacter(void *font, int character); -GLUTAPI int APIENTRY glutStrokeWidth(void *font, int character); - -/* GLUT pre-built models sub-API */ -GLUTAPI void APIENTRY glutWireSphere(GLdouble radius, GLint slices, GLint stacks); -GLUTAPI void APIENTRY glutSolidSphere(GLdouble radius, GLint slices, GLint stacks); -GLUTAPI void APIENTRY glutWireCone(GLdouble base, GLdouble height, GLint slices, GLint stacks); -GLUTAPI void APIENTRY glutSolidCone(GLdouble base, GLdouble height, GLint slices, GLint stacks); -GLUTAPI void APIENTRY glutWireCube(GLdouble size); -GLUTAPI void APIENTRY glutSolidCube(GLdouble size); -GLUTAPI void APIENTRY glutWireTorus(GLdouble innerRadius, GLdouble outerRadius, GLint sides, GLint rings); -GLUTAPI void APIENTRY glutSolidTorus(GLdouble innerRadius, GLdouble outerRadius, GLint sides, GLint rings); -GLUTAPI void APIENTRY glutWireDodecahedron(void); -GLUTAPI void APIENTRY glutSolidDodecahedron(void); -GLUTAPI void APIENTRY glutWireTeapot(GLdouble size); -GLUTAPI void APIENTRY glutSolidTeapot(GLdouble size); -GLUTAPI void APIENTRY glutWireOctahedron(void); -GLUTAPI void APIENTRY glutSolidOctahedron(void); -GLUTAPI void APIENTRY glutWireTetrahedron(void); -GLUTAPI void APIENTRY glutSolidTetrahedron(void); -GLUTAPI void APIENTRY glutWireIcosahedron(void); -GLUTAPI void APIENTRY glutSolidIcosahedron(void); - -#endif /* __AGLUT_H__ */ diff --git a/nx-X11/extras/Mesa/include/GL/glutf90.h b/nx-X11/extras/Mesa/include/GL/glutf90.h deleted file mode 100644 index 7ba3e19ef..000000000 --- a/nx-X11/extras/Mesa/include/GL/glutf90.h +++ /dev/null @@ -1,81 +0,0 @@ -#ifndef __glutf90_h__ -#define __glutf90_h__ - -/* Copyright (c) Mark J. Kilgard & Willam F. Mitchell, 1998. */ - -/* This program is freely distributable without licensing fees - and is provided without guarantee or warrantee expressed or - implied. This program is -not- in the public domain. */ - -/* This header provides the binding interface for William Mitchell's - f90gl Fortran 90 GLUT binding. Other GLUT language bindings - can and should use this interace. */ - -/* I appreciate the guidance from William Mitchell - (mitchell@cam.nist.gov) in developing this friend interface - for use by the f90gl package. See ../../README.fortran */ - -#include - -/* Which callback enumerants for the __glutSetFCB/__glutGetFCB routines. */ -/* NOTE These values are part of a binary interface for the f90gl Fortran - 90 binding and so must NOT changes (additions are allowed). */ - -/* GLUTwindow callbacks. */ -#define GLUT_FCB_DISPLAY 0 /* GLUTdisplayFCB */ -#define GLUT_FCB_RESHAPE 1 /* GLUTreshapeFCB */ -#define GLUT_FCB_MOUSE 2 /* GLUTmouseFCB */ -#define GLUT_FCB_MOTION 3 /* GLUTmotionFCB */ -#define GLUT_FCB_PASSIVE 4 /* GLUTpassiveFCB */ -#define GLUT_FCB_ENTRY 5 /* GLUTentryFCB */ -#define GLUT_FCB_KEYBOARD 6 /* GLUTkeyboardFCB */ -#define GLUT_FCB_KEYBOARD_UP 7 /* GLUTkeyboardFCB */ -#define GLUT_FCB_WINDOW_STATUS 8 /* GLUTwindowStatusFCB */ -#define GLUT_FCB_VISIBILITY 9 /* GLUTvisibilityFCB */ -#define GLUT_FCB_SPECIAL 10 /* GLUTspecialFCB */ -#define GLUT_FCB_SPECIAL_UP 11 /* GLUTspecialFCB */ -#define GLUT_FCB_BUTTON_BOX 12 /* GLUTbuttonBoxFCB */ -#define GLUT_FCB_DIALS 13 /* GLUTdialsFCB */ -#define GLUT_FCB_SPACE_MOTION 14 /* GLUTspaceMotionFCB */ -#define GLUT_FCB_SPACE_ROTATE 15 /* GLUTspaceRotateFCB */ -#define GLUT_FCB_SPACE_BUTTON 16 /* GLUTspaceButtonFCB */ -#define GLUT_FCB_TABLET_MOTION 17 /* GLUTtabletMotionFCB */ -#define GLUT_FCB_TABLET_BUTTON 18 /* GLUTtabletButtonFCB */ -#define GLUT_FCB_JOYSTICK 19 /* GLUTjoystickFCB */ -/* Non-GLUTwindow callbacks. */ -#define GLUT_FCB_OVERLAY_DISPLAY 100 /* GLUTdisplayFCB */ -#define GLUT_FCB_SELECT 101 /* GLUTselectFCB */ -#define GLUT_FCB_TIMER 102 /* GLUTtimerFCB */ - -/* GLUT Fortran callback function types. */ -typedef void (GLUTCALLBACK *GLUTdisplayFCB) (void); -typedef void (GLUTCALLBACK *GLUTreshapeFCB) (int *, int *); -/* NOTE the pressed key is int, not unsigned char for Fortran! */ -typedef void (GLUTCALLBACK *GLUTkeyboardFCB) (int *, int *, int *); -typedef void (GLUTCALLBACK *GLUTmouseFCB) (int *, int *, int *, int *); -typedef void (GLUTCALLBACK *GLUTmotionFCB) (int *, int *); -typedef void (GLUTCALLBACK *GLUTpassiveFCB) (int *, int *); -typedef void (GLUTCALLBACK *GLUTentryFCB) (int *); -typedef void (GLUTCALLBACK *GLUTwindowStatusFCB) (int *); -typedef void (GLUTCALLBACK *GLUTvisibilityFCB) (int *); -typedef void (GLUTCALLBACK *GLUTspecialFCB) (int *, int *, int *); -typedef void (GLUTCALLBACK *GLUTbuttonBoxFCB) (int *, int *); -typedef void (GLUTCALLBACK *GLUTdialsFCB) (int *, int *); -typedef void (GLUTCALLBACK *GLUTspaceMotionFCB) (int *, int *, int *); -typedef void (GLUTCALLBACK *GLUTspaceRotateFCB) (int *, int *, int *); -typedef void (GLUTCALLBACK *GLUTspaceButtonFCB) (int *, int *); -typedef void (GLUTCALLBACK *GLUTtabletMotionFCB) (int *, int *); -typedef void (GLUTCALLBACK *GLUTtabletButtonFCB) (int *, int *, int *, int *); -typedef void (GLUTCALLBACK *GLUTjoystickFCB) (unsigned int *buttonMask, int *x, int *y, int *z); - -typedef void (GLUTCALLBACK *GLUTselectFCB) (int *); -typedef void (GLUTCALLBACK *GLUTtimerFCB) (int *); -typedef void (GLUTCALLBACK *GLUTmenuStateFCB) (int *); /* DEPRICATED. */ -typedef void (GLUTCALLBACK *GLUTmenuStatusFCB) (int *, int *, int *); -typedef void (GLUTCALLBACK *GLUTidleFCB) (void); - -/* Functions that set and return Fortran callback functions. */ -GLUTAPI void* APIENTRY __glutGetFCB(int which); -GLUTAPI void APIENTRY __glutSetFCB(int which, void *func); - -#endif /* __glutf90_h__ */ diff --git a/nx-X11/extras/Mesa/include/GL/glx.h b/nx-X11/extras/Mesa/include/GL/glx.h deleted file mode 100644 index ab0467c18..000000000 --- a/nx-X11/extras/Mesa/include/GL/glx.h +++ /dev/null @@ -1,551 +0,0 @@ -/* - * Mesa 3-D graphics library - * Version: 6.3 - * - * Copyright (C) 1999-2005 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. - */ - - -#ifndef GLX_H -#define GLX_H - - -#ifdef __VMS -#include -# ifdef __cplusplus -/* VMS Xlib.h gives problems with C++. - * this avoids a bunch of trivial warnings */ -#pragma message disable nosimpint -#endif -#endif -#include -#include -#ifdef __VMS -# ifdef __cplusplus -#pragma message enable nosimpint -#endif -#endif -#include - - -#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 GLXContextID; -typedef XID GLXWindow; -typedef XID GLXPbuffer; - - - -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.4 and later */ -extern void (*glXGetProcAddress(const GLubyte *procname))( void ); - - -#ifndef GLX_GLXEXT_LEGACY - -#include - -#else - - -/* - * 28. GLX_EXT_visual_info extension - */ -#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_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_NONE_EXT 0x8000 -#define GLX_TRANSPARENT_RGB_EXT 0x8008 -#define GLX_TRANSPARENT_INDEX_EXT 0x8009 - -#endif /* 28. GLX_EXT_visual_info extension */ - - - -/* - * 41. GLX_SGI_video_sync - */ -#ifndef GLX_SGI_video_sync -#define GLX_SGI_video_sync 1 - -extern int glXGetVideoSyncSGI(unsigned int *count); -extern int glXWaitVideoSyncSGI(int divisor, int remainder, unsigned int *count); - -#endif /* GLX_SGI_video_sync */ - - - -/* - * 42. GLX_EXT_visual_rating - */ -#ifndef GLX_EXT_visual_rating -#define GLX_EXT_visual_rating 1 - -#define GLX_VISUAL_CAVEAT_EXT 0x20 -/*#define GLX_NONE_EXT 0x8000*/ -#define GLX_SLOW_VISUAL_EXT 0x8001 -#define GLX_NON_CONFORMANT_VISUAL_EXT 0x800D - -#endif /* GLX_EXT_visual_rating */ - - - -/* - * 47. GLX_EXT_import_context - */ -#ifndef GLX_EXT_import_context -#define GLX_EXT_import_context 1 - -#define GLX_SHARE_CONTEXT_EXT 0x800A -#define GLX_VISUAL_ID_EXT 0x800B -#define GLX_SCREEN_EXT 0x800C - -extern void glXFreeContextEXT(Display *dpy, GLXContext context); - -extern GLXContextID glXGetContextIDEXT(const GLXContext context); - -extern Display *glXGetCurrentDisplayEXT(void); - -extern GLXContext glXImportContextEXT(Display *dpy, GLXContextID contextID); - -extern int glXQueryContextInfoEXT(Display *dpy, GLXContext context, - int attribute,int *value); - -#endif /* GLX_EXT_import_context */ - - - -/* - * 215. GLX_MESA_copy_sub_buffer - */ -#ifndef GLX_MESA_copy_sub_buffer -#define GLX_MESA_copy_sub_buffer 1 - -extern void glXCopySubBufferMESA( Display *dpy, GLXDrawable drawable, - int x, int y, int width, int height ); - -#endif - - - -/* - * 216. GLX_MESA_pixmap_colormap - */ -#ifndef GLX_MESA_pixmap_colormap -#define GLX_MESA_pixmap_colormap 1 - -extern GLXPixmap glXCreateGLXPixmapMESA( Display *dpy, XVisualInfo *visual, - Pixmap pixmap, Colormap cmap ); - -#endif /* GLX_MESA_pixmap_colormap */ - - - -/* - * 217. GLX_MESA_release_buffers - */ -#ifndef GLX_MESA_release_buffers -#define GLX_MESA_release_buffers 1 - -extern Bool glXReleaseBuffersMESA( Display *dpy, GLXDrawable d ); - -#endif /* GLX_MESA_release_buffers */ - - - -/* - * 218. GLX_MESA_set_3dfx_mode - */ -#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 - -extern Bool glXSet3DfxModeMESA( int mode ); - -#endif /* GLX_MESA_set_3dfx_mode */ - - - -/* - * ARB 2. GLX_ARB_get_proc_address - */ -#ifndef GLX_ARB_get_proc_address -#define GLX_ARB_get_proc_address 1 - -extern void (*glXGetProcAddressARB(const GLubyte *procName))(); - -#endif /* GLX_ARB_get_proc_address */ - - - -#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 */ - - - -/* - * ???. GLX_MESA_agp_offset - */ -#ifndef GLX_MESA_agp_offset -#define GLX_MESA_agp_offset 1 - -extern GLuint glXGetAGPOffsetMESA(const GLvoid *pointer); -typedef GLuint (* PFNGLXGETAGPOFFSETMESAPROC) (const GLvoid *pointer); - -#endif /* GLX_MESA_agp_offset */ - - -/* - * ???. GLX_MESA_allocate_memory - */ -#ifndef GLX_MESA_allocate_memory -#define GLX_MESA_allocate_memory 1 - -extern void *glXAllocateMemoryMESA(Display *dpy, int scrn, size_t size, float readfreq, float writefreq, float priority); -extern void glXFreeMemoryMESA(Display *dpy, int scrn, void *pointer); -extern GLuint glXGetMemoryOffsetMESA(Display *dpy, int scrn, const void *pointer); -typedef void * ( * PFNGLXALLOCATEMEMORYMESAPROC) (Display *dpy, int scrn, size_t size, float readfreq, float writefreq, float priority); -typedef void ( * PFNGLXFREEMEMORYMESAPROC) (Display *dpy, int scrn, void *pointer); -typedef GLuint (* PFNGLXGETMEMORYOFFSETMESAPROC) (Display *dpy, int scrn, const void *pointer); - -#endif /* GLX_MESA_allocate_memory */ - -/* - * ARB ?. GLX_ARB_render_texture - */ -#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 */ - - -/*** 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 union __GLXEvent { - GLXPbufferClobberEvent glxpbufferclobber; - long pad[24]; -} GLXEvent; - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/nx-X11/extras/Mesa/include/GL/glx_mangle.h b/nx-X11/extras/Mesa/include/GL/glx_mangle.h deleted file mode 100644 index d0b47d94e..000000000 --- a/nx-X11/extras/Mesa/include/GL/glx_mangle.h +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Mesa 3-D graphics library - * Version: 4.1 - * Copyright (C) 1995-1998 Brian Paul - * - * This 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. - * - * This 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 this library; if not, write to the Free - * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - */ - - -#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.4 */ -#define glXGetProcAddress mglXGetProcAddress - - -#endif diff --git a/nx-X11/extras/Mesa/include/GL/internal/dri_interface.h b/nx-X11/extras/Mesa/include/GL/internal/dri_interface.h deleted file mode 100644 index 0f3555b57..000000000 --- a/nx-X11/extras/Mesa/include/GL/internal/dri_interface.h +++ /dev/null @@ -1,477 +0,0 @@ -/* - * Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas. - * (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 - * \author Ian Romanick - */ - -#ifndef DRI_INTERFACE_H -#define DRI_INTERFACE_H - -#include -#include - -/** - * \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 __DRIdriverRec __DRIdriver; -typedef struct __DRIframebufferRec __DRIframebuffer; -typedef struct __DRIversionRec __DRIversion; -typedef struct __DRIinterfaceMethodsRec __DRIinterfaceMethods; -typedef unsigned long __DRIid; -typedef void __DRInativeDisplay; -/*@}*/ - - -/** - * \name Functions provided by the driver loader. - */ -/*@{*/ -/** - * Type of a pointer to \c glXGetScreenDriver, as returned by - * \c glXGetProcAddress. This function is used to get the name of the DRI - * driver for the specified screen of the specified display. The driver - * name is typically used with \c glXGetDriverConfig. - * - * \sa glXGetScreenDriver, glXGetProcAddress, glXGetDriverConfig - */ -typedef const char * (* PFNGLXGETSCREENDRIVERPROC) (__DRInativeDisplay *dpy, int scrNum); - -/** - * Type of a pointer to \c glXGetDriverConfig, as returned by - * \c glXGetProcAddress. This function is used to get the XML document - * describing the configuration options available for the specified driver. - * - * \sa glXGetDriverConfig, glXGetProcAddress, glXGetScreenDriver - */ -typedef const char * (* PFNGLXGETDRIVERCONFIGPROC) (const char *driverName); - -/** - * Type of a pointer to \c glxEnableExtension, as returned by - * \c __DRIinterfaceMethods::getProcAddress. This function is used to enable - * a GLX extension on the specified screen. - */ -typedef void (* PFNGLXSCRENABLEEXTENSIONPROC) ( void *psc, const char * name ); -/*@}*/ - - -/** - * \name Functions and data provided by the driver. - */ -/*@{*/ - -typedef void *(CREATENEWSCREENFUNC)(__DRInativeDisplay *dpy, int scrn, - __DRIscreen *psc, const __GLcontextModes * modes, - const __DRIversion * ddx_version, const __DRIversion * dri_version, - const __DRIversion * drm_version, const __DRIframebuffer * frame_buffer, - void * pSAREA, int fd, int internal_api_version, - const __DRIinterfaceMethods * interface, - __GLcontextModes ** driver_modes); -typedef CREATENEWSCREENFUNC* PFNCREATENEWSCREENFUNC; -extern CREATENEWSCREENFUNC __driCreateNewScreen_20050727; - - -/** - * XML document describing the configuration options supported by the - * driver. - */ -extern const char __driConfigOptions[]; - -/*@}*/ - - -/** - * 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. */ -}; - - -typedef void (*__DRIfuncPtr)(void); - -struct __DRIinterfaceMethodsRec { - /** - * Get pointer to named function. - */ - __DRIfuncPtr (*getProcAddress)( const char * proc_name ); - - /** - * Create a list of \c __GLcontextModes structures. - */ - __GLcontextModes * (*createContextModes)(unsigned count, - size_t minimum_bytes_per_struct); - - /** - * Destroy a list of \c __GLcontextModes structures. - * - * \todo - * Determine if the drivers actually need to call this. - */ - void (*destroyContextModes)( __GLcontextModes * modes ); - - /** - * Get the \c __DRIscreen for a given display and screen number. - */ - __DRIscreen *(*getScreen)(__DRInativeDisplay *dpy, int screenNum); - - - /** - * \name Client/server protocol functions. - * - * These functions implement the DRI client/server protocol for - * context and drawable operations. Platforms that do not implement - * the wire protocol (e.g., EGL) will implement glorified no-op functions. - */ - /*@{*/ - /** - * Determine if the specified window ID still exists. - * - * \note - * Implementations may assume that the driver will only pass an ID into - * this function that actually corresponds to a window. On - * implementations where windows can only be destroyed by the DRI driver - * (e.g., EGL), this function is allowed to always return \c GL_TRUE. - */ - GLboolean (*windowExists)(__DRInativeDisplay *dpy, __DRIid draw); - - /** - * Create the server-side portion of the GL context. - */ - GLboolean (* createContext)( __DRInativeDisplay *dpy, int screenNum, - int configID, void * contextID, drm_context_t * hw_context ); - - /** - * Destroy the server-side portion of the GL context. - */ - GLboolean (* destroyContext)( __DRInativeDisplay *dpy, int screenNum, - __DRIid context ); - - /** - * Create the server-side portion of the drawable. - */ - GLboolean (*createDrawable)( __DRInativeDisplay * ndpy, int screen, - __DRIid drawable, drm_drawable_t * hHWDrawable ); - - /** - * Destroy the server-side portion of the drawable. - */ - GLboolean (*destroyDrawable)( __DRInativeDisplay * ndpy, int screen, - __DRIid drawable ); - - /** - * This function is used to get information about the position, size, and - * clip rects of a drawable. - */ - GLboolean (* getDrawableInfo) ( __DRInativeDisplay *dpy, int scrn, - __DRIid draw, 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 ); - /*@}*/ - - - /** - * \name Timing related functions. - */ - /*@{*/ - /** - * 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)(__DRInativeDisplay * dpy, __DRIid drawable, - int32_t * numerator, int32_t * denominator); - /*@}*/ -}; - - -/** - * 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. */ -}; - - -/** - * Screen dependent methods. This structure is initialized during the - * \c __DRIdisplayRec::createScreen call. - */ -struct __DRIscreenRec { - /** - * Method to destroy the private DRI screen data. - */ - void (*destroyScreen)(__DRInativeDisplay *dpy, int scrn, void *screenPrivate); - - /** - * Method to create the private DRI drawable data and initialize the - * drawable dependent methods. - */ - void *(*createNewDrawable)(__DRInativeDisplay *dpy, const __GLcontextModes *modes, - __DRIid draw, __DRIdrawable *pdraw, - int renderType, const int *attrs); - - /** - * Method to return a pointer to the DRI drawable data. - */ - __DRIdrawable *(*getDrawable)(__DRInativeDisplay *dpy, __DRIid draw, - void *drawablePrivate); - - /** - * Opaque pointer to private per screen direct rendering data. \c NULL - * if direct rendering is not supported on this screen. Never - * dereferenced in libGL. - */ - void *private; - - /** - * Get the number of vertical refreshes since some point in time before - * this function was first called (i.e., system start up). - * - * \since Internal API version 20030317. - */ - int (*getMSC)( void *screenPrivate, int64_t *msc ); - - /** - * Opaque pointer that points back to the containing - * \c __GLXscreenConfigs. This data structure is shared with DRI drivers - * but \c __GLXscreenConfigs is not. However, they are needed by some GLX - * functions called by DRI drivers. - * - * \since Internal API version 20030813. - */ - void *screenConfigs; - - /** - * Functions associated with MESA_allocate_memory. - * - * \since Internal API version 20030815. - */ - /*@{*/ - void *(*allocateMemory)(__DRInativeDisplay *dpy, int scrn, GLsizei size, - GLfloat readfreq, GLfloat writefreq, - GLfloat priority); - - void (*freeMemory)(__DRInativeDisplay *dpy, int scrn, GLvoid *pointer); - - GLuint (*memoryOffset)(__DRInativeDisplay *dpy, int scrn, const GLvoid *pointer); - /*@}*/ - - /** - * Method to create the private DRI context data and initialize the - * context dependent methods. - * - * \since Internal API version 20031201. - */ - void * (*createNewContext)(__DRInativeDisplay *dpy, const __GLcontextModes *modes, - int render_type, - void *sharedPrivate, __DRIcontext *pctx); -}; - -/** - * Context dependent methods. This structure is initialized during the - * \c __DRIscreenRec::createContext call. - */ -struct __DRIcontextRec { - /** - * Method to destroy the private DRI context data. - */ - void (*destroyContext)(__DRInativeDisplay *dpy, int scrn, void *contextPrivate); - - /** - * Opaque pointer to private per context direct rendering data. - * \c NULL if direct rendering is not supported on the display or - * screen used to create this context. Never dereferenced in libGL. - */ - void *private; - - /** - * Pointer to the mode used to create this context. - * - * \since Internal API version 20040317. - */ - const __GLcontextModes * mode; - - /** - * Method to bind a DRI drawable to a DRI graphics context. - * - * \since Internal API version 20050727. - */ - GLboolean (*bindContext)(__DRInativeDisplay *dpy, int scrn, __DRIid draw, - __DRIid read, __DRIcontext *ctx); - - /** - * Method to unbind a DRI drawable from a DRI graphics context. - * - * \since Internal API version 20050727. - */ - GLboolean (*unbindContext)(__DRInativeDisplay *dpy, int scrn, __DRIid draw, - __DRIid read, __DRIcontext *ctx); -}; - -/** - * Drawable dependent methods. This structure is initialized during the - * \c __DRIscreenRec::createDrawable call. \c createDrawable is not called - * by libGL at this time. It's currently used via the dri_util.c utility code - * instead. - */ -struct __DRIdrawableRec { - /** - * Method to destroy the private DRI drawable data. - */ - void (*destroyDrawable)(__DRInativeDisplay *dpy, void *drawablePrivate); - - /** - * Method to swap the front and back buffers. - */ - void (*swapBuffers)(__DRInativeDisplay *dpy, void *drawablePrivate); - - /** - * Opaque pointer to private per drawable direct rendering data. - * \c NULL if direct rendering is not supported on the display or - * screen used to create this drawable. Never dereferenced in libGL. - */ - void *private; - - /** - * Get the number of completed swap buffers for this drawable. - * - * \since Internal API version 20030317. - */ - int (*getSBC)(__DRInativeDisplay *dpy, void *drawablePrivate, int64_t *sbc ); - - /** - * Wait for the SBC to be greater than or equal target_sbc. - * - * \since Internal API version 20030317. - */ - int (*waitForSBC)( __DRInativeDisplay * dpy, void *drawablePriv, - int64_t target_sbc, - int64_t * msc, int64_t * sbc ); - - /** - * 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. - * - * \since Internal API version 20030317. - */ - int (*waitForMSC)( __DRInativeDisplay * dpy, void *drawablePriv, - int64_t target_msc, int64_t divisor, int64_t remainder, - int64_t * msc, int64_t * sbc ); - - /** - * Like \c swapBuffers, but does NOT have an implicit \c glFlush. Once - * rendering is complete, waits until MSC is equal to target_msc, or - * if that has already passed, waits until (MSC % divisor) is equal - * to remainder. If divisor is zero, the swap will happen as soon as - * MSC is greater than or equal to target_msc. - * - * \since Internal API version 20030317. - */ - int64_t (*swapBuffersMSC)(__DRInativeDisplay *dpy, void *drawablePrivate, - int64_t target_msc, - int64_t divisor, int64_t remainder); - - /** - * Enable or disable frame usage tracking. - * - * \since Internal API version 20030317. - */ - int (*frameTracking)(__DRInativeDisplay *dpy, void *drawablePrivate, GLboolean enable); - - /** - * Retrieve frame usage information. - * - * \since Internal API version 20030317. - */ - int (*queryFrameTracking)(__DRInativeDisplay *dpy, void *drawablePrivate, - int64_t * sbc, int64_t * missedFrames, - float * lastMissedUsage, float * usage ); - - /** - * Used by drivers that implement the GLX_SGI_swap_control or - * GLX_MESA_swap_control extension. - * - * \since Internal API version 20030317. - */ - unsigned swap_interval; -}; - -#endif diff --git a/nx-X11/extras/Mesa/include/GL/internal/sarea.h b/nx-X11/extras/Mesa/include/GL/internal/sarea.h deleted file mode 100644 index 77c16e0ef..000000000 --- a/nx-X11/extras/Mesa/include/GL/internal/sarea.h +++ /dev/null @@ -1,94 +0,0 @@ -/* $XFree86: xc/programs/Xserver/GL/dri/sarea.h,v 1.11 2002/10/30 12:52:03 alanh Exp $ */ -/** - * \file sarea.h - * SAREA definitions. - * - * \author Kevin E. Martin - * \author Jens Owen - * \author Rickard E. (Rik) Faith - */ - -/* - * Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas. - * Copyright 2000 VA Linux Systems, 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 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 PRECISION INSIGHT 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. - */ - -/* $XFree86: xc/programs/Xserver/GL/dri/sarea.h,v 1.11 2002/10/30 12:52:03 alanh Exp $ */ - -#ifndef _SAREA_H_ -#define _SAREA_H_ - -#include "xf86drm.h" - -/* SAREA area needs to be at least a page */ -#if defined(__alpha__) -#define SAREA_MAX 0x2000 -#elif defined(__ia64__) -#define SAREA_MAX 0x10000 /* 64kB */ -#else -/* Intel 830M driver needs at least 8k SAREA */ -#define SAREA_MAX 0x2000 -#endif - -#define SAREA_MAX_DRAWABLES 256 - -#define SAREA_DRAWABLE_CLAIMED_ENTRY 0x80000000 - -/** - * SAREA per drawable information. - * - * \sa _XF86DRISAREA. - */ -typedef struct _XF86DRISAREADrawable { - unsigned int stamp; - unsigned int flags; -} XF86DRISAREADrawableRec, *XF86DRISAREADrawablePtr; - -/** - * SAREA frame information. - * - * \sa _XF86DRISAREA. - */ -typedef struct _XF86DRISAREAFrame { - unsigned int x; - unsigned int y; - unsigned int width; - unsigned int height; - unsigned int fullscreen; -} XF86DRISAREAFrameRec, *XF86DRISAREAFramePtr; - -/** - * SAREA definition. - */ -typedef struct _XF86DRISAREA { - /** first thing is always the DRM locking structure */ - drmLock lock; - /** \todo Use readers/writer lock for drawable_lock */ - drmLock drawable_lock; - XF86DRISAREADrawableRec drawableTable[SAREA_MAX_DRAWABLES]; - XF86DRISAREAFrameRec frame; - drm_context_t dummy_context; -} XF86DRISAREARec, *XF86DRISAREAPtr; - -#endif diff --git a/nx-X11/extras/Mesa/include/GL/mesa_wgl.h b/nx-X11/extras/Mesa/include/GL/mesa_wgl.h deleted file mode 100644 index 21473763e..000000000 --- a/nx-X11/extras/Mesa/include/GL/mesa_wgl.h +++ /dev/null @@ -1,123 +0,0 @@ -/* - * Mesa 3-D graphics library - * Version: 3.1 - * - * Copyright (C) 1999 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. - */ - - -/* prototypes for the Mesa WGL functions */ -/* relocated here so that I could make GLUT get them properly */ - -#define _mesa_wgl_h_ - -#ifndef _mesa_wgl_h_ -#define _mesa_wgl_h_ - - -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -#if !defined(OPENSTEP) && (defined(__WIN32__) || defined(__CYGWIN32__)) -# if (defined(_MSC_VER) || defined(__MINGW32__)) && defined(BUILD_GL32) /* tag specify we're building mesa as a DLL */ -# define GLAPI __declspec(dllexport) -# define WGLAPI __declspec(dllexport) -# elif (defined(_MSC_VER) || defined(__MINGW32__)) && defined(_DLL) /* tag specifying we're building for DLL runtime support */ -# define GLAPI __declspec(dllimport) -# define WGLAPI __declspec(dllimport) -# else /* for use with static link lib build of Win32 edition only */ -# define GLAPI extern -# define WGLAPI __declspec(dllimport) -# endif /* _STATIC_MESA support */ -# define GLAPIENTRY __stdcall -#else -/* non-Windows compilation */ -# define GLAPI extern -# define GLAPIENTRY -#endif /* WIN32 / CYGWIN32 bracket */ - - -#if defined(_WIN32) && !defined(_WINGDI_) && !defined(_GNU_H_WINDOWS32_DEFINES) && !defined(OPENSTEP) -#ifndef _GNU_H_WINDOWS32_FUNCTIONS -# ifdef UNICODE -# define wglUseFontBitmaps wglUseFontBitmapsW -# define wglUseFontOutlines wglUseFontOutlinesW -# else -# define wglUseFontBitmaps wglUseFontBitmapsA -# define wglUseFontOutlines wglUseFontOutlinesA -# endif /* !UNICODE */ -#endif /* _GNU_H_WINDOWS32_FUNCTIONS */ -typedef struct tagLAYERPLANEDESCRIPTOR LAYERPLANEDESCRIPTOR, *PLAYERPLANEDESCRIPTOR, *LPLAYERPLANEDESCRIPTOR; -typedef struct _GLYPHMETRICSFLOAT GLYPHMETRICSFLOAT, *PGLYPHMETRICSFLOAT, *LPGLYPHMETRICSFLOAT; -typedef struct tagPIXELFORMATDESCRIPTOR PIXELFORMATDESCRIPTOR, *PPIXELFORMATDESCRIPTOR, *LPPIXELFORMATDESCRIPTOR; -#endif - - -#ifdef _MSC_VER -# pragma warning( disable : 4615 ) /* pragma warning : unknown user warning type*/ -# pragma warning( push ) -# pragma warning( disable : 4273 ) /* 'function' : inconsistent DLL linkage. dllexport assumed. */ -#endif - -WGLAPI int GLAPIENTRY wglDeleteContext(HGLRC); -WGLAPI int GLAPIENTRY wglMakeCurrent(HDC,HGLRC); -WGLAPI int GLAPIENTRY wglSetPixelFormat(HDC, int, const PIXELFORMATDESCRIPTOR *); -WGLAPI int GLAPIENTRY wglSwapBuffers(HDC hdc); -WGLAPI HDC GLAPIENTRY wglGetCurrentDC(void); -WGLAPI HGLRC GLAPIENTRY wglCreateContext(HDC); -WGLAPI HGLRC GLAPIENTRY wglCreateLayerContext(HDC,int); -WGLAPI HGLRC GLAPIENTRY wglGetCurrentContext(void); -WGLAPI PROC GLAPIENTRY wglGetProcAddress(const char*); -WGLAPI int GLAPIENTRY wglChoosePixelFormat(HDC, const PIXELFORMATDESCRIPTOR *); -WGLAPI int GLAPIENTRY wglCopyContext(HGLRC, HGLRC, unsigned int); -WGLAPI int GLAPIENTRY wglDeleteContext(HGLRC); -WGLAPI int GLAPIENTRY wglDescribeLayerPlane(HDC, int, int, unsigned int,LPLAYERPLANEDESCRIPTOR); -WGLAPI int GLAPIENTRY wglDescribePixelFormat(HDC,int, unsigned int, LPPIXELFORMATDESCRIPTOR); -WGLAPI int GLAPIENTRY wglGetLayerPaletteEntries(HDC, int, int, int,COLORREF *); -WGLAPI int GLAPIENTRY wglGetPixelFormat(HDC hdc); -WGLAPI int GLAPIENTRY wglMakeCurrent(HDC, HGLRC); -WGLAPI int GLAPIENTRY wglRealizeLayerPalette(HDC, int, int); -WGLAPI int GLAPIENTRY wglSetLayerPaletteEntries(HDC, int, int, int,const COLORREF *); -WGLAPI int GLAPIENTRY wglShareLists(HGLRC, HGLRC); -WGLAPI int GLAPIENTRY wglSwapLayerBuffers(HDC, unsigned int); -WGLAPI int GLAPIENTRY wglUseFontBitmapsA(HDC, unsigned long, unsigned long, unsigned long); -WGLAPI int GLAPIENTRY wglUseFontBitmapsW(HDC, unsigned long, unsigned long, unsigned long); -WGLAPI int GLAPIENTRY wglUseFontOutlinesA(HDC, unsigned long, unsigned long, unsigned long, float,float, int, LPGLYPHMETRICSFLOAT); -WGLAPI int GLAPIENTRY wglUseFontOutlinesW(HDC, unsigned long, unsigned long, unsigned long, float,float, int, LPGLYPHMETRICSFLOAT); -WGLAPI int GLAPIENTRY SwapBuffers(HDC); -WGLAPI int GLAPIENTRY ChoosePixelFormat(HDC,const PIXELFORMATDESCRIPTOR *); -WGLAPI int GLAPIENTRY DescribePixelFormat(HDC,int,unsigned int,LPPIXELFORMATDESCRIPTOR); -WGLAPI int GLAPIENTRY GetPixelFormat(HDC); -WGLAPI int GLAPIENTRY SetPixelFormat(HDC,int,const PIXELFORMATDESCRIPTOR *); - -#ifdef _MSC_VER -# pragma warning( pop ) -#endif - -#ifdef __cplusplus -} -#endif - - -#endif /* _mesa_wgl_h_ */ diff --git a/nx-X11/extras/Mesa/include/GL/mglmesa.h b/nx-X11/extras/Mesa/include/GL/mglmesa.h deleted file mode 100644 index d9ba61c17..000000000 --- a/nx-X11/extras/Mesa/include/GL/mglmesa.h +++ /dev/null @@ -1,79 +0,0 @@ -/**************************************************************************** -* -* Mesa bindings for SciTech MGL -* -* Copyright (C) 1996 SciTech Software. -* All rights reserved. -* -* Filename: mglmesa.h -* Version: Revision: 1.1.1.1 -* -* Language: ANSI C -* Environment: Any -* -* Description: Header file for the Mesa/OpenGL interface bindings for the -* SciTech MGL graphics library. Uses the MGL internal -* device context structures to get direct access to the -* high performance MGL rasterization functions for maximum -* performance. Utilizes the VESA VBE/AF Accelerator Functions -* via the MGL's accelerated device driver functions, as well -* as basic DirectDraw accelerated functions provided by the -* MGL. -* -* This 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. -* -* This 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 this library; if not, write to the Free -* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -* -* -****************************************************************************/ - -#ifndef __MGLMESA_H -#define __MGLMESA_H - -#include "mgraph.h" - -/*------------------------- Function Prototypes ---------------------------*/ - -#ifdef __cplusplus -extern "C" { /* Use "C" linkage when in C++ mode */ -#endif - -#ifndef __WINDOWS__ -#define GLAPIENTRY -#endif - -#ifdef __WINDOWS__ -bool GLAPIENTRY MGLMesaInitDLL(MGLCallbacks *cb,char *version); -#endif -void GLAPIENTRY MGLMesaChooseVisual(MGLDC *dc,MGLVisual *visual); -bool GLAPIENTRY MGLMesaSetVisual(MGLDC *dc,MGLVisual *visual); -bool GLAPIENTRY MGLMesaCreateContext(MGLDC *dc,bool forceMemDC); -void GLAPIENTRY MGLMesaDestroyContext(MGLDC *dc); -void GLAPIENTRY MGLMesaMakeCurrent(MGLDC *dc); -void GLAPIENTRY MGLMesaSwapBuffers(MGLDC *dc,bool waitVRT); - -/* Palette manipulation support. The reason we provide palette manipulation - * routines is so that when rendering in double buffered modes with a - * software backbuffer, the palette for the backbuffer is kept consistent - * with the hardware front buffer. - */ - -void GLAPIENTRY MGLMesaSetPaletteEntry(MGLDC *dc,int entry,uchar red,uchar green,uchar blue); -void GLAPIENTRY MGLMesaSetPalette(MGLDC *dc,palette_t *pal,int numColors,int startIndex); -void GLAPIENTRY MGLMesaRealizePalette(MGLDC *dc,int numColors,int startIndex,int waitVRT); - -#ifdef __cplusplus -} /* End of "C" linkage for C++ */ -#endif /* __cplusplus */ - -#endif /* __MGLMESA_H */ diff --git a/nx-X11/extras/Mesa/include/GL/miniglx.h b/nx-X11/extras/Mesa/include/GL/miniglx.h deleted file mode 100644 index 8c6180be6..000000000 --- a/nx-X11/extras/Mesa/include/GL/miniglx.h +++ /dev/null @@ -1,482 +0,0 @@ -/* - * Mesa 3-D graphics library - * Version: 6.1 - * - * Copyright (C) 1999-2004 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. - */ - - -/** - * \file miniglx.h - * \brief Mini GLX interface functions. - * \author Brian Paul - * - * See comments miniglx.c for more information. - */ - -#ifndef MINIGLX_H -#define MINIGLX_H - -#include -#include - - -#ifdef __cplusplus -extern "C" { -#endif - - -/** - * \name Replacement Xlib/GLX types - */ -/*@{*/ -/** - * \brief Boolean type. - * - * It can have the values #True or #False. - */ -#ifndef MINIGLX_NO_XTYPES -typedef int Bool; -#endif -typedef int MINI_Bool; - -/** - * \brief Color map. - * - * Alias for private ::MiniGLXColormapRec structure. - */ -typedef struct MiniGLXColormapRec *MINI_Colormap; -#ifndef MINIGLX_NO_XTYPES -typedef struct MiniGLXColormapRec *Colormap; -#endif - -/** - * \brief Window attributes. - */ -typedef struct MiniGLXSetWindowAttributesRec { - int background_pixel; /**< \brief background pixel */ - int border_pixel; /**< \brief border pixel value */ - MINI_Colormap colormap; /**< \brief color map to be associated with window */ - int event_mask; /**< \brief set of events that should be saved */ -} XSetWindowAttributes; - -/** - * \brief Visual. - * - * Alias for the private ::MiniGLXVisualRec structure. - * - * \sa \ref datatypes. - */ -typedef struct MiniGLXVisualRec Visual; - -/** - * \brief Visual information. - * - * \sa \ref datatypes. - */ -#ifndef MINIGLX_NO_XTYPES -typedef unsigned long VisualID; -#endif -typedef unsigned long MINI_VisualID; -typedef struct MiniGLXXVisualInfoRec { - Visual *visual; /**< \brief pointer to the GLX Visual */ - MINI_VisualID visualid; /**< \brief visual ID */ - int screen; /**< \brief screen number */ - int depth; /**< \brief bit depth */ -#if defined(__cplusplus) || defined(c_plusplus) - int c_class; /**< \brief class */ -#else - int class; /**< \brief class */ -#endif - int bits_per_rgb; /**< \brief total bits per pixel */ -} XVisualInfo; - -/** - * \brief GLX Frame Buffer Configuration (for pbuffers) - * \sa \ref datatypes. - */ -typedef struct MiniGLXFBConfigRec { - XVisualInfo *visInfo; -} GLXFBConfig; - - -/** - * \brief Display handle. - * - * Alias for the private ::MiniGLXDisplayRec structure. - * - * \sa \ref datatypes. - */ -#ifndef MINIGLX_NO_XTYPES -typedef struct MiniGLXDisplayRec Display; -#endif -typedef struct MiniGLXDisplayRec MINI_Display; - -/** - * \brief Window handle. - * - * Alias for the private ::MiniGLXWindowRec structure. - * - * \sa \ref datatypes. - */ -#ifndef MINIGLX_NO_XTYPES -typedef struct MiniGLXWindowRec *Window; -#endif -typedef struct MiniGLXWindowRec *MINI_Window; - -/** - * \brief Drawable. - * - * Alias for the private ::MiniGLXWindowRec structure. - * - * For Mini GLX only the full-screen window can be used as source and - * destination in graphics operations. - * - * \sa \ref datatypes. - */ -#ifndef MINIGLX_NO_XTYPES -typedef struct MiniGLXWindowRec *Drawable; -#endif -typedef struct MiniGLXWindowRec *MINI_Drawable; - -/** - * \brief GLX drawable. - * - * Alias for the private ::MiniGLXWindowRec structure. - * - * Same as #Drawable. - * - * \sa \ref datatypes. - */ -typedef struct MiniGLXWindowRec *GLXDrawable; - -/** - * \brief GLX pbuffer. - * - * Alias for the private ::MiniGLXWindowRec structure. - * - * Same as #Drawable. - * - * \sa \ref datatypes. - */ -typedef struct MiniGLXWindowRec *GLXPbuffer; - -/** - * \brief GLX context. - * - * Alias for the private ::MiniGLXContext structure. - * - * \sa \ref datatypes. - */ -typedef struct MiniGLXContextRec *GLXContext; -/*@}*/ - - -typedef struct { - int type; - unsigned long serial; /* # of last request processed by server */ - MINI_Bool send_event; /* true if this came from a SendEvent request */ - MINI_Display *display; /* Display the event was read from */ - MINI_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 */ - MINI_Bool send_event; /* true if this came from a SendEvent request */ - MINI_Display *display; /* Display the event was read from */ - MINI_Window parent; /* parent of the window */ - MINI_Window window; /* window id of window created */ - int x, y; /* window location */ - int width, height; /* size of window */ - int border_width; /* border width */ - MINI_Bool override_redirect; /* creation should be overridden */ -} XCreateWindowEvent; - -typedef struct { - int type; - unsigned long serial; /* # of last request processed by server */ - MINI_Bool send_event; /* true if this came from a SendEvent request */ - MINI_Display *display; /* Display the event was read from */ - MINI_Window event; - MINI_Window window; -} XDestroyWindowEvent; - -typedef struct { - int type; - unsigned long serial; /* # of last request processed by server */ - MINI_Bool send_event; /* true if this came from a SendEvent request */ - MINI_Display *display; /* Display the event was read from */ - MINI_Window event; - MINI_Window window; - MINI_Bool from_configure; -} XUnmapEvent; - -typedef struct { - int type; - unsigned long serial; /* # of last request processed by server */ - MINI_Bool send_event; /* true if this came from a SendEvent request */ - MINI_Display *display; /* Display the event was read from */ - MINI_Window event; - MINI_Window window; - MINI_Bool override_redirect; /* boolean, is override set... */ -} XMapEvent; - - -typedef struct { - int type; - unsigned long serial; /* # of last request processed by server */ - MINI_Bool send_event; /* true if this came from a SendEvent request */ - MINI_Display *display; /* Display the event was read from */ - MINI_Window parent; - MINI_Window window; -} XMapRequestEvent; - -typedef union _XEvent { - int type; /* must not be changed; first element */ - XExposeEvent xexpose; - XCreateWindowEvent xcreatewindow; - XDestroyWindowEvent xdestroywindow; - XUnmapEvent xunmap; - XMapEvent xmap; - XMapRequestEvent xmaprequest; - long pad[24]; -} XEvent; - - -/** - * \name Xlib constants - */ -/*@{*/ -#define False 0 -#define True 1 -#define None 0 -#define AllocNone 0 -#define InputOutput 1 -#define ExposureMask (1L<<15) -#define StructureNotifyMask (1L<<17) -#define CWBackPixel (1L<<1) -#define CWBorderPixel (1L<<3) -#define CWEventMask (1L<<11) -#define CWColormap (1L<<13) -#define PseudoColor 3 -#define TrueColor 4 -#define VisualIDMask 0x1 -#define VisualScreenMask 0x2 -#define Expose 12 -#define CreateNotify 16 -#define DestroyNotify 17 -#define UnmapNotify 18 -#define MapNotify 19 -#define MapRequest 20 - -/*@}*/ - -/** - * \name Standard GLX tokens - */ -/*@{*/ -#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 -#define GLX_BAD_ATTRIBUTE 1 -#define GLX_BAD_VISUAL 4 -/*@}*/ - - -/** - * \name Unique to Mini GLX - * - * At compile time, the Mini GLX interface version can be tested with the - * MINI_GLX_VERSION_1_x preprocessor tokens. - * - * \sa glXQueryVersion() - */ -/*@{*/ -/** \brief Defined if version 1.0 of Mini GLX is supported. */ -#define MINI_GLX_VERSION_1_0 1 -/** \brief Defined if version 1.1 of Mini GLX is supported. */ -#define MINI_GLX_VERSION_1_1 1 -/*@}*/ - - -/** - * \name Server-specific functions - */ -extern MINI_Display * -__miniglx_StartServer( const char *display_name ); - -extern int -__miniglx_Select( MINI_Display *dpy, int maxfd, - fd_set *rfds, fd_set *wfds, fd_set *xfds, - struct timeval *tv ); - - -/** - * \name Simulated Xlib functions - */ -/*@{*/ -extern MINI_Display * -XOpenDisplay( const char *dpy_name ); - - -extern void -XCloseDisplay( MINI_Display *display ); - -extern MINI_Window -XCreateWindow( MINI_Display *display, MINI_Window parent, int x, int y, - unsigned int width, unsigned int height, - unsigned int border_width, int depth, unsigned int winclass, - Visual *visual, unsigned long valuemask, - XSetWindowAttributes *attributes ); - -extern int -XNextEvent(MINI_Display *display, XEvent *event_return); - -extern MINI_Bool -XCheckMaskEvent( MINI_Display *dpy, long event_mask, XEvent *event_return ); - -/** - * \brief Return the root window. - * - * \param display the display handle. It is ignored by Mini GLX, but should be - * the value returned by XOpenDisplay(). - * \param screen the screen number on the host server. It is ignored by Mini - * GLX but should be zero. - * - * \return the root window. Always zero on Mini GLX. - */ -#define RootWindow(display, screen) 0 -#define DefaultScreen(dpy) 0 - -extern void -XDestroyWindow( MINI_Display *display, MINI_Window w ); - -extern void -XMapWindow( MINI_Display *display, MINI_Window w ); - -/* Should clients have access to this? - */ -extern void -XUnmapWindow( MINI_Display *display, MINI_Window w ); - -extern MINI_Colormap -XCreateColormap( MINI_Display *display, MINI_Window w, Visual *visual, int alloc ); - -extern void -XFreeColormap( MINI_Display *display, MINI_Colormap cmap ); - -extern void -XFree( void *data ); - -extern XVisualInfo * -XGetVisualInfo( MINI_Display *display, long vinfo_mask, - XVisualInfo *vinfo_template, int *nitems_return ); -/*@}*/ - - - -/** - * \name GLX functions - */ -/*@{*/ -extern XVisualInfo* -glXChooseVisual( MINI_Display *dpy, int screen, int *attribList ); - -extern int -glXGetConfig( MINI_Display *dpy, XVisualInfo *vis, int attrib, int *value ); - -extern GLXContext -glXCreateContext( MINI_Display *dpy, XVisualInfo *vis, - GLXContext shareList, MINI_Bool direct ); - -extern void -glXDestroyContext( MINI_Display *dpy, GLXContext ctx ); - -extern MINI_Bool -glXMakeCurrent( MINI_Display *dpy, GLXDrawable drawable, GLXContext ctx); - -extern void -glXSwapBuffers( MINI_Display *dpy, GLXDrawable drawable ); - -extern GLXContext -glXGetCurrentContext( void ); - -extern GLXDrawable -glXGetCurrentDrawable( void ); - -extern void -(*glXGetProcAddress(const GLubyte *procname))( void ); - -extern MINI_Bool -glXQueryVersion( MINI_Display *dpy, int *major, int *minor ); - -/* Added in MiniGLX 1.1 */ -extern GLXPbuffer -glXCreatePbuffer( MINI_Display *dpy, GLXFBConfig config, const int *attribList ); - -extern void -glXDestroyPbuffer( MINI_Display *dpy, GLXPbuffer pbuf ); - -extern GLXFBConfig * -glXChooseFBConfig( MINI_Display *dpy, int screen, const int *attribList, - int *nitems ); - -extern XVisualInfo * -glXGetVisualFromFBConfig( MINI_Display *dpy, GLXFBConfig config ); - -extern void *glXAllocateMemoryMESA(Display *dpy, int scrn, - size_t size, float readFreq, - float writeFreq, float priority); - -extern void glXFreeMemoryMESA(Display *dpy, int scrn, void *pointer); - -extern GLuint glXGetMemoryOffsetMESA( Display *dpy, int scrn, - const void *pointer ); -/*@}*/ - -extern void -__glXScrEnableExtension( void *, const char * name ); - -/*@}*/ - - -#ifdef __cplusplus -} -#endif - -#endif /* MINIGLX_H */ diff --git a/nx-X11/extras/Mesa/include/GL/svgamesa.h b/nx-X11/extras/Mesa/include/GL/svgamesa.h deleted file mode 100644 index 67c0e4c5c..000000000 --- a/nx-X11/extras/Mesa/include/GL/svgamesa.h +++ /dev/null @@ -1,97 +0,0 @@ -/* - * Mesa 3-D graphics library - * Version: 4.0 - * Copyright (C) 1995-2001 Brian Paul - * - * This 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. - * - * This 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 this library; if not, write to the Free - * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - */ - - -/* - * SVGA/Mesa interface for Linux. - */ - - -/* - * Intro to using the VGA/Mesa interface - * - * 1. #include the file - * 2. Call vga_init() to initialize the SVGA library. - * 3. Call vga_setmode() to specify the screen size and color depth. - * 4. Call SVGAMesaCreateContext() to setup a Mesa context. If using 8-bit - * color Mesa assumes color index mode, if using 16-bit or deeper color - * Mesa assumes RGB mode. - * 5. Call SVGAMesaMakeCurrent() to activate the Mesa context. - * 6. You can now use the Mesa API functions. - * 7. Before exiting, call SVGAMesaDestroyContext() then vga_setmode(TEXT) - * to restore the original text screen. - * - * Notes - * 1. You must run your executable as root (or use the set UID-bit) because - * the SVGA library requires it. - * 2. The SVGA driver is not fully implemented yet. See svgamesa.c for what - * has to be done yet. - */ - - -#ifndef SVGAMESA_H -#define SVGAMESA_H - - -#define SVGAMESA_MAJOR_VERSION 4 -#define SVGAMESA_MINOR_VERSION 0 - - -#ifdef __cplusplus -extern "C" { -#endif - - -#include "GL/gl.h" - - - -/* - * This is the SVGAMesa context 'handle': - */ -typedef struct svgamesa_context *SVGAMesaContext; - - - -/* - * doubleBuffer flag new in version 2.4 - */ -extern int SVGAMesaInit( int GraphMode ); - -extern int SVGAMesaClose( void ); - -extern SVGAMesaContext SVGAMesaCreateContext( GLboolean doubleBuffer ); - -extern void SVGAMesaDestroyContext( SVGAMesaContext ctx ); - -extern void SVGAMesaMakeCurrent( SVGAMesaContext ctx ); - -extern void SVGAMesaSwapBuffers( void ); - -extern void SVGAMesaSetCI(int ndx, GLubyte red, GLubyte green, GLubyte blue); - -extern SVGAMesaContext SVGAMesaGetCurrentContext( void ); - -#ifdef __cplusplus -} -#endif - - -#endif diff --git a/nx-X11/extras/Mesa/include/GL/uglglutshapes.h b/nx-X11/extras/Mesa/include/GL/uglglutshapes.h deleted file mode 100644 index 28192de2d..000000000 --- a/nx-X11/extras/Mesa/include/GL/uglglutshapes.h +++ /dev/null @@ -1,45 +0,0 @@ -/* uglglutshapes.h - Public header GLUT Shapes */ - -/* Copyright (c) Mark J. Kilgard, 1994, 1995, 1996, 1998. */ - -/* This program is freely distributable without licensing fees and is - provided without guarantee or warrantee expressed or implied. This - program is -not- in the public domain. */ - -#ifndef GLUTSHAPES_H -#define GLUTSHAPES_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -void glutWireSphere (GLdouble radius, GLint slices, GLint stacks); -void glutSolidSphere (GLdouble radius, GLint slices, GLint stacks); -void glutWireCone (GLdouble base, GLdouble height, - GLint slices, GLint stacks); -void glutSolidCone (GLdouble base, GLdouble height, - GLint slices, GLint stacks); -void glutWireCube (GLdouble size); -void glutSolidCube (GLdouble size); -void glutWireTorus (GLdouble innerRadius, GLdouble outerRadius, - GLint sides, GLint rings); -void glutSolidTorus (GLdouble innerRadius, GLdouble outerRadius, - GLint sides, GLint rings); -void glutWireDodecahedron (void); -void glutSolidDodecahedron (void); -void glutWireOctahedron (void); -void glutSolidOctahedron (void); -void glutWireTetrahedron (void); -void glutSolidTetrahedron (void); -void glutWireIcosahedron (void); -void glutSolidIcosahedron (void); -void glutWireTeapot (GLdouble size); -void glutSolidTeapot (GLdouble size); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/nx-X11/extras/Mesa/include/GL/uglmesa.h b/nx-X11/extras/Mesa/include/GL/uglmesa.h deleted file mode 100644 index 7ef584350..000000000 --- a/nx-X11/extras/Mesa/include/GL/uglmesa.h +++ /dev/null @@ -1,155 +0,0 @@ -/* uglmesa.h - Public header UGL/Mesa */ - -/* Copyright (C) 2001 by Wind River Systems, Inc */ - -/* - * Mesa 3-D graphics library - * Version: 4.0 - * - * The MIT License - * 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 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: - * Stephane Raimbault - */ - -#ifndef UGLMESA_H -#define UGLMESA_H - -#ifdef __cplusplus -extern "C" { -#endif - -#define UGL_MESA_MAJOR_VERSION 4 -#define UGL_MESA_MINOR_VERSION 0 - -#include -#include - -/* - * Values for display mode of uglMesaCreateContext () - */ - -/* - * With these mask values, it's possible to test double buffer mode - * with UGL_MESA_DOUBLE mask - * - * SINGLE 0000 0001 - * DOUBLE 0000 0110 - * - SOFT 0000 0010 - * - HARD 0000 0100 - * WINDML 0001 0000 - * - * - */ -#define UGL_MESA_SINGLE 0x01 -#define UGL_MESA_DOUBLE 0x06 -#define UGL_MESA_DOUBLE_SOFTWARE 0x02 -#define UGL_MESA_DOUBLE_HARDWARE 0x04 - -#define UGL_MESA_WINDML_EXCLUSIVE 0x10 - -#define UGL_MESA_FULLSCREEN_WIDTH 0x0 -#define UGL_MESA_FULLSCREEN_HEIGHT 0x0 - -/* - * uglMesaPixelStore() parameters: - */ - -#define UGL_MESA_ROW_LENGTH 0x20 -#define UGL_MESA_Y_UP 0x21 - -/* - * Accepted by uglMesaGetIntegerv: - */ - -#define UGL_MESA_LEFT_X 0x01 -#define UGL_MESA_TOP_Y 0x02 -#define UGL_MESA_WIDTH 0x03 -#define UGL_MESA_HEIGHT 0x04 -#define UGL_MESA_DISPLAY_WIDTH 0x05 -#define UGL_MESA_DISPLAY_HEIGHT 0x06 -#define UGL_MESA_COLOR_FORMAT 0x07 -#define UGL_MESA_COLOR_MODEL 0x08 -#define UGL_MESA_PIXEL_FORMAT 0x09 -#define UGL_MESA_TYPE 0x0A -#define UGL_MESA_RGB 0x0B -#define UGL_MESA_COLOR_INDEXED 0x0C -#define UGL_MESA_SINGLE_BUFFER 0x0D -#define UGL_MESA_DOUBLE_BUFFER 0x0E -#define UGL_MESA_DOUBLE_BUFFER_SOFTWARE 0x0F -#define UGL_MESA_DOUBLE_BUFFER_HARDWARE 0x10 - -/* - * typedefs - */ - -typedef struct uglMesaContext * UGL_MESA_CONTEXT; - -UGL_MESA_CONTEXT uglMesaCreateNewContext (GLenum mode, - UGL_MESA_CONTEXT share_list); - -UGL_MESA_CONTEXT uglMesaCreateNewContextExt (GLenum mode, - GLint depth_bits, - GLint stencil_bits, - GLint accum_red_bits, - GLint accum_green_bits, - GLint accum_blue_bits, - GLint accum_alpha_bits, - UGL_MESA_CONTEXT share_list); - -GLboolean uglMesaMakeCurrentContext (UGL_MESA_CONTEXT umc, - GLsizei left, GLsizei top, - GLsizei width, GLsizei height); - -GLboolean uglMesaMoveWindow (GLsizei dx, GLsizei dy); - -GLboolean uglMesaMoveToWindow (GLsizei left, GLsizei top); - -GLboolean uglMesaResizeWindow (GLsizei dw, GLsizei dh); - -GLboolean uglMesaResizeToWindow (GLsizei width, GLsizei height); - -void uglMesaDestroyContext (void); - -UGL_MESA_CONTEXT uglMesaGetCurrentContext (void); - -void uglMesaSwapBuffers (void); - -void uglMesaPixelStore (GLint pname, GLint value); - -void uglMesaGetIntegerv (GLint pname, GLint *value); - -GLboolean uglMesaGetDepthBuffer (GLint *width, GLint *height, - GLint *bytesPerValue, void **buffer); - -GLboolean uglMesaGetColorBuffer (GLint *width, GLint *height, - GLint *format, void **buffer); - -GLboolean uglMesaSetColor (GLubyte index, GLfloat red, - GLfloat green, GLfloat blue); - -#ifdef __cplusplus -} -#endif - - -#endif diff --git a/nx-X11/extras/Mesa/include/GL/vms_x_fix.h b/nx-X11/extras/Mesa/include/GL/vms_x_fix.h deleted file mode 100644 index db754f655..000000000 --- a/nx-X11/extras/Mesa/include/GL/vms_x_fix.h +++ /dev/null @@ -1,880 +0,0 @@ -/*************************************************************************** - * * - * Repair definitions of Xlib when compileing with /name=(as_is) on VMS * - * * - * Author : Jouk Jansen (joukj@hrem.stm.tudelft.nl) * - * * - * Last revision : 22 August 2000 * - * * - ***************************************************************************/ - -#ifndef VMS_X_FIX -#define VMS_X_FIX - -#define _XRegisterFilterByType _XREGISTERFILTERBYTYPE -#define XAllocClassHint XALLOCCLASSHINT -#define XAllocColor XALLOCCOLOR -#define XAllocColorCells XALLOCCOLORCELLS -#define XAllocSizeHints XALLOCSIZEHINTS -#define XAllocWMHints XALLOCWMHINTS -#define XAutoRepeatOff XAUTOREPEATOFF -#define XAutoRepeatOn XAUTOREPEATON -#define XBaseFontNameListOfFontSet XBASEFONTNAMELISTOFFONTSET -#define XBell XBELL -#define XBitmapPad XBITMAPPAD -#define XChangeActivePointerGrab XCHANGEACTIVEPOINTERGRAB -#define XChangeGC XCHANGEGC -#define XChangeProperty XCHANGEPROPERTY -#define XChangeWindowAttributes XCHANGEWINDOWATTRIBUTES -#define XCheckIfEvent XCHECKIFEVENT -#define XCheckMaskEvent XCHECKMASKEVENT -#define XCheckTypedWindowEvent XCHECKTYPEDWINDOWEVENT -#define XCheckWindowEvent XCHECKWINDOWEVENT -#define XClearArea XCLEARAREA -#define XClearWindow XCLEARWINDOW -#define XClipBox XCLIPBOX -#define XCloseDisplay XCLOSEDISPLAY -#define XCloseIM XCLOSEIM -#define XConfigureWindow XCONFIGUREWINDOW -#define XConvertSelection XCONVERTSELECTION -#define XCopyArea XCOPYAREA -#define XCopyGC XCOPYGC -#define XCopyPlane XCOPYPLANE -#define XCreateBitmapFromData XCREATEBITMAPFROMDATA -#define XCreateColormap XCREATECOLORMAP -#define XCreateFontCursor XCREATEFONTCURSOR -#define XCreateFontSet XCREATEFONTSET -#define XCreateGC XCREATEGC -#define XCreateIC XCREATEIC -#define XCreateImage XCREATEIMAGE -#define XCreatePixmap XCREATEPIXMAP -#define XCreatePixmapCursor XCREATEPIXMAPCURSOR -#define XCreatePixmapFromBitmapData XCREATEPIXMAPFROMBITMAPDATA -#define XCreateRegion XCREATEREGION -#define XCreateSimpleWindow XCREATESIMPLEWINDOW -#define XCreateWindow XCREATEWINDOW -#define XDefaultScreenOfDisplay XDEFAULTSCREENOFDISPLAY -#define XDefineCursor XDEFINECURSOR -#define XDeleteProperty XDELETEPROPERTY -#define XDestroyIC XDESTROYIC -#define XDestroyRegion XDESTROYREGION -#define XDestroyWindow XDESTROYWINDOW -#define XDisplayName XDISPLAYNAME -#define XDisplayOfScreen XDISPLAYOFSCREEN -#define XDrawArc XDRAWARC -#define XDrawImageString XDRAWIMAGESTRING -#define XDrawImageString16 XDRAWIMAGESTRING16 -#define XDrawLine XDRAWLINE -#define XDrawLines XDRAWLINES -#define XDrawPoint XDRAWPOINT -#define XDrawPoints XDRAWPOINTS -#define XDrawRectangle XDRAWRECTANGLE -#define XDrawSegments XDRAWSEGMENTS -#define XDrawString XDRAWSTRING -#define XDrawString16 XDRAWSTRING16 -#define XEmptyRegion XEMPTYREGION -#define XEqualRegion XEQUALREGION -#define XEventsQueued XEVENTSQUEUED -#define XExtentsOfFontSet XEXTENTSOFFONTSET -#define XFillArc XFILLARC -#define XFillPolygon XFILLPOLYGON -#define XFillRectangle XFILLRECTANGLE -#define XFillRectangles XFILLRECTANGLES -#define XFilterEvent XFILTEREVENT -#define XFlush XFLUSH -#define XFontsOfFontSet XFONTSOFFONTSET -#define XFree XFREE -#define XFreeColormap XFREECOLORMAP -#define XFreeColors XFREECOLORS -#define XFreeCursor XFREECURSOR -#define XFreeFont XFREEFONT -#define XFreeFontInfo XFREEFONTINFO -#define XFreeFontNames XFREEFONTNAMES -#define XFreeFontSet XFREEFONTSET -#define XFreeGC XFREEGC -#define XFreeModifiermap XFREEMODIFIERMAP -#define XFreePixmap XFREEPIXMAP -#define XFreeStringList XFREESTRINGLIST -#define XGetAtomName XGETATOMNAME -#define XGetDefault XGETDEFAULT -#define XGetErrorDatabaseText XGETERRORDATABASETEXT -#define XGetErrorText XGETERRORTEXT -#define XGetFontProperty XGETFONTPROPERTY -#define XGetGCValues XGETGCVALUES -#define XGetGeometry XGETGEOMETRY -#define XGetICValues XGETICVALUES -#define XGetIMValues XGETIMVALUES -#define XGetImage XGETIMAGE -#define XGetKeyboardControl XGETKEYBOARDCONTROL -#define XGetModifierMapping XGETMODIFIERMAPPING -#define XGetMotionEvents XGETMOTIONEVENTS -#define XGetNormalHints XGETNORMALHINTS -#define XGetSelectionOwner XGETSELECTIONOWNER -#define XGetSubImage XGETSUBIMAGE -#define XGetVisualInfo XGETVISUALINFO -#define XGetWMColormapWindows XGETWMCOLORMAPWINDOWS -#define XGetWMHints XGETWMHINTS -#define XGetWMName XGETWMNAME -#define XGetWMNormalHints XGETWMNORMALHINTS -#define XGetWindowAttributes XGETWINDOWATTRIBUTES -#define XGetWindowProperty XGETWINDOWPROPERTY -#define XGrabKeyboard XGRABKEYBOARD -#define XGrabPointer XGRABPOINTER -#define XGrabServer XGRABSERVER -#define XHeightOfScreen XHEIGHTOFSCREEN -#define XIfEvent XIFEVENT -#define XInternAtom XINTERNATOM -#define XIntersectRegion XINTERSECTREGION -#define XKeycodeToKeysym XKEYCODETOKEYSYM -#define XKeysymToKeycode XKEYSYMTOKEYCODE -#define XKeysymToString XKEYSYMTOSTRING -#define XListFonts XLISTFONTS -#define XListFontsWithInfo XLISTFONTSWITHINFO -#define XListPixmapFormats XLISTPIXMAPFORMATS -#define XListProperties XLISTPROPERTIES -#define XLoadQueryFont XLOADQUERYFONT -#define XLookupString XLOOKUPSTRING -#define XLowerWindow XLOWERWINDOW -#define XMapRaised XMAPRAISED -#define XMapWindow XMAPWINDOW -#define XMatchVisualInfo XMATCHVISUALINFO -#define XMoveResizeWindow XMOVERESIZEWINDOW -#define XMoveWindow XMOVEWINDOW -#define XNextEvent XNEXTEVENT -#define XOffsetRegion XOFFSETREGION -#define XOpenDisplay XOPENDISPLAY -#define XOpenIM XOPENIM -#define XParseColor XPARSECOLOR -#define XParseGeometry XPARSEGEOMETRY -#define XPeekEvent XPEEKEVENT -#define XPending XPENDING -#define XPointInRegion XPOINTINREGION -#define XPolygonRegion XPOLYGONREGION -#define XPutBackEvent XPUTBACKEVENT -#define XPutImage XPUTIMAGE -#define XQueryColor XQUERYCOLOR -#define XQueryColors XQUERYCOLORS -#define XQueryExtension XQUERYEXTENSION -#define XQueryPointer XQUERYPOINTER -#define XQueryTree XQUERYTREE -#define XRaiseWindow XRAISEWINDOW -#define XReconfigureWMWindow XRECONFIGUREWMWINDOW -#define XRectInRegion XRECTINREGION -#define XRefreshKeyboardMapping XREFRESHKEYBOARDMAPPING -#define XReparentWindow XREPARENTWINDOW -#define XResizeWindow XRESIZEWINDOW -#define XRestackWindows XRESTACKWINDOWS -#define XRootWindowOfScreen XROOTWINDOWOFSCREEN -#define XScreenNumberOfScreen XSCREENNUMBEROFSCREEN -#define XSelectAsyncEvent XSELECTASYNCEVENT -#define XSelectAsyncInput XSELECTASYNCINPUT -#define XSelectInput XSELECTINPUT -#define XSendEvent XSENDEVENT -#define XServerVendor XSERVERVENDOR -#define XSetBackground XSETBACKGROUND -#define XSetClassHint XSETCLASSHINT -#define XSetClipMask XSETCLIPMASK -#define XSetClipOrigin XSETCLIPORIGIN -#define XSetClipRectangles XSETCLIPRECTANGLES -#define XSetCloseDownMode XSETCLOSEDOWNMODE -#define XSetCommand XSETCOMMAND -#define XSetDashes XSETDASHES -#define XSetErrorHandler XSETERRORHANDLER -#define XSetFillStyle XSETFILLSTYLE -#define XSetFont XSETFONT -#define XSetForeground XSETFOREGROUND -#define XSetFunction XSETFUNCTION -#define XSetGraphicsExposures XSETGRAPHICSEXPOSURES -#define XSetICFocus XSETICFOCUS -#define XSetICValues XSETICVALUES -#define XSetIOErrorHandler XSETIOERRORHANDLER -#define XSetInputFocus XSETINPUTFOCUS -#define XSetLineAttributes XSETLINEATTRIBUTES -#define XSetLocaleModifiers XSETLOCALEMODIFIERS -#define XSetNormalHints XSETNORMALHINTS -#define XSetRegion XSETREGION -#define XSetSelectionOwner XSETSELECTIONOWNER -#define XSetStipple XSETSTIPPLE -#define XSetSubwindowMode XSETSUBWINDOWMODE -#define XSetTSOrigin XSETTSORIGIN -#define XSetTile XSETTILE -#define XSetTransientForHint XSETTRANSIENTFORHINT -#define XSetWMColormapWindows XSETWMCOLORMAPWINDOWS -#define XSetWMHints XSETWMHINTS -#define XSetWMIconName XSETWMICONNAME -#define XSetWMName XSETWMNAME -#define XSetWMNormalHints XSETWMNORMALHINTS -#define XSetWMProperties XSETWMPROPERTIES -#define XSetWMProtocols XSETWMPROTOCOLS -#define XSetWindowBackground XSETWINDOWBACKGROUND -#define XSetWindowBackgroundPixmap XSETWINDOWBACKGROUNDPIXMAP -#define XSetWindowColormap XSETWINDOWCOLORMAP -#define XShapeCombineMask XSHAPECOMBINEMASK -#define XShapeCombineRectangles XSHAPECOMBINERECTANGLES -#define XShapeGetRectangles XSHAPEGETRECTANGLES -#define XShrinkRegion XSHRINKREGION -#define XStoreColor XSTORECOLOR -#define XStoreColors XSTORECOLORS -#define XStoreName XSTORENAME -#define XStringToKeysym XSTRINGTOKEYSYM -#define XSubtractRegion XSUBTRACTREGION -#define XSupportsLocale XSUPPORTSLOCALE -#define XSync XSYNC -#define XSynchronize XSYNCHRONIZE -#define XTextExtents XTEXTEXTENTS -#define XTextExtents16 XTEXTEXTENTS16 -#define XTextWidth XTEXTWIDTH -#define XTextWidth16 XTEXTWIDTH16 -#define XTranslateCoordinates XTRANSLATECOORDINATES -#define XUndefineCursor XUNDEFINECURSOR -#define XUngrabKeyboard XUNGRABKEYBOARD -#define XUngrabPointer XUNGRABPOINTER -#define XUngrabServer XUNGRABSERVER -#define XUnionRectWithRegion XUNIONRECTWITHREGION -#define XUnionRegion XUNIONREGION -#define XUnmapWindow XUNMAPWINDOW -#define _XUnregisterFilter _XUNREGISTERFILTER -#define XUnsetICFocus XUNSETICFOCUS -#define XVaCreateNestedList XVACREATENESTEDLIST -#define XVisualIDFromVisual XVISUALIDFROMVISUAL -#define XWidthOfScreen XWIDTHOFSCREEN -#define XWindowEvent XWINDOWEVENT -#define XWithdrawWindow XWITHDRAWWINDOW -#define XXorRegion XXORREGION -#define XmAddProtocolCallback XMADDPROTOCOLCALLBACK -#define XmAddProtocols XMADDPROTOCOLS -#define XmChangeColor XMCHANGECOLOR -#define XmClipboardCopy XMCLIPBOARDCOPY -#define XmClipboardEndCopy XMCLIPBOARDENDCOPY -#define XmClipboardInquireLength XMCLIPBOARDINQUIRELENGTH -#define XmClipboardLock XMCLIPBOARDLOCK -#define XmClipboardRetrieve XMCLIPBOARDRETRIEVE -#define XmClipboardStartCopy XMCLIPBOARDSTARTCOPY -#define XmClipboardUnlock XMCLIPBOARDUNLOCK -#define XmCreateArrowButton XMCREATEARROWBUTTON -#define XmCreateArrowButtonGadget XMCREATEARROWBUTTONGADGET -#define XmCreateCascadeButton XMCREATECASCADEBUTTON -#define XmCreateDialogShell XMCREATEDIALOGSHELL -#define XmCreateDragIcon XMCREATEDRAGICON -#define XmCreateDrawingArea XMCREATEDRAWINGAREA -#define XmCreateDrawnButton XMCREATEDRAWNBUTTON -#define XmCreateFileSelectionBox XMCREATEFILESELECTIONBOX -#define XmCreateFileSelectionDialog XMCREATEFILESELECTIONDIALOG -#define XmCreateForm XMCREATEFORM -#define XmCreateFormDialog XMCREATEFORMDIALOG -#define XmCreateFrame XMCREATEFRAME -#define XmCreateInformationDialog XMCREATEINFORMATIONDIALOG -#define XmCreateLabelGadget XMCREATELABELGADGET -#define XmCreateMainWindow XMCREATEMAINWINDOW -#define XmCreateMenuBar XMCREATEMENUBAR -#define XmCreateMessageBox XMCREATEMESSAGEBOX -#define XmCreateMessageDialog XMCREATEMESSAGEDIALOG -#define XmCreateOptionMenu XMCREATEOPTIONMENU -#define XmCreatePanedWindow XMCREATEPANEDWINDOW -#define XmCreatePopupMenu XMCREATEPOPUPMENU -#define XmCreatePromptDialog XMCREATEPROMPTDIALOG -#define XmCreatePulldownMenu XMCREATEPULLDOWNMENU -#define XmCreatePushButton XMCREATEPUSHBUTTON -#define XmCreatePushButtonGadget XMCREATEPUSHBUTTONGADGET -#define XmCreateQuestionDialog XMCREATEQUESTIONDIALOG -#define XmCreateRadioBox XMCREATERADIOBOX -#define XmCreateRowColumn XMCREATEROWCOLUMN -#define XmCreateScale XMCREATESCALE -#define XmCreateScrollBar XMCREATESCROLLBAR -#define XmCreateScrolledList XMCREATESCROLLEDLIST -#define XmCreateScrolledText XMCREATESCROLLEDTEXT -#define XmCreateScrolledWindow XMCREATESCROLLEDWINDOW -#define XmCreateSelectionDialog XMCREATESELECTIONDIALOG -#define XmCreateSeparator XMCREATESEPARATOR -#define XmCreateSeparatorGadget XMCREATESEPARATORGADGET -#define XmCreateTemplateDialog XMCREATETEMPLATEDIALOG -#define XmCreateText XMCREATETEXT -#define XmCreateTextField XMCREATETEXTFIELD -#define XmCreateToggleButton XMCREATETOGGLEBUTTON -#define XmCreateToggleButtonGadget XMCREATETOGGLEBUTTONGADGET -#define XmDragStart XMDRAGSTART -#define XmDropSiteRegister XMDROPSITEREGISTER -#define XmDropSiteUnregister XMDROPSITEUNREGISTER -#define XmDropSiteUpdate XMDROPSITEUPDATE -#define XmDropTransferStart XMDROPTRANSFERSTART -#define XmFileSelectionBoxGetChild XMFILESELECTIONBOXGETCHILD -#define XmFileSelectionDoSearch XMFILESELECTIONDOSEARCH -#define XmFontListAppendEntry XMFONTLISTAPPENDENTRY -#define XmFontListCopy XMFONTLISTCOPY -#define XmFontListCreate XMFONTLISTCREATE -#define XmFontListEntryCreate XMFONTLISTENTRYCREATE -#define XmFontListEntryFree XMFONTLISTENTRYFREE -#define XmFontListEntryGetFont XMFONTLISTENTRYGETFONT -#define XmFontListEntryGetTag XMFONTLISTENTRYGETTAG -#define XmFontListEntryLoad XMFONTLISTENTRYLOAD -#define XmFontListFree XMFONTLISTFREE -#define XmFontListFreeFontContext XMFONTLISTFREEFONTCONTEXT -#define XmFontListGetNextFont XMFONTLISTGETNEXTFONT -#define XmFontListInitFontContext XMFONTLISTINITFONTCONTEXT -#define XmFontListNextEntry XMFONTLISTNEXTENTRY -#define XmGetColors XMGETCOLORS -#define XmGetFocusWidget XMGETFOCUSWIDGET -#define XmGetMenuCursor XMGETMENUCURSOR -#define XmGetPixmapByDepth XMGETPIXMAPBYDEPTH -#define XmGetTearOffControl XMGETTEAROFFCONTROL -#define XmGetXmDisplay XMGETXMDISPLAY -#define XmImMbLookupString XMIMMBLOOKUPSTRING -#define XmImRegister XMIMREGISTER -#define XmImSetFocusValues XMIMSETFOCUSVALUES -#define XmImSetValues XMIMSETVALUES -#define XmImUnregister XMIMUNREGISTER -#define XmImUnsetFocus XMIMUNSETFOCUS -#define XmInternAtom XMINTERNATOM -#define XmIsMotifWMRunning XMISMOTIFWMRUNNING -#define XmListAddItem XMLISTADDITEM -#define XmListAddItemUnselected XMLISTADDITEMUNSELECTED -#define XmListAddItemsUnselected XMLISTADDITEMSUNSELECTED -#define XmListDeleteAllItems XMLISTDELETEALLITEMS -#define XmListDeleteItemsPos XMLISTDELETEITEMSPOS -#define XmListDeletePos XMLISTDELETEPOS -#define XmListDeselectAllItems XMLISTDESELECTALLITEMS -#define XmListDeselectPos XMLISTDESELECTPOS -#define XmListGetKbdItemPos XMLISTGETKBDITEMPOS -#define XmListGetMatchPos XMLISTGETMATCHPOS -#define XmListGetSelectedPos XMLISTGETSELECTEDPOS -#define XmListPosSelected XMLISTPOSSELECTED -#define XmListSelectItem XMLISTSELECTITEM -#define XmListSelectPos XMLISTSELECTPOS -#define XmListSetBottomPos XMLISTSETBOTTOMPOS -#define XmListSetItem XMLISTSETITEM -#define XmListSetKbdItemPos XMLISTSETKBDITEMPOS -#define XmListSetPos XMLISTSETPOS -#define XmMainWindowSetAreas XMMAINWINDOWSETAREAS -#define XmMenuPosition XMMENUPOSITION -#define XmMessageBoxGetChild XMMESSAGEBOXGETCHILD -#define XmOptionButtonGadget XMOPTIONBUTTONGADGET -#define XmOptionLabelGadget XMOPTIONLABELGADGET -#define XmProcessTraversal XMPROCESSTRAVERSAL -#define XmQmotif XMQMOTIF -#define XmRemoveProtocolCallback XMREMOVEPROTOCOLCALLBACK -#define XmRepTypeGetId XMREPTYPEGETID -#define XmRepTypeGetRecord XMREPTYPEGETRECORD -#define XmRepTypeRegister XMREPTYPEREGISTER -#define XmRepTypeValidValue XMREPTYPEVALIDVALUE -#define XmScrollBarSetValues XMSCROLLBARSETVALUES -#define XmScrolledWindowSetAreas XMSCROLLEDWINDOWSETAREAS -#define XmSelectionBoxGetChild XMSELECTIONBOXGETCHILD -#define XmStringByteCompare XMSTRINGBYTECOMPARE -#define XmStringCompare XMSTRINGCOMPARE -#define XmStringConcat XMSTRINGCONCAT -#define XmStringCopy XMSTRINGCOPY -#define XmStringCreate XMSTRINGCREATE -#define XmStringCreateLocalized XMSTRINGCREATELOCALIZED -#define XmStringCreateLtoR XMSTRINGCREATELTOR -#define XmStringCreateSimple XMSTRINGCREATESIMPLE -#define XmStringDraw XMSTRINGDRAW -#define XmStringDrawUnderline XMSTRINGDRAWUNDERLINE -#define XmStringExtent XMSTRINGEXTENT -#define XmStringFree XMSTRINGFREE -#define XmStringFreeContext XMSTRINGFREECONTEXT -#define XmStringGetLtoR XMSTRINGGETLTOR -#define XmStringGetNextComponent XMSTRINGGETNEXTCOMPONENT -#define XmStringGetNextSegment XMSTRINGGETNEXTSEGMENT -#define XmStringInitContext XMSTRINGINITCONTEXT -#define XmStringLength XMSTRINGLENGTH -#define XmStringLtoRCreate XMSTRINGLTORCREATE -#define XmStringNConcat XMSTRINGNCONCAT -#define XmStringSegmentCreate XMSTRINGSEGMENTCREATE -#define XmStringWidth XMSTRINGWIDTH -#define XmTextClearSelection XMTEXTCLEARSELECTION -#define XmTextFieldGetEditable XMTEXTFIELDGETEDITABLE -#define XmTextFieldGetInsertionPosition XMTEXTFIELDGETINSERTIONPOSITION -#define XmTextFieldGetLastPosition XMTEXTFIELDGETLASTPOSITION -#define XmTextFieldGetSelection XMTEXTFIELDGETSELECTION -#define XmTextFieldGetString XMTEXTFIELDGETSTRING -#define XmTextFieldInsert XMTEXTFIELDINSERT -#define XmTextFieldRemove XMTEXTFIELDREMOVE -#define XmTextFieldSetSelection XMTEXTFIELDSETSELECTION -#define XmTextFieldSetString XMTEXTFIELDSETSTRING -#define XmTextGetCursorPosition XMTEXTGETCURSORPOSITION -#define XmTextGetInsertionPosition XMTEXTGETINSERTIONPOSITION -#define XmTextGetLastPosition XMTEXTGETLASTPOSITION -#define XmTextGetMaxLength XMTEXTGETMAXLENGTH -#define XmTextGetSelection XMTEXTGETSELECTION -#define XmTextGetSelectionPosition XMTEXTGETSELECTIONPOSITION -#define XmTextGetString XMTEXTGETSTRING -#define XmTextInsert XMTEXTINSERT -#define XmTextRemove XMTEXTREMOVE -#define XmTextReplace XMTEXTREPLACE -#define XmTextSetCursorPosition XMTEXTSETCURSORPOSITION -#define XmTextSetHighlight XMTEXTSETHIGHLIGHT -#define XmTextSetInsertionPosition XMTEXTSETINSERTIONPOSITION -#define XmTextSetSelection XMTEXTSETSELECTION -#define XmTextSetString XMTEXTSETSTRING -#define XmToggleButtonGadgetGetState XMTOGGLEBUTTONGADGETGETSTATE -#define XmToggleButtonGadgetSetState XMTOGGLEBUTTONGADGETSETSTATE -#define XmToggleButtonGetState XMTOGGLEBUTTONGETSTATE -#define XmToggleButtonSetState XMTOGGLEBUTTONSETSTATE -#define XmUpdateDisplay XMUPDATEDISPLAY -#define XmVaCreateSimpleRadioBox XMVACREATESIMPLERADIOBOX -#define XmbDrawString XMBDRAWSTRING -#define XmbLookupString XMBLOOKUPSTRING -#define XmbResetIC XMBRESETIC -#define XmbSetWMProperties XMBSETWMPROPERTIES -#define XmbTextEscapement XMBTEXTESCAPEMENT -#define XmbTextExtents XMBTEXTEXTENTS -#define XmbTextListToTextProperty XMBTEXTLISTTOTEXTPROPERTY -#define XmbTextPropertyToTextList XMBTEXTPROPERTYTOTEXTLIST -#define XmuClientWindow XMUCLIENTWINDOW -#define XmuPrintDefaultErrorMessage XMUPRINTDEFAULTERRORMESSAGE -#define XrmGetDatabase XRMGETDATABASE -#define XrmGetResource XRMGETRESOURCE -#define XrmPutStringResource XRMPUTSTRINGRESOURCE -#define XrmQuarkToString XRMQUARKTOSTRING -#define XrmStringToQuark XRMSTRINGTOQUARK -#define XtAddCallback XTADDCALLBACK -#define XtAddCallbacks XTADDCALLBACKS -#define XtAddEventHandler XTADDEVENTHANDLER -#define XtAddGrab XTADDGRAB -#define XtAllocateGC XTALLOCATEGC -#define XtAppAddActions XTAPPADDACTIONS -#define XtAppAddInput XTAPPADDINPUT -#define XtAppAddTimeOut XTAPPADDTIMEOUT -#define XtAppCreateShell XTAPPCREATESHELL -#define XtAppInitialize XTAPPINITIALIZE -#define XtAppNextEvent XTAPPNEXTEVENT -#define XtAppPeekEvent XTAPPPEEKEVENT -#define XtAppPending XTAPPPENDING -#define XtAppProcessEvent XTAPPPROCESSEVENT -#define XtAppSetErrorHandler XTAPPSETERRORHANDLER -#define XtAppSetFallbackResources XTAPPSETFALLBACKRESOURCES -#define XtAppSetWarningHandler XTAPPSETWARNINGHANDLER -#define XtAppSetWarningMsgHandler XTAPPSETWARNINGMSGHANDLER -#define XtAppWarning XTAPPWARNING -#define XtCallActionProc XTCALLACTIONPROC -#define XtCallCallbackList XTCALLCALLBACKLIST -#define XtCallCallbacks XTCALLCALLBACKS -#define XtConfigureWidget XTCONFIGUREWIDGET -#define XtConvertAndStore XTCONVERTANDSTORE -#define XtCreateApplicationContext XTCREATEAPPLICATIONCONTEXT -#define XtCreateManagedWidget XTCREATEMANAGEDWIDGET -#define XtCreatePopupShell XTCREATEPOPUPSHELL -#define XtCreateWidget XTCREATEWIDGET -#define XtDatabase XTDATABASE -#define XtDestroyWidget XTDESTROYWIDGET -#define XtDisownSelection XTDISOWNSELECTION -#define XtDispatchEvent XTDISPATCHEVENT -#define XtDisplayOfObject XTDISPLAYOFOBJECT -#define XtDisplayStringConvWarning XTDISPLAYSTRINGCONVWARNING -#define XtDisplayToApplicationContext XTDISPLAYTOAPPLICATIONCONTEXT -#define XtAppAddWorkProc XTAPPADDWORKPROC -#define XtRemoveWorkProc XTREMOVEWORKPROC -#define XtFree XTFREE -#define XtGetActionKeysym XTGETACTIONKEYSYM -#define XtGetActionList XTGETACTIONLIST -#define XtGetApplicationNameAndClass XTGETAPPLICATIONNAMEANDCLASS -#define XtGetApplicationResources XTGETAPPLICATIONRESOURCES -#define XtGetGC XTGETGC -#define XtGetMultiClickTime XTGETMULTICLICKTIME -#define XtGetSelectionValue XTGETSELECTIONVALUE -#define XtGetSelectionValues XTGETSELECTIONVALUES -#define XtGetSubresources XTGETSUBRESOURCES -#define XtGetValues XTGETVALUES -#define XtGrabKeyboard XTGRABKEYBOARD -#define XtGrabPointer XTGRABPOINTER -#define XtHasCallbacks XTHASCALLBACKS -#define XtInitializeWidgetClass XTINITIALIZEWIDGETCLASS -#define XtInsertEventHandler XTINSERTEVENTHANDLER -#define XtIsManaged XTISMANAGED -#define XtIsObject XTISOBJECT -#define XtIsSensitive XTISSENSITIVE -#define XtIsSubclass XTISSUBCLASS -#define XtLastTimestampProcessed XTLASTTIMESTAMPPROCESSED -#define XtMakeGeometryRequest XTMAKEGEOMETRYREQUEST -#define XtMakeResizeRequest XTMAKERESIZEREQUEST -#define XtMalloc XTMALLOC -#define XtManageChild XTMANAGECHILD -#define XtManageChildren XTMANAGECHILDREN -#define XtMergeArgLists XTMERGEARGLISTS -#define XtMoveWidget XTMOVEWIDGET -#define XtName XTNAME -#define XtNameToWidget XTNAMETOWIDGET -#define XtOpenDisplay XTOPENDISPLAY -#define XtOverrideTranslations XTOVERRIDETRANSLATIONS -#define XtOwnSelection XTOWNSELECTION -#define XtParseTranslationTable XTPARSETRANSLATIONTABLE -#define XtPopdown XTPOPDOWN -#define XtPopup XTPOPUP -#define XtQueryGeometry XTQUERYGEOMETRY -#define XtRealizeWidget XTREALIZEWIDGET -#define XtRealloc XTREALLOC -#define XtReleaseGC XTRELEASEGC -#define XtRemoveAllCallbacks XTREMOVEALLCALLBACKS -#define XtRemoveCallback XTREMOVECALLBACK -#define XtRemoveEventHandler XTREMOVEEVENTHANDLER -#define XtRemoveGrab XTREMOVEGRAB -#define XtRemoveInput XTREMOVEINPUT -#define XtRemoveTimeOut XTREMOVETIMEOUT -#define XtResizeWidget XTRESIZEWIDGET -#define XtResolvePathname XTRESOLVEPATHNAME -#define XtSetKeyboardFocus XTSETKEYBOARDFOCUS -#define XtSetMappedWhenManaged XTSETMAPPEDWHENMANAGED -#define XtSetSensitive XTSETSENSITIVE -#define XtSetTypeConverter XTSETTYPECONVERTER -#define XtSetValues XTSETVALUES -#define XtShellStrings XTSHELLSTRINGS -#define XtStrings XTSTRINGS -#define XtToolkitInitialize XTTOOLKITINITIALIZE -#define XtTranslateCoords XTTRANSLATECOORDS -#define XtTranslateKeycode XTTRANSLATEKEYCODE -#define XtUngrabKeyboard XTUNGRABKEYBOARD -#define XtUngrabPointer XTUNGRABPOINTER -#define XtUnmanageChild XTUNMANAGECHILD -#define XtUnmanageChildren XTUNMANAGECHILDREN -#define XtUnrealizeWidget XTUNREALIZEWIDGET -#define XtVaCreateManagedWidget XTVACREATEMANAGEDWIDGET -#define XtVaCreateWidget XTVACREATEWIDGET -#define XtVaGetValues XTVAGETVALUES -#define XtVaSetValues XTVASETVALUES -#define XtWarning XTWARNING -#define XtWidgetToApplicationContext XTWIDGETTOAPPLICATIONCONTEXT -#define XtWindowOfObject XTWINDOWOFOBJECT -#define XtWindowToWidget XTWINDOWTOWIDGET -#define XwcDrawString XWCDRAWSTRING -#define XwcFreeStringList XWCFREESTRINGLIST -#define XwcTextEscapement XWCTEXTESCAPEMENT -#define XwcTextExtents XWCTEXTEXTENTS -#define XwcTextListToTextProperty XWCTEXTLISTTOTEXTPROPERTY -#define XwcTextPropertyToTextList XWCTEXTPROPERTYTOTEXTLIST -#define _XmBottomShadowColorDefault _XMBOTTOMSHADOWCOLORDEFAULT -#define _XmClearBorder _XMCLEARBORDER -#define _XmConfigureObject _XMCONFIGUREOBJECT -#define _XmDestroyParentCallback _XMDESTROYPARENTCALLBACK -#define _XmDrawArrow _XMDRAWARROW -#define _XmDrawShadows _XMDRAWSHADOWS -#define _XmFontListGetDefaultFont _XMFONTLISTGETDEFAULTFONT -#define _XmFromHorizontalPixels _XMFROMHORIZONTALPIXELS -#define _XmFromVerticalPixels _XMFROMVERTICALPIXELS -#define _XmGetClassExtensionPtr _XMGETCLASSEXTENSIONPTR -#define _XmGetDefaultFontList _XMGETDEFAULTFONTLIST -#define _XmGetTextualDragIcon _XMGETTEXTUALDRAGICON -#define _XmGetWidgetExtData _XMGETWIDGETEXTDATA -#define _XmGrabKeyboard _XMGRABKEYBOARD -#define _XmGrabPointer _XMGRABPOINTER -#define _XmInheritClass _XMINHERITCLASS -#define _XmInputInGadget _XMINPUTINGADGET -#define _XmMakeGeometryRequest _XMMAKEGEOMETRYREQUEST -#define _XmMenuPopDown _XMMENUPOPDOWN -#define _XmMoveObject _XMMOVEOBJECT -#define _XmNavigChangeManaged _XMNAVIGCHANGEMANAGED -#define _XmOSBuildFileList _XMOSBUILDFILELIST -#define _XmOSFileCompare _XMOSFILECOMPARE -#define _XmOSFindPatternPart _XMOSFINDPATTERNPART -#define _XmOSQualifyFileSpec _XMOSQUALIFYFILESPEC -#define _XmPostPopupMenu _XMPOSTPOPUPMENU -#define _XmPrimitiveEnter _XMPRIMITIVEENTER -#define _XmPrimitiveLeave _XMPRIMITIVELEAVE -#define _XmRedisplayGadgets _XMREDISPLAYGADGETS -#define _XmShellIsExclusive _XMSHELLISEXCLUSIVE -#define _XmStringDraw _XMSTRINGDRAW -#define _XmStringGetTextConcat _XMSTRINGGETTEXTCONCAT -#define _XmStrings _XMSTRINGS -#define _XmToHorizontalPixels _XMTOHORIZONTALPIXELS -#define _XmToVerticalPixels _XMTOVERTICALPIXELS -#define _XmTopShadowColorDefault _XMTOPSHADOWCOLORDEFAULT -#define _Xm_fastPtr _XM_FASTPTR -#define _XtCheckSubclassFlag _XTCHECKSUBCLASSFLAG -#define _XtInherit _XTINHERIT -#define _XtInheritTranslations _XTINHERITTRANSLATIONS -#define applicationShellWidgetClass APPLICATIONSHELLWIDGETCLASS -#define compositeWidgetClass COMPOSITEWIDGETCLASS -#define overrideShellWidgetClass OVERRIDESHELLWIDGETCLASS -#define shellWidgetClass SHELLWIDGETCLASS -#define topLevelShellClassRec TOPLEVELSHELLCLASSREC -#define topLevelShellWidgetClass TOPLEVELSHELLWIDGETCLASS -#define transientShellWidgetClass TRANSIENTSHELLWIDGETCLASS -#define vendorShellClassRec VENDORSHELLCLASSREC -#define vendorShellWidgetClass VENDORSHELLWIDGETCLASS -#define wmShellWidgetClass WMSHELLWIDGETCLASS -#define xmArrowButtonWidgetClass XMARROWBUTTONWIDGETCLASS -#define xmCascadeButtonClassRec XMCASCADEBUTTONCLASSREC -#define xmCascadeButtonGadgetClass XMCASCADEBUTTONGADGETCLASS -#define xmCascadeButtonWidgetClass XMCASCADEBUTTONWIDGETCLASS -#define xmDialogShellWidgetClass XMDIALOGSHELLWIDGETCLASS -#define xmDrawingAreaWidgetClass XMDRAWINGAREAWIDGETCLASS -#define xmDrawnButtonWidgetClass XMDRAWNBUTTONWIDGETCLASS -#define xmFileSelectionBoxWidgetClass XMFILESELECTIONBOXWIDGETCLASS -#define xmFormWidgetClass XMFORMWIDGETCLASS -#define xmFrameWidgetClass XMFRAMEWIDGETCLASS -#define xmGadgetClass XMGADGETCLASS -#define xmLabelGadgetClass XMLABELGADGETCLASS -#define xmLabelWidgetClass XMLABELWIDGETCLASS -#define xmListWidgetClass XMLISTWIDGETCLASS -#define xmMainWindowWidgetClass XMMAINWINDOWWIDGETCLASS -#define xmManagerClassRec XMMANAGERCLASSREC -#define xmManagerWidgetClass XMMANAGERWIDGETCLASS -#define xmMenuShellWidgetClass XMMENUSHELLWIDGETCLASS -#define xmMessageBoxWidgetClass XMMESSAGEBOXWIDGETCLASS -#define xmPrimitiveClassRec XMPRIMITIVECLASSREC -#define xmPrimitiveWidgetClass XMPRIMITIVEWIDGETCLASS -#define xmPushButtonClassRec XMPUSHBUTTONCLASSREC -#define xmPushButtonGadgetClass XMPUSHBUTTONGADGETCLASS -#define xmPushButtonWidgetClass XMPUSHBUTTONWIDGETCLASS -#define xmRowColumnWidgetClass XMROWCOLUMNWIDGETCLASS -#define xmSashWidgetClass XMSASHWIDGETCLASS -#define xmScrollBarWidgetClass XMSCROLLBARWIDGETCLASS -#define xmScrolledWindowClassRec XMSCROLLEDWINDOWCLASSREC -#define xmScrolledWindowWidgetClass XMSCROLLEDWINDOWWIDGETCLASS -#define xmSeparatorGadgetClass XMSEPARATORGADGETCLASS -#define xmSeparatorWidgetClass XMSEPARATORWIDGETCLASS -#define xmTextFieldWidgetClass XMTEXTFIELDWIDGETCLASS -#define xmTextWidgetClass XMTEXTWIDGETCLASS -#define xmToggleButtonGadgetClass XMTOGGLEBUTTONGADGETCLASS -#define xmToggleButtonWidgetClass XMTOGGLEBUTTONWIDGETCLASS -#define XtRegisterDrawable _XTREGISTERWINDOW -#define XtUnregisterDrawable _XTUNREGISTERWINDOW -#define XQueryFont XQUERYFONT -#define XSetPlaneMask XSETPLANEMASK -#define XChangeKeyboardControl XCHANGEKEYBOARDCONTROL -#define XDestroySubwindows XDESTROYSUBWINDOWS -#define XFreeDeviceList XFREEDEVICELIST -#define XFreeDeviceState XFREEDEVICESTATE -#define XGetExtensionVersion XGETEXTENSIONVERSION -#define XGetRGBColormaps XGETRGBCOLORMAPS -#define XIconifyWindow XICONIFYWINDOW -#define XInstallColormap XINSTALLCOLORMAP -#define XListInputDevices XLISTINPUTDEVICES -#define XLookupKeysym XLOOKUPKEYSYM -#define XOpenDevice XOPENDEVICE -#define XQueryDeviceState XQUERYDEVICESTATE -#define XSelectExtensionEvent XSELECTEXTENSIONEVENT -#define XWarpPointer XWARPPOINTER -#define XmuLookupStandardColormap XMULOOKUPSTANDARDCOLORMAP -#define XAllocNamedColor XALLOCNAMEDCOLOR -#define XBlackPixelOfScreen XBLACKPIXELOFSCREEN -#define XDefaultColormap XDEFAULTCOLORMAP -#define XDefaultColormapOfScreen XDEFAULTCOLORMAPOFSCREEN -#define XDefaultDepth XDEFAULTDEPTH -#define XDefaultScreen XDEFAULTSCREEN -#define XDefaultVisual XDEFAULTVISUAL -#define XSetIconName XSETICONNAME -#define XtInitialize XTINITIALIZE -#define XtMainLoop XTMAINLOOP -#define DtSaverGetWindows DTSAVERGETWINDOWS -#define XAddHosts XADDHOSTS -#define XDisableAccessControl XDISABLEACCESSCONTROL -#define XEnableAccessControl XENABLEACCESSCONTROL -#define XFillArcs XFILLARCS -#define XForceScreenSaver XFORCESCREENSAVER -#define XGetScreenSaver XGETSCREENSAVER -#define XListHosts XLISTHOSTS -#define XReadBitmapFile XREADBITMAPFILE -#define XRemoveHosts XREMOVEHOSTS -#define XResetScreenSaver XRESETSCREENSAVER -#define XResourceManagerString XRESOURCEMANAGERSTRING -#define XSetScreenSaver XSETSCREENSAVER -#define XStringListToTextProperty XSTRINGLISTTOTEXTPROPERTY -#define XrmDestroyDatabase XRMDESTROYDATABASE -#define XrmGetFileDatabase XRMGETFILEDATABASE -#define XrmGetStringDatabase XRMGETSTRINGDATABASE -#define XrmInitialize XRMINITIALIZE -#define XrmMergeDatabases XRMMERGEDATABASES -#define XrmParseCommand XRMPARSECOMMAND -#define XrmPutLineResource XRMPUTLINERESOURCE -#define XrmQPutStringResource XRMQPUTSTRINGRESOURCE -#define XrmStringToBindingQuarkList XRMSTRINGTOBINDINGQUARKLIST -#define XrmStringToQuark XRMSTRINGTOQUARK -#define XmCreateLabel XMCREATELABEL - -#ifdef __cplusplus -extern "C" { -#endif -extern void XtFree(char*); -#ifdef __cplusplus -} -#endif - -#define pthread_attr_create PTHREAD_ATTR_CREATE -#define pthread_attr_delete PTHREAD_ATTR_DELETE -#define pthread_attr_destroy PTHREAD_ATTR_DESTROY -#define pthread_attr_getdetach_np PTHREAD_ATTR_GETDETACH_NP -#define pthread_attr_getguardsize_np PTHREAD_ATTR_GETGUARDSIZE_NP -#define pthread_attr_getinheritsched PTHREAD_ATTR_GETINHERITSCHED -#define pthread_attr_getprio PTHREAD_ATTR_GETPRIO -#define pthread_attr_getsched PTHREAD_ATTR_GETSCHED -#define pthread_attr_getschedparam PTHREAD_ATTR_GETSCHEDPARAM -#define pthread_attr_getstacksize PTHREAD_ATTR_GETSTACKSIZE -#define pthread_attr_init PTHREAD_ATTR_INIT -#define pthread_attr_setdetach_np PTHREAD_ATTR_SETDETACH_NP -#define pthread_attr_setdetachstate PTHREAD_ATTR_SETDETACHSTATE -#define pthread_attr_setguardsize_np PTHREAD_ATTR_SETGUARDSIZE_NP -#define pthread_attr_setinheritsched PTHREAD_ATTR_SETINHERITSCHED -#define pthread_attr_setprio PTHREAD_ATTR_SETPRIO -#define pthread_attr_setsched PTHREAD_ATTR_SETSCHED -#define pthread_attr_setschedparam PTHREAD_ATTR_SETSCHEDPARAM -#define pthread_attr_setschedpolicy PTHREAD_ATTR_SETSCHEDPOLICY -#define pthread_attr_setstacksize PTHREAD_ATTR_SETSTACKSIZE -#define pthread_cancel PTHREAD_CANCEL -#define pthread_cancel_e PTHREAD_CANCEL_E -#define pthread_cond_broadcast PTHREAD_COND_BROADCAST -#define pthread_cond_destroy PTHREAD_COND_DESTROY -#define pthread_cond_init PTHREAD_COND_INIT -#define pthread_cond_sig_preempt_int_np PTHREAD_COND_SIG_PREEMPT_INT_NP -#define pthread_cond_signal PTHREAD_COND_SIGNAL -#define pthread_cond_signal_int_np PTHREAD_COND_SIGNAL_INT_NP -#define pthread_cond_timedwait PTHREAD_COND_TIMEDWAIT -#define pthread_cond_wait PTHREAD_COND_WAIT -#define pthread_condattr_create PTHREAD_CONDATTR_CREATE -#define pthread_condattr_delete PTHREAD_CONDATTR_DELETE -#define pthread_condattr_init PTHREAD_CONDATTR_INIT -#define pthread_create PTHREAD_CREATE -#define pthread_delay_np PTHREAD_DELAY_NP -#define pthread_detach PTHREAD_DETACH -#define pthread_equal PTHREAD_EQUAL -#define pthread_exc_fetch_fp_np PTHREAD_EXC_FETCH_FP_NP -#define pthread_exc_handler_np PTHREAD_EXC_HANDLER_NP -#define pthread_exc_pop_ctx_np PTHREAD_EXC_POP_CTX_NP -#define pthread_exc_push_ctx_np PTHREAD_EXC_PUSH_CTX_NP -#define pthread_exc_savecontext_np PTHREAD_EXC_SAVECONTEXT_NP -#define pthread_exit PTHREAD_EXIT -#define pthread_get_expiration_np PTHREAD_GET_EXPIRATION_NP -#define pthread_getprio PTHREAD_GETPRIO -#define pthread_getschedparam PTHREAD_GETSCHEDPARAM -#define pthread_getscheduler PTHREAD_GETSCHEDULER -#define pthread_getspecific PTHREAD_GETSPECIFIC -#define pthread_getunique_np PTHREAD_GETUNIQUE_NP -#define pthread_join PTHREAD_JOIN -#define pthread_join32 PTHREAD_JOIN32 -#define pthread_keycreate PTHREAD_KEYCREATE -#define pthread_key_create PTHREAD_KEY_CREATE -#define pthread_kill PTHREAD_KILL -#define pthread_lock_global_np PTHREAD_LOCK_GLOBAL_NP -#define pthread_mutex_destroy PTHREAD_MUTEX_DESTROY -#define pthread_mutex_init PTHREAD_MUTEX_INIT -#define pthread_mutex_lock PTHREAD_MUTEX_LOCK -#define pthread_mutex_trylock PTHREAD_MUTEX_TRYLOCK -#define pthread_mutex_unlock PTHREAD_MUTEX_UNLOCK -#define pthread_mutexattr_create PTHREAD_MUTEXATTR_CREATE -#define pthread_mutexattr_delete PTHREAD_MUTEXATTR_DELETE -#define pthread_mutexattr_destroy PTHREAD_MUTEXATTR_DESTROY -#define pthread_mutexattr_getkind_np PTHREAD_MUTEXATTR_GETKIND_NP -#define pthread_mutexattr_init PTHREAD_MUTEXATTR_INIT -#define pthread_mutexattr_setkind_np PTHREAD_MUTEXATTR_SETKIND_NP -#define pthread_mutexattr_settype_np PTHREAD_MUTEXATTR_SETTYPE_NP -#define pthread_once PTHREAD_ONCE -#define pthread_resume_np PTHREAD_RESUME_NP -#define pthread_self PTHREAD_SELF -#define pthread_setasynccancel PTHREAD_SETASYNCCANCEL -#define pthread_setcancel PTHREAD_SETCANCEL -#define pthread_setcancelstate PTHREAD_SETCANCELSTATE -#define pthread_setprio PTHREAD_SETPRIO -#define pthread_setschedparam PTHREAD_SETSCHEDPARAM -#define pthread_setscheduler PTHREAD_SETSCHEDULER -#define pthread_setspecific PTHREAD_SETSPECIFIC -#define pthread_suspend_np PTHREAD_SUSPEND_NP -#define pthread_testcancel PTHREAD_TESTCANCEL -#define pthread_unlock_global_np PTHREAD_UNLOCK_GLOBAL_NP -#define pthread_yield PTHREAD_YIELD -#define pthread_yield_np PTHREAD_YIELD_NP -#define XDefaultRootWindow XDEFAULTROOTWINDOW -#define XDisplayCells XDISPLAYCELLS -#define XMaxRequestSize XMAXREQUESTSIZE -#define XScreenOfDisplay XSCREENOFDISPLAY -#define XSetFillRule XSETFILLRULE -#define XmActivateProtocol XMACTIVATEPROTOCOL -#define XmCreateBulletinBoardDialog XMCREATEBULLETINBOARDDIALOG -#define XmCreateErrorDialog XMCREATEERRORDIALOG -#define XmCreateWarningDialog XMCREATEWARNINGDIALOG -#define XmCvtCTToXmString XMCVTCTTOXMSTRING -#define XmDestroyPixmap XMDESTROYPIXMAP -#define XmGetPixmap XMGETPIXMAP -#define XmInstallImage XMINSTALLIMAGE -#define XmListAddItems XMLISTADDITEMS -#define XmListDeleteItem XMLISTDELETEITEM -#define XmListItemExists XMLISTITEMEXISTS -#define XmListItemPos XMLISTITEMPOS -#define XmListReplaceItems XMLISTREPLACEITEMS -#define XmListReplaceItemsPos XMLISTREPLACEITEMSPOS -#define XmRemoveProtocols XMREMOVEPROTOCOLS -#define XmRemoveTabGroup XMREMOVETABGROUP -#define XmSetColorCalculation XMSETCOLORCALCULATION -#define XmTextCopy XMTEXTCOPY -#define XmTextCut XMTEXTCUT -#define XmTextFieldClearSelection XMTEXTFIELDCLEARSELECTION -#define XmTextFieldCopy XMTEXTFIELDCOPY -#define XmTextFieldCut XMTEXTFIELDCUT -#define XmTextFieldGetMaxLength XMTEXTFIELDGETMAXLENGTH -#define XmTextFieldGetSelectionPosition XMTEXTFIELDGETSELECTIONPOSITION -#define XmTextFieldPaste XMTEXTFIELDPASTE -#define XmTextFieldReplace XMTEXTFIELDREPLACE -#define XmTextFieldSetAddMode XMTEXTFIELDSETADDMODE -#define XmTextFieldSetHighlight XMTEXTFIELDSETHIGHLIGHT -#define XmTextFieldSetInsertionPosition XMTEXTFIELDSETINSERTIONPOSITION -#define XmTextFieldSetMaxLength XMTEXTFIELDSETMAXLENGTH -#define XmTextFieldShowPosition XMTEXTFIELDSHOWPOSITION -#define XmTextGetEditable XMTEXTGETEDITABLE -#define XmTextPaste XMTEXTPASTE -#define XmTextPosToXY XMTEXTPOSTOXY -#define XmTextSetEditable XMTEXTSETEDITABLE -#define XmTextShowPosition XMTEXTSHOWPOSITION -#define XmUninstallImage XMUNINSTALLIMAGE -#define XmuCvtStringToBitmap XMUCVTSTRINGTOBITMAP -#define XrmPutFileDatabase XRMPUTFILEDATABASE -#define XtAddConverter XTADDCONVERTER -#define XtError XTERROR -#define XtVaCreatePopupShell XTVACREATEPOPUPSHELL -#define pthread_attr_getschedpolicy PTHREAD_ATTR_GETSCHEDPOLICY -#define pthread_key_delete PTHREAD_KEY_DELETE -#define xmBulletinBoardWidgetClass XMBULLETINBOARDWIDGETCLASS -#define xmScaleWidgetClass XMSCALEWIDGETCLASS -#define XtDisplay XTDISPLAY -#define XtScreen XTSCREEN -#define XAllocIconSize XALLOCICONSIZE -#define XAllocStandardColormap XALLOCSTANDARDCOLORMAP -#define XAllowEvents XALLOWEVENTS -#define XBlackPixel XBLACKPIXEL -#define XCopyColormapAndFree XCOPYCOLORMAPANDFREE -#define XDefaultGC XDEFAULTGC -#define XDisplayHeight XDISPLAYHEIGHT -#define XDisplayWidth XDISPLAYWIDTH -#define XGetCommand XGETCOMMAND -#define XGetIconSizes XGETICONSIZES -#define XKillClient XKILLCLIENT -#define XListInstalledColormaps XLISTINSTALLEDCOLORMAPS -#define XRootWindow XROOTWINDOW -#define XWMGeometry XWMGEOMETRY -#define XWhitePixel XWHITEPIXEL -#define XrmCombineDatabase XRMCOMBINEDATABASE -#define XrmCombineFileDatabase XRMCOMBINEFILEDATABASE -#define XSetStandardProperties XSETSTANDARDPROPERTIES -#define XSetState XSETSTATE -#define XDrawRectangles XDRAWRECTANGLES -#define XGrabButton XGRABBUTTON -#define XLookupColor XLOOKUPCOLOR -#define XMapSubwindows XMAPSUBWINDOWS -#define XRecolorCursor XRECOLORCURSOR -#define XStoreBytes XSTOREBYTES -#define XUngrabButton XUNGRABBUTTON -#define XUninstallColormap XUNINSTALLCOLORMAP -#define lib$wait LIB$WAIT -#define lib$find_file LIB$FIND_FILE -#define lib$find_file_end LIB$FIND_FILE_END -#define lib$set_symbol LIB$SET_SYMBOL -#define lib$sfree1_dd LIB$SFREE1_DD -#define lib$spawn LIB$SPAWN -#define sys$assign SYS$ASSIGN -#define sys$crembx SYS$CREMBX -#define sys$dassgn SYS$DASSGN -#define sys$dclexh SYS$DCLEXH -#define sys$getdviw SYS$GETDVIW -#define sys$getsyiw SYS$GETSYIW -#define sys$qio SYS$QIO -#define sys$qiow SYS$QIOW -#define sys$setef SYS$SETEF -#define sys$synch SYS$SYNCH -#define XDrawText XDRAWTEXT -#define XtCloseDisplay XTCLOSEDISPLAY -#define XtDestroyApplicationContext XTDESTROYAPPLICATIONCONTEXT -#define lib$ediv LIB$EDIV -#define lib$subx LIB$SUBX -#define sys$bintim SYS$BINTIM -#define sys$gettim SYS$GETTIM -#define XFetchName XFETCHNAME -#define XPeekIfEvent XPEEKIFEVENT -#define XQueryKeymap XQUERYKEYMAP -#endif diff --git a/nx-X11/extras/Mesa/include/GL/wmesa.h b/nx-X11/extras/Mesa/include/GL/wmesa.h deleted file mode 100644 index 0a6e8b642..000000000 --- a/nx-X11/extras/Mesa/include/GL/wmesa.h +++ /dev/null @@ -1,142 +0,0 @@ -/* - * Mesa 3-D graphics library - * Version: 3.0 - * Copyright (C) 1995-1998 Brian Paul - * - * This 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. - * - * This 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 this library; if not, write to the Free - * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - - -/* - * Windows driver by: Mark E. Peterson (markp@ic.mankato.mn.us) - * Updated by Li Wei (liwei@aiar.xjtu.edu.cn) - * - * - *************************************************************** - * WMesa * - * version 2.3 * - * * - * By * - * Li Wei * - * Institute of Artificial Intelligence & Robotics * - * Xi'an Jiaotong University * - * Email: liwei@aiar.xjtu.edu.cn * - * Web page: http://sun.aiar.xjtu.edu.cn * - * * - * July 7th, 1997 * - *************************************************************** - */ - - -#ifndef WMESA_H -#define WMESA_H - - -#ifdef __cplusplus -extern "C" { -#endif - - -#include "GL/gl.h" - -#if defined(_MSV_VER) && !defined(__GNUC__) -# pragma warning (disable:4273) -# pragma warning( disable : 4244 ) /* '=' : conversion from 'const double ' to 'float ', possible loss of data */ -# pragma warning( disable : 4018 ) /* '<' : signed/unsigned mismatch */ -# pragma warning( disable : 4305 ) /* '=' : truncation from 'const double ' to 'float ' */ -# pragma warning( disable : 4013 ) /* 'function' undefined; assuming extern returning int */ -# pragma warning( disable : 4761 ) /* integral size mismatch in argument; conversion supplied */ -# pragma warning( disable : 4273 ) /* 'identifier' : inconsistent DLL linkage. dllexport assumed */ -# if (MESA_WARNQUIET>1) -# pragma warning( disable : 4146 ) /* unary minus operator applied to unsigned type, result still unsigned */ -# endif -#endif - -/* - * This is the WMesa context 'handle': - */ -typedef struct wmesa_context *WMesaContext; - - - -/* - * Create a new WMesaContext for rendering into a window. You must - * have already created the window of correct visual type and with an - * appropriate colormap. - * - * Input: - * hWnd - Window handle - * Pal - Palette to use - * rgb_flag - GL_TRUE = RGB mode, - * GL_FALSE = color index mode - * db_flag - GL_TRUE = double-buffered, - * GL_FALSE = single buffered - * alpha_flag - GL_TRUE = create software alpha buffer, - * GL_FALSE = no software alpha buffer - * - * Note: Indexed mode requires double buffering under Windows. - * - * Return: a WMesa_context or NULL if error. - */ -extern WMesaContext WMesaCreateContext(HWND hWnd,HPALETTE* pPal, - GLboolean rgb_flag, - GLboolean db_flag, - GLboolean alpha_flag); - - -/* - * Destroy a rendering context as returned by WMesaCreateContext() - */ -/*extern void WMesaDestroyContext( WMesaContext ctx );*/ -extern void WMesaDestroyContext( void ); - - - -/* - * Make the specified context the current one. - */ -extern void WMesaMakeCurrent( WMesaContext ctx ); - - -/* - * Return a handle to the current context. - */ -extern WMesaContext WMesaGetCurrentContext( void ); - - -/* - * Swap the front and back buffers for the current context. No action - * taken if the context is not double buffered. - */ -extern void WMesaSwapBuffers(void); - - -/* - * In indexed color mode we need to know when the palette changes. - */ -extern void WMesaPaletteChange(HPALETTE Pal); - -extern void WMesaMove(void); - - - -#ifdef __cplusplus -} -#endif - - -#endif - diff --git a/nx-X11/extras/Mesa/include/GL/xmesa_x.h b/nx-X11/extras/Mesa/include/GL/xmesa_x.h deleted file mode 100644 index 1455c88ad..000000000 --- a/nx-X11/extras/Mesa/include/GL/xmesa_x.h +++ /dev/null @@ -1,84 +0,0 @@ - -/************************************************************************** - -Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas. -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 PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR -ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -**************************************************************************/ - -/* - * Authors: - * Kevin E. Martin - * - * When we're building the XMesa driver for stand-alone Mesa we - * include this file when building the xm_*.c files. - * We need to define some types and macros differently when building - * in the Xserver vs. stand-alone Mesa. - */ - -#ifndef _XMESA_X_H_ -#define _XMESA_X_H_ - -typedef Display XMesaDisplay; -typedef Pixmap XMesaPixmap; -typedef Colormap XMesaColormap; -typedef Drawable XMesaDrawable; -typedef Window XMesaWindow; -typedef GC XMesaGC; -typedef XVisualInfo *XMesaVisualInfo; -typedef XImage XMesaImage; -typedef XPoint XMesaPoint; -typedef XColor XMesaColor; - -#define XMesaDestroyImage XDestroyImage - -#define XMesaPutPixel XPutPixel -#define XMesaGetPixel XGetPixel - -#define XMesaSetForeground XSetForeground -#define XMesaSetBackground XSetBackground -#define XMesaSetPlaneMask XSetPlaneMask -#define XMesaSetFunction XSetFunction -#define XMesaSetFillStyle XSetFillStyle -#define XMesaSetTile XSetTile - -#define XMesaDrawPoint XDrawPoint -#define XMesaDrawPoints XDrawPoints -#define XMesaFillRectangle XFillRectangle -#define XMesaPutImage XPutImage -#define XMesaCopyArea XCopyArea - -#define XMesaCreatePixmap XCreatePixmap -#define XMesaFreePixmap XFreePixmap -#define XMesaFreeGC XFreeGC - -#define GET_COLORMAP_SIZE(__v) __v->visinfo->colormap_size -#define GET_REDMASK(__v) __v->mesa_visual.redMask -#define GET_GREENMASK(__v) __v->mesa_visual.greenMask -#define GET_BLUEMASK(__v) __v->mesa_visual.blueMask -#define GET_VISUAL_DEPTH(__v) __v->visinfo->depth -#define GET_BLACK_PIXEL(__v) BlackPixel(__v->display, __v->mesa_visual.screen) -#define CHECK_BYTE_ORDER(__v) host_byte_order()==ImageByteOrder(__v->display) -#define CHECK_FOR_HPCR(__v) XInternAtom(__v->display, "_HP_RGB_SMOOTH_MAP_LIST", True) - -#endif diff --git a/nx-X11/extras/Mesa/include/GLES/egl.h b/nx-X11/extras/Mesa/include/GLES/egl.h deleted file mode 100644 index d62786d03..000000000 --- a/nx-X11/extras/Mesa/include/GLES/egl.h +++ /dev/null @@ -1,274 +0,0 @@ -#ifndef _EGL_H -#define _EGL_H - -/* -** License Applicability. Except to the extent portions of this file are -** made subject to an alternative license as permitted in the SGI Free -** Software License B, Version 1.0 (the "License"), the contents of this -** file are subject only to the provisions of the License. You may not use -** this file except in compliance with the License. You may obtain a copy -** of the License at Silicon Graphics, Inc., attn: Legal Services, 1600 -** Amphitheatre Parkway, Mountain View, CA 94043-1351, or at: -** -** http://oss.sgi.com/projects/FreeB -** -** Note that, as provided in the License, the Software is distributed on an -** "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS -** DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND -** CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A -** PARTICULAR PURPOSE, AND NON-INFRINGEMENT. -** -** Original Code. The Original Code is: OpenGL Sample Implementation, -** Version 1.2.1, released January 26, 2000, developed by Silicon Graphics, -** Inc. The Original Code is Copyright (c) 1991-2004 Silicon Graphics, Inc. -** Copyright in any portions created by third parties is as indicated -** elsewhere herein. All Rights Reserved. -** -** Additional Notice Provisions: The application programming interfaces -** established by SGI in conjunction with the Original Code are The -** OpenGL(R) Graphics System: A Specification (Version 1.2.1), released -** April 1, 1999; The OpenGL(R) Graphics System Utility Library (Version -** 1.3), released November 4, 1998; and OpenGL(R) Graphics with the X -** Window System(R) (Version 1.3), released October 19, 1998. This software -** was created using the OpenGL(R) version 1.2.1 Sample Implementation -** published by SGI, but has not been independently verified as being -** compliant with the OpenGL(R) version 1.2.1 Specification. -*/ - -#if 0/*XXX TEMPORARY HACK*/ -#include -#else -#include -#endif -#include - -/* XXX should go in eglext.h */ -#define GL_OES_VERSION_1_0 1 -#define GL_OES_read_format 1 -#define GL_OES_compressed_paletted_texture 1 -#define GL_IMPLEMENTATION_COLOR_READ_TYPE_OES 0x8B9A -#define GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES 0x8B9B -#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 -/* XXX */ - -/* -** Versioning and extensions -*/ -#define EGL_VERSION_1_0 1 -#if 0 -#define EGL_VERSION_1_1 1 -#endif - -/* -** Boolean -*/ -#define EGL_FALSE 0 -#define EGL_TRUE 1 - -/* -** Errors -*/ -#define EGL_SUCCESS 0x3000 -#define EGL_NOT_INITIALIZED 0x3001 -#define EGL_BAD_ACCESS 0x3002 -#define EGL_BAD_ALLOC 0x3003 -#define EGL_BAD_ATTRIBUTE 0x3004 -#define EGL_BAD_CONFIG 0x3005 -#define EGL_BAD_CONTEXT 0x3006 -#define EGL_BAD_CURRENT_SURFACE 0x3007 -#define EGL_BAD_DISPLAY 0x3008 -#define EGL_BAD_MATCH 0x3009 -#define EGL_BAD_NATIVE_PIXMAP 0x300A -#define EGL_BAD_NATIVE_WINDOW 0x300B -#define EGL_BAD_PARAMETER 0x300C -#define EGL_BAD_SURFACE 0x300D -#define EGL_CONTEXT_LOST 0x300E -/* 0x300F - 0x301F reserved for additional errors. */ - -/* -** Config attributes -*/ -#define EGL_BUFFER_SIZE 0x3020 -#define EGL_ALPHA_SIZE 0x3021 -#define EGL_BLUE_SIZE 0x3022 -#define EGL_GREEN_SIZE 0x3023 -#define EGL_RED_SIZE 0x3024 -#define EGL_DEPTH_SIZE 0x3025 -#define EGL_STENCIL_SIZE 0x3026 -#define EGL_CONFIG_CAVEAT 0x3027 -#define EGL_CONFIG_ID 0x3028 -#define EGL_LEVEL 0x3029 -#define EGL_MAX_PBUFFER_HEIGHT 0x302A -#define EGL_MAX_PBUFFER_PIXELS 0x302B -#define EGL_MAX_PBUFFER_WIDTH 0x302C -#define EGL_NATIVE_RENDERABLE 0x302D -#define EGL_NATIVE_VISUAL_ID 0x302E -#define EGL_NATIVE_VISUAL_TYPE 0x302F -/*#define EGL_PRESERVED_RESOURCES 0x3030*/ -#define EGL_SAMPLES 0x3031 -#define EGL_SAMPLE_BUFFERS 0x3032 -#define EGL_SURFACE_TYPE 0x3033 -#define EGL_TRANSPARENT_TYPE 0x3034 -#define EGL_TRANSPARENT_BLUE_VALUE 0x3035 -#define EGL_TRANSPARENT_GREEN_VALUE 0x3036 -#define EGL_TRANSPARENT_RED_VALUE 0x3037 -#define EGL_NONE 0x3038 /* Also a config value */ -#define EGL_BIND_TO_TEXTURE_RGB 0x3039 -#define EGL_BIND_TO_TEXTURE_RGBA 0x303A -#define EGL_MIN_SWAP_INTERVAL 0x303B -#define EGL_MAX_SWAP_INTERVAL 0x303C - -/* -** Config values -*/ -#define EGL_DONT_CARE ((EGLint) -1) - -#define EGL_SLOW_CONFIG 0x3050 /* EGL_CONFIG_CAVEAT value */ -#define EGL_NON_CONFORMANT_CONFIG 0x3051 /* " */ -#define EGL_TRANSPARENT_RGB 0x3052 /* EGL_TRANSPARENT_TYPE value */ -#define EGL_NO_TEXTURE 0x305C /* EGL_TEXTURE_FORMAT/TARGET value */ -#define EGL_TEXTURE_RGB 0x305D /* EGL_TEXTURE_FORMAT value */ -#define EGL_TEXTURE_RGBA 0x305E /* " */ -#define EGL_TEXTURE_2D 0x305F /* EGL_TEXTURE_TARGET value */ - -/* -** Config attribute mask bits -*/ -#define EGL_PBUFFER_BIT 0x01 /* EGL_SURFACE_TYPE mask bit */ -#define EGL_PIXMAP_BIT 0x02 /* " */ -#define EGL_WINDOW_BIT 0x04 /* " */ - -/* -** String names -*/ -#define EGL_VENDOR 0x3053 /* eglQueryString target */ -#define EGL_VERSION 0x3054 /* " */ -#define EGL_EXTENSIONS 0x3055 /* " */ - -/* -** Surface attributes -*/ -#define EGL_HEIGHT 0x3056 -#define EGL_WIDTH 0x3057 -#define EGL_LARGEST_PBUFFER 0x3058 -#define EGL_TEXTURE_FORMAT 0x3080 /* For pbuffers bound as textures */ -#define EGL_TEXTURE_TARGET 0x3081 /* " */ -#define EGL_MIPMAP_TEXTURE 0x3082 /* " */ -#define EGL_MIPMAP_LEVEL 0x3083 /* " */ - -/* -** BindTexImage / ReleaseTexImage buffer target -*/ -#define EGL_BACK_BUFFER 0x3084 - -/* -** Current surfaces -*/ -#define EGL_DRAW 0x3059 -#define EGL_READ 0x305A - -/* -** Engines -*/ -#define EGL_CORE_NATIVE_ENGINE 0x305B - -/* 0x305C-0x3FFFF reserved for future use */ - -/* -** Functions -*/ -#ifdef __cplusplus -extern "C" { -#endif - -GLAPI EGLint APIENTRY eglGetError (void); - -GLAPI EGLDisplay APIENTRY eglGetDisplay (NativeDisplayType display); -GLAPI EGLBoolean APIENTRY eglInitialize (EGLDisplay dpy, EGLint *major, EGLint *minor); -GLAPI EGLBoolean APIENTRY eglTerminate (EGLDisplay dpy); -GLAPI const char * APIENTRY eglQueryString (EGLDisplay dpy, EGLint name); -GLAPI void (* APIENTRY eglGetProcAddress (const char *procname))(void); - -GLAPI EGLBoolean APIENTRY eglGetConfigs (EGLDisplay dpy, EGLConfig *configs, EGLint config_size, EGLint *num_config); -GLAPI EGLBoolean APIENTRY eglChooseConfig (EGLDisplay dpy, const EGLint *attrib_list, EGLConfig *configs, EGLint config_size, EGLint *num_config); -GLAPI EGLBoolean APIENTRY eglGetConfigAttrib (EGLDisplay dpy, EGLConfig config, EGLint attribute, EGLint *value); - -GLAPI EGLSurface APIENTRY eglCreateWindowSurface (EGLDisplay dpy, EGLConfig config, NativeWindowType window, const EGLint *attrib_list); -GLAPI EGLSurface APIENTRY eglCreatePixmapSurface (EGLDisplay dpy, EGLConfig config, NativePixmapType pixmap, const EGLint *attrib_list); -GLAPI EGLSurface APIENTRY eglCreatePbufferSurface (EGLDisplay dpy, EGLConfig config, const EGLint *attrib_list); -GLAPI EGLBoolean APIENTRY eglDestroySurface (EGLDisplay dpy, EGLSurface surface); -GLAPI EGLBoolean APIENTRY eglQuerySurface (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint *value); - -/* EGL 1.1 render-to-texture APIs */ -GLAPI EGLBoolean APIENTRY eglSurfaceAttrib (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint value); -GLAPI EGLBoolean APIENTRY eglBindTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer); -GLAPI EGLBoolean APIENTRY eglReleaseTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer); - -/* EGL 1.1 swap control API */ -GLAPI EGLBoolean APIENTRY eglSwapInterval(EGLDisplay dpy, EGLint interval); - -GLAPI EGLContext APIENTRY eglCreateContext (EGLDisplay dpy, EGLConfig config, EGLContext share_list, const EGLint *attrib_list); -GLAPI EGLBoolean APIENTRY eglDestroyContext (EGLDisplay dpy, EGLContext ctx); -GLAPI EGLBoolean APIENTRY eglMakeCurrent (EGLDisplay dpy, EGLSurface draw, EGLSurface read, EGLContext ctx); -GLAPI EGLContext APIENTRY eglGetCurrentContext (void); -GLAPI EGLSurface APIENTRY eglGetCurrentSurface (EGLint readdraw); -GLAPI EGLDisplay APIENTRY eglGetCurrentDisplay (void); -GLAPI EGLBoolean APIENTRY eglQueryContext (EGLDisplay dpy, EGLContext ctx, EGLint attribute, EGLint *value); - -GLAPI EGLBoolean APIENTRY eglWaitGL (void); -GLAPI EGLBoolean APIENTRY eglWaitNative (EGLint engine); -GLAPI EGLBoolean APIENTRY eglSwapBuffers (EGLDisplay dpy, EGLSurface draw); -GLAPI EGLBoolean APIENTRY eglCopyBuffers (EGLDisplay dpy, EGLSurface surface, NativePixmapType target); - - - -/* EGL_MESA_screen extension >>> PRELIMINARY <<< */ -#ifndef EGL_MESA_screen_surface -#define EGL_MESA_screen_surface 1 - -#define EGL_BAD_SCREEN_MESA 0x4000 -#define EGL_BAD_MODE_MESA 0x4001 -#define EGL_SCREEN_COUNT_MESA 0x4002 -#define EGL_SCREEN_POSITION_MESA 0x4003 -#define EGL_MODE_ID_MESA 0x4004 -#define EGL_REFRESH_RATE_MESA 0x4005 -#define EGL_OPTIMAL_MODE_MESA 0x4006 -#define EGL_SCREEN_BIT_MESA 0x08 - -GLAPI EGLBoolean APIENTRY eglChooseModeMESA(EGLDisplay dpy, EGLScreenMESA screen, const EGLint *attrib_list, EGLModeMESA *modes, EGLint modes_size, EGLint *num_modes); -GLAPI EGLBoolean APIENTRY eglGetModesMESA(EGLDisplay dpy, EGLScreenMESA screen, EGLModeMESA *modes, EGLint modes_size, EGLint *num_modes); -GLAPI EGLBoolean APIENTRY eglGetModeAttribMESA(EGLDisplay dpy, EGLModeMESA mode, EGLint attribute, EGLint *value); -GLAPI EGLBoolean APIENTRY eglGetScreensMESA(EGLDisplay dpy, EGLScreenMESA *screens, EGLint max_screens, EGLint *num_screens); -GLAPI EGLSurface APIENTRY eglCreateScreenSurfaceMESA(EGLDisplay dpy, EGLConfig config, const EGLint *attrib_list); -GLAPI EGLBoolean APIENTRY eglShowSurfaceMESA(EGLDisplay dpy, EGLint screen, EGLSurface surface, EGLModeMESA mode); -GLAPI EGLBoolean APIENTRY eglScreenPositionMESA(EGLDisplay dpy, EGLScreenMESA screen, EGLint x, EGLint y); -GLAPI EGLBoolean APIENTRY eglQueryScreenMESA(EGLDisplay dpy, EGLScreenMESA screen, EGLint attribute, EGLint *value); -GLAPI EGLBoolean APIENTRY eglQueryScreenSurfaceMESA(EGLDisplay dpy, EGLScreenMESA screen, EGLSurface *surface); -GLAPI EGLBoolean APIENTRY eglQueryScreenModeMESA(EGLDisplay dpy, EGLScreenMESA screen, EGLModeMESA *mode); -GLAPI const char * APIENTRY eglQueryModeStringMESA(EGLDisplay dpy, EGLModeMESA mode); - -#endif /* EGL_MESA_screen_surface */ - - -#ifndef EGL_MESA_copy_context -#define EGL_MESA_copy_context 1 - -GLAPI EGLBoolean APIENTRY eglCopyContextMESA(EGLDisplay dpy, EGLContext source, EGLContext dest, EGLint mask); - -#endif /* EGL_MESA_copy_context */ - - -#ifdef __cplusplus -} -#endif - -#endif /* _EGL_H */ diff --git a/nx-X11/extras/Mesa/include/GLES/egltypes.h b/nx-X11/extras/Mesa/include/GLES/egltypes.h deleted file mode 100644 index 65cba8d57..000000000 --- a/nx-X11/extras/Mesa/include/GLES/egltypes.h +++ /dev/null @@ -1,45 +0,0 @@ -/* -** egltypes.h for Mesa -** -** ONLY egl.h SHOULD INCLUDE THIS FILE! -** -** See comments about egltypes.h in the standard egl.h file. -*/ - - -#include - - -/* -** These opaque EGL types are implemented as unsigned 32-bit integers: -*/ -typedef u_int32_t EGLDisplay; -typedef u_int32_t EGLConfig; -typedef u_int32_t EGLSurface; -typedef u_int32_t EGLContext; - -/* EGL_MESA_screen_surface */ -typedef u_int32_t EGLModeMESA; -typedef u_int32_t EGLScreenMESA; - - -/* -** Other basic EGL types: -*/ -typedef u_int8_t EGLBoolean; -typedef int32_t EGLint; - -typedef void * NativeDisplayType; -typedef int NativePixmapType; -typedef int NativeWindowType; - -/* -** EGL and native handle null values: -*/ -#define EGL_DEFAULT_DISPLAY ((NativeDisplayType) 0) -#define EGL_NO_CONTEXT ((EGLContext) 0) -#define EGL_NO_DISPLAY ((EGLDisplay) 0) -#define EGL_NO_SURFACE ((EGLSurface) 0) - -/* EGL_MESA_screen_surface */ -#define EGL_NO_MODE_MESA ((EGLModeMESA) 0) diff --git a/nx-X11/extras/Mesa/mms-config. b/nx-X11/extras/Mesa/mms-config. deleted file mode 100644 index 6a960084b..000000000 --- a/nx-X11/extras/Mesa/mms-config. +++ /dev/null @@ -1,23 +0,0 @@ -# Makefile for VMS -# contributed by Jouk Jansen joukj@hrem.stm.tudelft.nl - - -#vms -.ifdef SHARE -GL_SHAR = libMesaGL.exe -GLU_SHAR = libMesaGLU.exe -GLUT_SHAR = libglut.exe -.endif -GL_LIB = libMesaGL.olb -GLU_LIB = libMesaGLU.olb -GLUT_LIB = libglut.olb -CC = cc -CXX = cxx/define=(LIBRARYBUILD=1)/assume=(nostdnew,noglobal_array_new) -CFLAGS1 = -MAKELIB = library/create -RANLIB = true -.ifdef SHARE -XLIBS = [--.vms]xlib_share/opt -.else -XLIBS = [--.vms]xlib/opt -.endif diff --git a/nx-X11/extras/Mesa/src/Makefile b/nx-X11/extras/Mesa/src/Makefile deleted file mode 100644 index ffe2dbc6a..000000000 --- a/nx-X11/extras/Mesa/src/Makefile +++ /dev/null @@ -1,34 +0,0 @@ -# src/Makefile - -TOP = .. - -include $(TOP)/configs/current - -SUBDIRS = $(SRC_DIRS) - - -default: message $(LIB_DIR) subdirs - - -message: - @echo "Making sources for" $(CONFIG_NAME) - - -subdirs: - @for dir in $(SUBDIRS) ; do \ - if [ -d $$dir ] ; then \ - (cd $$dir ; $(MAKE)) || exit 1 ; \ - fi \ - done - - -$(LIB_DIR): - -mkdir $(LIB_DIR) - - -clean: - @for dir in $(SUBDIRS) ; do \ - if [ -d $$dir ] ; then \ - (cd $$dir ; $(MAKE) clean) ; \ - fi \ - done diff --git a/nx-X11/extras/Mesa/src/descrip.mms b/nx-X11/extras/Mesa/src/descrip.mms deleted file mode 100644 index 71b8ea16a..000000000 --- a/nx-X11/extras/Mesa/src/descrip.mms +++ /dev/null @@ -1,43 +0,0 @@ -# Makefile for Mesa for VMS -# contributed by Jouk Jansen joukj@hrem.stm.tudelft.nl - -.include [-]mms-config. - -all : - set default [.mesa] - $(MMS)$(MMSQUALIFIERS) - set default [-] -.ifdef SHARE - $(MMS)$(MMSQUALIFIERS) [-.lib]$(GL_SHAR) -.endif - set default [.glu] - $(MMS)$(MMSQUALIFIERS) - set default [-.glut.glx] - $(MMS)$(MMSQUALIFIERS) - set default [--] - -[-.lib]$(GL_SHAR) : [-.lib]$(GL_LIB) - @ WRITE_ SYS$OUTPUT " generating libmesa.opt" - @ library/extract=* [-.lib]$(GL_LIB) - @ OPEN_/WRITE FILE libmesa.opt - @ WRITE_ FILE "!" - @ WRITE_ FILE "! libmesa.opt generated by DESCRIP.$(MMS_EXT)" - @ WRITE_ FILE "!" - @ WRITE_ FILE "IDENTIFICATION=""mesa5.1""" - @ WRITE_ FILE "GSMATCH=LEQUAL,5,1 - @ WRITE_ FILE "libmesagl.obj" - @ write_ file "sys$share:decw$xextlibshr/share" - @ write_ file "sys$share:decw$xlibshr/share" - @ write_ file "sys$share:pthread$rtl/share" - @ CLOSE_ FILE - @ $(MMS)$(MMSQUALIFIERS)/ignore=warning mesa_vms - @ WRITE_ SYS$OUTPUT " linking ..." - @ LINK_/NODEB/SHARE=[-.lib]$(GL_SHAR)/MAP=libmesa.map/FULL libmesa.opt/opt,\ - mesa_vms.opt/opt - @ delete libmesagl.obj;* - -mesa_vms : - @ WRITE_ SYS$OUTPUT " generating libmesa.map ..." - @ LINK_/NODEB/NOSHARE/NOEXE/MAP=libmesa.map/FULL libmesa.opt/OPT - @ WRITE_ SYS$OUTPUT " analyzing libmesa.map ..." - @ @[-.vms]analyze_map.com libmesa.map mesa_vms.opt diff --git a/nx-X11/extras/Mesa/src/glw/GLwDrawA.c b/nx-X11/extras/Mesa/src/glw/GLwDrawA.c deleted file mode 100644 index 30304a408..000000000 --- a/nx-X11/extras/Mesa/src/glw/GLwDrawA.c +++ /dev/null @@ -1,684 +0,0 @@ -/* - * (c) Copyright 1993, Silicon Graphics, Inc. - * ALL RIGHTS RESERVED - * 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, and that - * the name of Silicon Graphics, Inc. not be used in advertising - * or publicity pertaining to distribution of the software without specific, - * written prior permission. - * - * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "AS-IS" - * AND WITHOUT WARRANTY OF ANY KIND, EXPRESS, IMPLIED OR OTHERWISE, - * INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY OR - * FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON - * GRAPHICS, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT, - * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY - * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION, - * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF - * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN - * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE - * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE. - * - * - * US Government Users Restricted Rights - * Use, duplication, or disclosure by the Government is subject to - * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph - * (c)(1)(ii) of the Rights in Technical Data and Computer Software - * clause at DFARS 252.227-7013 and/or in similar or successor - * clauses in the FAR or the DOD or NASA FAR Supplement. - * Unpublished-- rights reserved under the copyright laws of the - * United States. Contractor/manufacturer is Silicon Graphics, - * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311. - * - * OpenGL(TM) is a trademark of Silicon Graphics, Inc. - */ - -/* - * - * This file has been slightly modified from the original for use with Mesa - * - * Jeroen van der Zijp - * - * jvz@cyberia.cfdrc.com - * - */ -#include -#include -#include -#include -#ifdef __GLX_MOTIF -#include -#include "GLwMDrawAP.h" -#else -#include "GLwDrawAP.h" -#endif -#include -#include - -#ifdef __GLX_MOTIF -#define GLwDrawingAreaWidget GLwMDrawingAreaWidget -#define GLwDrawingAreaClassRec GLwMDrawingAreaClassRec -#define glwDrawingAreaClassRec glwMDrawingAreaClassRec -#define glwDrawingAreaWidgetClass glwMDrawingAreaWidgetClass -#define GLwDrawingAreaRec GLwMDrawingAreaRec -#endif - -#define ATTRIBLIST_SIZE 32 - -#define offset(field) XtOffset(GLwDrawingAreaWidget,glwDrawingArea.field) - - -/* forward definitions */ -static void createColormap(GLwDrawingAreaWidget w,int offset,XrmValue *value); -static void Initialize(GLwDrawingAreaWidget req,GLwDrawingAreaWidget neww,ArgList args,Cardinal *num_args); -static void Realize(Widget w,Mask *valueMask,XSetWindowAttributes *attributes); -static void Redraw(GLwDrawingAreaWidget w,XEvent *event,Region region); -static void Resize(GLwDrawingAreaWidget glw); -static void Destroy(GLwDrawingAreaWidget glw); -static void glwInput(GLwDrawingAreaWidget glw,XEvent *event,String *params,Cardinal *numParams); - - - -static char defaultTranslations[] = -#ifdef __GLX_MOTIF - "osfHelp:PrimitiveHelp() \n" -#endif - ": glwInput() \n\ - : glwInput() \n\ - : glwInput() \n\ - : glwInput() \n\ - : glwInput() "; - - -static XtActionsRec actions[] = { - {"glwInput",(XtActionProc)glwInput}, /* key or mouse input */ - }; - - -/* - * There is a bit of unusual handling of the resources here. - * Because Xt insists on allocating the colormap resource when it is - * processing the core resources (even if we redeclare the colormap - * resource here, we need to do a little trick. When Xt first allocates - * the colormap, we allow it to allocate the default one, since we have - * not yet determined the appropriate visual (which is determined from - * resources parsed after the colormap). We also let it allocate colors - * in that default colormap. - * - * In the initialize proc we calculate the actual visual. Then, we - * reobtain the colormap resource using XtGetApplicationResources in - * the initialize proc. If requested, we also reallocate colors in - * that colormap using the same method. - */ - -static XtResource resources[] = { - /* The GLX attributes. Add any new attributes here */ - - {GLwNbufferSize, GLwCBufferSize, XtRInt, sizeof (int), - offset(bufferSize), XtRImmediate, (XtPointer) 0}, - - {GLwNlevel, GLwCLevel, XtRInt, sizeof (int), - offset(level), XtRImmediate, (XtPointer) 0}, - - {GLwNrgba, GLwCRgba, XtRBoolean, sizeof (Boolean), - offset(rgba), XtRImmediate, (XtPointer) FALSE}, - - {GLwNdoublebuffer, GLwCDoublebuffer, XtRBoolean, sizeof (Boolean), - offset(doublebuffer), XtRImmediate, (XtPointer) FALSE}, - - {GLwNstereo, GLwCStereo, XtRBoolean, sizeof (Boolean), - offset(stereo), XtRImmediate, (XtPointer) FALSE}, - - {GLwNauxBuffers, GLwCAuxBuffers, XtRInt, sizeof (int), - offset(auxBuffers), XtRImmediate, (XtPointer) 0}, - - {GLwNredSize, GLwCColorSize, XtRInt, sizeof (int), - offset(redSize), XtRImmediate, (XtPointer) 1}, - - {GLwNgreenSize, GLwCColorSize, XtRInt, sizeof (int), - offset(greenSize), XtRImmediate, (XtPointer) 1}, - - {GLwNblueSize, GLwCColorSize, XtRInt, sizeof (int), - offset(blueSize), XtRImmediate, (XtPointer) 1}, - - {GLwNalphaSize, GLwCAlphaSize, XtRInt, sizeof (int), - offset(alphaSize), XtRImmediate, (XtPointer) 0}, - - {GLwNdepthSize, GLwCDepthSize, XtRInt, sizeof (int), - offset(depthSize), XtRImmediate, (XtPointer) 0}, - - {GLwNstencilSize, GLwCStencilSize, XtRInt, sizeof (int), - offset(stencilSize), XtRImmediate, (XtPointer) 0}, - - {GLwNaccumRedSize, GLwCAccumColorSize, XtRInt, sizeof (int), - offset(accumRedSize), XtRImmediate, (XtPointer) 0}, - - {GLwNaccumGreenSize, GLwCAccumColorSize, XtRInt, sizeof (int), - offset(accumGreenSize), XtRImmediate, (XtPointer) 0}, - - {GLwNaccumBlueSize, GLwCAccumColorSize, XtRInt, sizeof (int), - offset(accumBlueSize), XtRImmediate, (XtPointer) 0}, - - {GLwNaccumAlphaSize, GLwCAccumAlphaSize, XtRInt, sizeof (int), - offset(accumAlphaSize), XtRImmediate, (XtPointer) 0}, - - /* the attribute list */ - {GLwNattribList, GLwCAttribList, XtRPointer, sizeof(int *), - offset(attribList), XtRImmediate, (XtPointer) NULL}, - - /* the visual info */ - {GLwNvisualInfo, GLwCVisualInfo, GLwRVisualInfo, sizeof (XVisualInfo *), - offset(visualInfo), XtRImmediate, (XtPointer) NULL}, - - /* miscellaneous resources */ - {GLwNinstallColormap, GLwCInstallColormap, XtRBoolean, sizeof (Boolean), - offset(installColormap), XtRImmediate, (XtPointer) TRUE}, - - {GLwNallocateBackground, GLwCAllocateColors, XtRBoolean, sizeof (Boolean), - offset(allocateBackground), XtRImmediate, (XtPointer) FALSE}, - - {GLwNallocateOtherColors, GLwCAllocateColors, XtRBoolean, sizeof (Boolean), - offset(allocateOtherColors), XtRImmediate, (XtPointer) FALSE}, - - {GLwNinstallBackground, GLwCInstallBackground, XtRBoolean, sizeof (Boolean), - offset(installBackground), XtRImmediate, (XtPointer) TRUE}, - - {GLwNginitCallback, GLwCCallback, XtRCallback, sizeof (XtCallbackList), - offset(ginitCallback), XtRImmediate, (XtPointer) NULL}, - - {GLwNinputCallback, GLwCCallback, XtRCallback, sizeof (XtCallbackList), - offset(inputCallback), XtRImmediate, (XtPointer) NULL}, - - {GLwNresizeCallback, GLwCCallback, XtRCallback, sizeof (XtCallbackList), - offset(resizeCallback), XtRImmediate, (XtPointer) NULL}, - - {GLwNexposeCallback, GLwCCallback, XtRCallback, sizeof (XtCallbackList), - offset(exposeCallback), XtRImmediate, (XtPointer) NULL}, - - /* Changes to Motif primitive resources */ -#ifdef __GLX_MOTIF - {XmNtraversalOn, XmCTraversalOn, XmRBoolean, sizeof (Boolean), - XtOffset (GLwDrawingAreaWidget, primitive.traversal_on), XmRImmediate, - (XtPointer)FALSE}, - - /* highlighting is normally disabled, as when Motif tries to disable - * highlighting, it tries to reset the color back to the parent's - * background (usually Motif blue). Unfortunately, that is in a - * different colormap, and doesn't work too well. - */ - {XmNhighlightOnEnter, XmCHighlightOnEnter, XmRBoolean, sizeof (Boolean), - XtOffset (GLwDrawingAreaWidget, primitive.highlight_on_enter), - XmRImmediate, (XtPointer) FALSE}, - - {XmNhighlightThickness, XmCHighlightThickness, XmRHorizontalDimension, - sizeof (Dimension), - XtOffset (GLwDrawingAreaWidget, primitive.highlight_thickness), - XmRImmediate, (XtPointer) 0}, -#endif - }; - - -/* -** The following resources are reobtained using XtGetApplicationResources -** in the initialize proc. -*/ - -/* The colormap */ -static XtResource initializeResources[] = { - /* reobtain the colormap with the new visual */ - {XtNcolormap, XtCColormap, XtRColormap, sizeof(Colormap), - XtOffset(GLwDrawingAreaWidget, core.colormap), - XtRCallProc,(XtPointer) createColormap}, - }; - - -/* reallocate any colors we need in the new colormap */ - -/* The background is obtained only if the allocateBackground resource is TRUE*/ -static XtResource backgroundResources[] = { -#ifdef __GLX_MOTIF - {XmNbackground, XmCBackground,XmRPixel, - sizeof(Pixel),XtOffset(GLwDrawingAreaWidget,core.background_pixel), - XmRString,(XtPointer)"lightgrey"}, - /*XmRCallProc,(XtPointer)_XmBackgroundColorDefault},*/ - - {XmNbackgroundPixmap,XmCPixmap,XmRXmBackgroundPixmap, - sizeof(Pixmap),XtOffset(GLwDrawingAreaWidget,core.background_pixmap), - XmRImmediate,(XtPointer)XmUNSPECIFIED_PIXMAP}, - -#else - {XtNbackground,XtCBackground,XtRPixel,sizeof(Pixel), - XtOffset(GLwDrawingAreaWidget,core.background_pixel), - XtRString,(XtPointer)"lightgrey"}, - /*XtRString,(XtPointer)"XtDefaultBackground"},*/ - - {XtNbackgroundPixmap, XtCPixmap, XtRPixmap, sizeof(Pixmap), - XtOffset(GLwDrawingAreaWidget,core.background_pixmap), - XtRImmediate,(XtPointer)XtUnspecifiedPixmap}, -#endif - }; - - - -/* The other colors such as the foreground are allocated only if - * allocateOtherColors are set. These resources only exist in Motif. - */ -#ifdef __GLX_MOTIF -static XtResource otherColorResources[] = { - {XmNforeground,XmCForeground,XmRPixel, - sizeof(Pixel),XtOffset(GLwDrawingAreaWidget,primitive.foreground), - XmRString,(XtPointer)"lighgrey"}, - /*XmRCallProc, (XtPointer) _XmForegroundColorDefault},*/ - - {XmNhighlightColor,XmCHighlightColor,XmRPixel,sizeof(Pixel), - XtOffset(GLwDrawingAreaWidget,primitive.highlight_color), - XmRString,(XtPointer)"lightgrey"}, - /*XmRCallProc,(XtPointer)_XmHighlightColorDefault},*/ - - {XmNhighlightPixmap,XmCHighlightPixmap,XmRPrimHighlightPixmap, - sizeof(Pixmap), - XtOffset(GLwDrawingAreaWidget,primitive.highlight_pixmap), - XmRImmediate,(XtPointer)XmUNSPECIFIED_PIXMAP}, - /*XmRCallProc,(XtPointer)_XmPrimitiveHighlightPixmapDefault},*/ - }; -#endif - - -#undef offset - - -GLwDrawingAreaClassRec glwDrawingAreaClassRec = { - { /* core fields */ -#ifdef __GLX_MOTIF - /* superclass */ (WidgetClass) &xmPrimitiveClassRec, - /* class_name */ "GLwMDrawingArea", -#else /* not __GLX_MOTIF */ - /* superclass */ (WidgetClass) &widgetClassRec, - /* class_name */ "GLwDrawingArea", -#endif /* __GLX_MOTIF */ - /* widget_size */ sizeof(GLwDrawingAreaRec), - /* class_initialize */ NULL, - /* class_part_initialize */ NULL, - /* class_inited */ FALSE, - /* initialize */ (XtInitProc) Initialize, - /* initialize_hook */ NULL, - /* realize */ Realize, - /* actions */ actions, - /* num_actions */ XtNumber(actions), - /* resources */ resources, - /* num_resources */ XtNumber(resources), - /* xrm_class */ NULLQUARK, - /* compress_motion */ TRUE, - /* compress_exposure */ TRUE, - /* compress_enterleave */ TRUE, - /* visible_interest */ TRUE, - /* destroy */ (XtWidgetProc) Destroy, - /* resize */ (XtWidgetProc) Resize, - /* expose */ (XtExposeProc) Redraw, - /* set_values */ NULL, - /* set_values_hook */ NULL, - /* set_values_almost */ XtInheritSetValuesAlmost, - /* get_values_hook */ NULL, - /* accept_focus */ NULL, - /* version */ XtVersion, - /* callback_private */ NULL, - /* tm_table */ defaultTranslations, - /* query_geometry */ XtInheritQueryGeometry, - /* display_accelerator */ XtInheritDisplayAccelerator, - /* extension */ NULL - }, -#ifdef __GLX_MOTIF /* primitive resources */ - { - /* border_highlight */ XmInheritBorderHighlight, - /* border_unhighlight */ XmInheritBorderUnhighlight, - /* translations */ XtInheritTranslations, - /* arm_and_activate */ NULL, - /* get_resources */ NULL, - /* num get_resources */ 0, - /* extension */ NULL, - } -#endif - }; - -WidgetClass glwDrawingAreaWidgetClass=(WidgetClass)&glwDrawingAreaClassRec; - - - -static void error(Widget w,char* string){ - char buf[100]; -#ifdef __GLX_MOTIF - sprintf(buf,"GLwMDrawingArea: %s\n",string); -#else - sprintf(buf,"GLwDrawingArea: %s\n",string); -#endif - XtAppError(XtWidgetToApplicationContext(w),buf); - } - - -static void warning(Widget w,char* string){ - char buf[100]; -#ifdef __GLX_MOTIF - sprintf (buf, "GLwMDraw: %s\n", string); -#else - sprintf (buf, "GLwDraw: %s\n", string); -#endif - XtAppWarning(XtWidgetToApplicationContext(w), buf); - } - - - -/* Initialize the attribList based on the attributes */ -static void createAttribList(GLwDrawingAreaWidget w){ - int *ptr; - w->glwDrawingArea.attribList = (int*)XtMalloc(ATTRIBLIST_SIZE*sizeof(int)); - if(!w->glwDrawingArea.attribList){ - error((Widget)w,"Unable to allocate attribute list"); - } - ptr = w->glwDrawingArea.attribList; - *ptr++ = GLX_BUFFER_SIZE; - *ptr++ = w->glwDrawingArea.bufferSize; - *ptr++ = GLX_LEVEL; - *ptr++ = w->glwDrawingArea.level; - if(w->glwDrawingArea.rgba) *ptr++ = GLX_RGBA; - if(w->glwDrawingArea.doublebuffer) *ptr++ = GLX_DOUBLEBUFFER; - if(w->glwDrawingArea.stereo) *ptr++ = GLX_STEREO; - *ptr++ = GLX_AUX_BUFFERS; - *ptr++ = w->glwDrawingArea.auxBuffers; - *ptr++ = GLX_RED_SIZE; - *ptr++ = w->glwDrawingArea.redSize; - *ptr++ = GLX_GREEN_SIZE; - *ptr++ = w->glwDrawingArea.greenSize; - *ptr++ = GLX_BLUE_SIZE; - *ptr++ = w->glwDrawingArea.blueSize; - *ptr++ = GLX_ALPHA_SIZE; - *ptr++ = w->glwDrawingArea.alphaSize; - *ptr++ = GLX_DEPTH_SIZE; - *ptr++ = w->glwDrawingArea.depthSize; - *ptr++ = GLX_STENCIL_SIZE; - *ptr++ = w->glwDrawingArea.stencilSize; - *ptr++ = GLX_ACCUM_RED_SIZE; - *ptr++ = w->glwDrawingArea.accumRedSize; - *ptr++ = GLX_ACCUM_GREEN_SIZE; - *ptr++ = w->glwDrawingArea.accumGreenSize; - *ptr++ = GLX_ACCUM_BLUE_SIZE; - *ptr++ = w->glwDrawingArea.accumBlueSize; - *ptr++ = GLX_ACCUM_ALPHA_SIZE; - *ptr++ = w->glwDrawingArea.accumAlphaSize; - *ptr++ = None; - assert((ptr-w->glwDrawingArea.attribList)glwDrawingArea.attribList); - w->glwDrawingArea.visualInfo=glXChooseVisual(XtDisplay(w),XScreenNumberOfScreen(XtScreen(w)),w->glwDrawingArea.attribList); - if(!w->glwDrawingArea.visualInfo) error((Widget)w,"requested visual not supported"); - } - - - -/* Initialize the colormap based on the visual info. - * This routine maintains a cache of visual-infos to colormaps. If two - * widgets share the same visual info, they share the same colormap. - * This function is called by the callProc of the colormap resource entry. - */ -static void createColormap(GLwDrawingAreaWidget w,int offset,XrmValue *value){ - static struct cmapCache { Visual *visual; Colormap cmap; } *cmapCache; - static int cacheEntries=0; - static int cacheMalloced=0; - register int i; - - assert(w->glwDrawingArea.visualInfo); - - /* see if we can find it in the cache */ - for(i=0; iglwDrawingArea.visualInfo->visual){ - value->addr=(XtPointer)(&cmapCache[i].cmap); - return; - } - } - - /* not in the cache, create a new entry */ - if(cacheEntries >= cacheMalloced){ - /* need to malloc a new one. Since we are likely to have only a - * few colormaps, we allocate one the first time, and double - * each subsequent time. - */ - if(cacheMalloced==0){ - cacheMalloced=1; - cmapCache=(struct cmapCache*)XtMalloc(sizeof(struct cmapCache)); - } - else{ - cacheMalloced<<=1; - cmapCache=(struct cmapCache*)XtRealloc((char*)cmapCache,sizeof(struct cmapCache)*cacheMalloced); - } - } - - cmapCache[cacheEntries].cmap=XCreateColormap(XtDisplay(w), - RootWindow(XtDisplay(w), - w->glwDrawingArea.visualInfo->screen), - w->glwDrawingArea.visualInfo->visual, - AllocNone); - cmapCache[cacheEntries].visual=w->glwDrawingArea.visualInfo->visual; - value->addr=(XtPointer)(&cmapCache[cacheEntries++].cmap); - } - - - -static void Initialize(GLwDrawingAreaWidget req,GLwDrawingAreaWidget neww,ArgList args,Cardinal *num_args){ - - /* fix size */ - if(req->core.width==0) neww->core.width=100; - if(req->core.height==0) neww->core.width=100; - - /* create the attribute list if needed */ - neww->glwDrawingArea.myList=FALSE; - if(neww->glwDrawingArea.attribList==NULL){ - neww->glwDrawingArea.myList=TRUE; - createAttribList(neww); - } - - /* Gotta have it */ - assert(neww->glwDrawingArea.attribList); - - /* determine the visual info if needed */ - neww->glwDrawingArea.myVisual=FALSE; - if(neww->glwDrawingArea.visualInfo==NULL){ - neww->glwDrawingArea.myVisual=TRUE; - createVisualInfo(neww); - } - - /* Gotta have that too */ - assert(neww->glwDrawingArea.visualInfo); - - neww->core.depth=neww->glwDrawingArea.visualInfo->depth; - - /* Reobtain the colormap and colors in it using XtGetApplicationResources*/ - XtGetApplicationResources((Widget)neww,neww,initializeResources,XtNumber(initializeResources),args,*num_args); - - /* obtain the color resources if appropriate */ - if(req->glwDrawingArea.allocateBackground){ - XtGetApplicationResources((Widget)neww,neww,backgroundResources,XtNumber(backgroundResources),args,*num_args); - } - -#ifdef __GLX_MOTIF - if(req->glwDrawingArea.allocateOtherColors){ - XtGetApplicationResources((Widget)neww,neww,otherColorResources,XtNumber(otherColorResources),args,*num_args); - } -#endif - } - - - -static void Realize(Widget w,Mask *valueMask,XSetWindowAttributes *attributes){ - register GLwDrawingAreaWidget glw=(GLwDrawingAreaWidget)w; - GLwDrawingAreaCallbackStruct cb; - Widget parentShell; - Status status; - Window windows[2],*windowsReturn,*windowList; - int countReturn,i; - - /* if we haven't requested that the background be both installed and - * allocated, don't install it. - */ - if(!(glw->glwDrawingArea.installBackground && glw->glwDrawingArea.allocateBackground)){ - *valueMask&=~CWBackPixel; - } - - XtCreateWindow(w,(unsigned int)InputOutput,glw->glwDrawingArea.visualInfo->visual,*valueMask,attributes); - - /* if appropriate, call XSetWMColormapWindows to install the colormap */ - if(glw->glwDrawingArea.installColormap){ - - /* Get parent shell */ - for(parentShell=XtParent(w); parentShell&&!XtIsShell(parentShell); parentShell=XtParent(parentShell)); - - if(parentShell && XtWindow(parentShell)){ - - /* check to see if there is already a property */ - status=XGetWMColormapWindows(XtDisplay(parentShell),XtWindow(parentShell),&windowsReturn,&countReturn); - - /* if no property, just create one */ - if(!status){ - windows[0]=XtWindow(w); - windows[1]=XtWindow(parentShell); - XSetWMColormapWindows(XtDisplay(parentShell),XtWindow(parentShell),windows,2); - } - - /* there was a property, add myself to the beginning */ - else{ - windowList=(Window *)XtMalloc((sizeof(Window))*(countReturn+1)); - windowList[0]=XtWindow(w); - for(i=0; icore.width; - cb.height=glw->core.height; - XtCallCallbackList((Widget)glw,glw->glwDrawingArea.ginitCallback,&cb); - } - - - -static void Redraw(GLwDrawingAreaWidget w,XEvent *event,Region region){ - GLwDrawingAreaCallbackStruct cb; - if(!XtIsRealized((Widget)w)) return; - cb.reason=GLwCR_EXPOSE; - cb.event=event; - cb.width=w->core.width; - cb.height=w->core.height; - XtCallCallbackList((Widget)w,w->glwDrawingArea.exposeCallback,&cb); - } - - - -static void Resize(GLwDrawingAreaWidget glw){ - GLwDrawingAreaCallbackStruct cb; - if(!XtIsRealized((Widget)glw)) return; - cb.reason=GLwCR_RESIZE; - cb.event=NULL; - cb.width=glw->core.width; - cb.height=glw->core.height; - XtCallCallbackList((Widget)glw,glw->glwDrawingArea.resizeCallback,&cb); - } - - - -static void Destroy(GLwDrawingAreaWidget glw){ - Window *windowsReturn; - Widget parentShell; - Status status; - int countReturn; - register int i; - - if(glw->glwDrawingArea.myList && glw->glwDrawingArea.attribList){ - XtFree((XtPointer)glw->glwDrawingArea.attribList); - } - - if(glw->glwDrawingArea.myVisual && glw->glwDrawingArea.visualInfo){ - XtFree((XtPointer)glw->glwDrawingArea.visualInfo); - } - - /* if my colormap was installed, remove it */ - if(glw->glwDrawingArea.installColormap){ - - /* Get parent shell */ - for(parentShell=XtParent(glw); parentShell&&!XtIsShell(parentShell); parentShell=XtParent(parentShell)); - - if(parentShell && XtWindow(parentShell)){ - - /* make sure there is a property */ - status=XGetWMColormapWindows(XtDisplay(parentShell),XtWindow(parentShell),&windowsReturn,&countReturn); - - /* if no property, just return. If there was a property, continue */ - if(status){ - - /* search for a match */ - for(i=0; icore.width; - cb.height=glw->core.height; - XtCallCallbackList((Widget)glw,glw->glwDrawingArea.inputCallback,&cb); - } - - -#ifdef __GLX_MOTIF - -/* Create routine */ -Widget GLwCreateMDrawingArea(Widget parent, char *name,ArgList arglist,Cardinal argcount){ - return XtCreateWidget(name,glwMDrawingAreaWidgetClass, parent, arglist,argcount); - } - -#endif - - -#ifndef __GLX_MOTIF - -/* Make context current */ -void GLwDrawingAreaMakeCurrent(Widget w,GLXContext ctx){ - glXMakeCurrent(XtDisplay(w),XtWindow(w),ctx); - } - - -/* Swap buffers convenience function */ -void GLwDrawingAreaSwapBuffers(Widget w){ - glXSwapBuffers(XtDisplay(w),XtWindow(w)); - } - -#endif diff --git a/nx-X11/extras/Mesa/src/glw/GLwDrawA.h b/nx-X11/extras/Mesa/src/glw/GLwDrawA.h deleted file mode 100644 index cd631b4fb..000000000 --- a/nx-X11/extras/Mesa/src/glw/GLwDrawA.h +++ /dev/null @@ -1,195 +0,0 @@ -/* - * (c) Copyright 1993, Silicon Graphics, Inc. - * ALL RIGHTS RESERVED - * 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, and that - * the name of Silicon Graphics, Inc. not be used in advertising - * or publicity pertaining to distribution of the software without specific, - * written prior permission. - * - * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "AS-IS" - * AND WITHOUT WARRANTY OF ANY KIND, EXPRESS, IMPLIED OR OTHERWISE, - * INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY OR - * FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON - * GRAPHICS, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT, - * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY - * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION, - * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF - * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN - * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE - * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE. - * - * - * US Government Users Restricted Rights - * Use, duplication, or disclosure by the Government is subject to - * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph - * (c)(1)(ii) of the Rights in Technical Data and Computer Software - * clause at DFARS 252.227-7013 and/or in similar or successor - * clauses in the FAR or the DOD or NASA FAR Supplement. - * Unpublished-- rights reserved under the copyright laws of the - * United States. Contractor/manufacturer is Silicon Graphics, - * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311. - * - * OpenGL(TM) is a trademark of Silicon Graphics, Inc. - */ -#ifndef _GLwDrawA_h -#define _GLwDrawA_h - -#include -#include - -/**************************************************************** - * - * GLwDrawingArea widgets - * - ****************************************************************/ - -/* Resources: - - Name Class RepType Default Value - ---- ----- ------- ------------- - attribList AttribList int * NULL - visualInfo VisualInfo VisualInfo NULL - installColormap InstallColormap Boolean TRUE - allocateBackground AllocateColors Boolean FALSE - allocateOtherColors AllocateColors Boolean FALSE - installBackground InstallBackground Boolean TRUE - exposeCallback Callback Pointer NULL - ginitCallback Callback Pointer NULL - inputCallback Callback Pointer NULL - resizeCallback Callback Pointer NULL - -*** The following resources all correspond to the GLX configuration -*** attributes and are used to create the attribList if it is NULL - bufferSize BufferSize int 0 - level Level int 0 - rgba Rgba Boolean FALSE - doublebuffer Doublebuffer Boolean FALSE - stereo Stereo Boolean FALSE - auxBuffers AuxBuffers int 0 - redSize ColorSize int 1 - greenSize ColorSize int 1 - blueSize ColorSize int 1 - alphaSize AlphaSize int 0 - depthSize DepthSize int 0 - stencilSize StencilSize int 0 - accumRedSize AccumColorSize int 0 - accumGreenSize AccumColorSize int 0 - accumBlueSize AccumColorSize int 0 - accumAlphaSize AccumAlphaSize int 0 -*/ - -#define GLwNattribList "attribList" -#define GLwCAttribList "AttribList" -#define GLwNvisualInfo "visualInfo" -#define GLwCVisualInfo "VisualInfo" -#define GLwRVisualInfo "VisualInfo" - -#define GLwNinstallColormap "installColormap" -#define GLwCInstallColormap "InstallColormap" -#define GLwNallocateBackground "allocateBackground" -#define GLwNallocateOtherColors "allocateOtherColors" -#define GLwCAllocateColors "AllocateColors" -#define GLwNinstallBackground "installBackground" -#define GLwCInstallBackground "InstallBackground" - -#define GLwCCallback "Callback" -#define GLwNexposeCallback "exposeCallback" -#define GLwNginitCallback "ginitCallback" -#define GLwNresizeCallback "resizeCallback" -#define GLwNinputCallback "inputCallback" - -#define GLwNbufferSize "bufferSize" -#define GLwCBufferSize "BufferSize" -#define GLwNlevel "level" -#define GLwCLevel "Level" -#define GLwNrgba "rgba" -#define GLwCRgba "Rgba" -#define GLwNdoublebuffer "doublebuffer" -#define GLwCDoublebuffer "Doublebuffer" -#define GLwNstereo "stereo" -#define GLwCStereo "Stereo" -#define GLwNauxBuffers "auxBuffers" -#define GLwCAuxBuffers "AuxBuffers" -#define GLwNredSize "redSize" -#define GLwNgreenSize "greenSize" -#define GLwNblueSize "blueSize" -#define GLwCColorSize "ColorSize" -#define GLwNalphaSize "alphaSize" -#define GLwCAlphaSize "AlphaSize" -#define GLwNdepthSize "depthSize" -#define GLwCDepthSize "DepthSize" -#define GLwNstencilSize "stencilSize" -#define GLwCStencilSize "StencilSize" -#define GLwNaccumRedSize "accumRedSize" -#define GLwNaccumGreenSize "accumGreenSize" -#define GLwNaccumBlueSize "accumBlueSize" -#define GLwCAccumColorSize "AccumColorSize" -#define GLwNaccumAlphaSize "accumAlphaSize" -#define GLwCAccumAlphaSize "AccumAlphaSize" - -#ifdef __GLX_MOTIF - -typedef struct _GLwMDrawingAreaClassRec *GLwMDrawingAreaWidgetClass; -typedef struct _GLwMDrawingAreaRec *GLwMDrawingAreaWidget; - -extern WidgetClass glwMDrawingAreaWidgetClass; - - -#else - -typedef struct _GLwDrawingAreaClassRec *GLwDrawingAreaWidgetClass; -typedef struct _GLwDrawingAreaRec *GLwDrawingAreaWidget; - -extern WidgetClass glwDrawingAreaWidgetClass; - - -#endif - - -/* Callback reasons */ -#ifdef __GLX_MOTIF -#define GLwCR_EXPOSE XmCR_EXPOSE -#define GLwCR_RESIZE XmCR_RESIZE -#define GLwCR_INPUT XmCR_INPUT -#else -/* The same values as Motif, but don't use Motif constants */ -#define GLwCR_EXPOSE 38 -#define GLwCR_RESIZE 39 -#define GLwCR_INPUT 40 -#endif - -#define GLwCR_GINIT 32135 /* Arbitrary number that should neverr clash */ - -typedef struct - { - int reason; - XEvent *event; - Dimension width,height; - } - GLwDrawingAreaCallbackStruct; - -#if defined(__cplusplus) || defined(c_plusplus) -extern "C" { -#endif - -/* front ends to glXMakeCurrent and glXSwapBuffers */ -extern void GLwDrawingAreaMakeCurrent(Widget w,GLXContext ctx); -extern void GLwDrawingAreaSwapBuffers(Widget w); - -#ifdef __GLX_MOTIF -#ifdef _NO_PROTO -GLAPI Widget GLwCreateMDrawingArea(); -#else -GLAPI Widget GLwCreateMDrawingArea(Widget parent,char *name,ArgList arglist,Cardinal argcount); -#endif -#endif - -#if defined(__cplusplus) || defined(c_plusplus) -} -#endif - -#endif diff --git a/nx-X11/extras/Mesa/src/glw/GLwDrawAP.h b/nx-X11/extras/Mesa/src/glw/GLwDrawAP.h deleted file mode 100644 index f12170195..000000000 --- a/nx-X11/extras/Mesa/src/glw/GLwDrawAP.h +++ /dev/null @@ -1,130 +0,0 @@ -/* - * (c) Copyright 1993, Silicon Graphics, Inc. - * ALL RIGHTS RESERVED - * 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, and that - * the name of Silicon Graphics, Inc. not be used in advertising - * or publicity pertaining to distribution of the software without specific, - * written prior permission. - * - * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "AS-IS" - * AND WITHOUT WARRANTY OF ANY KIND, EXPRESS, IMPLIED OR OTHERWISE, - * INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY OR - * FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON - * GRAPHICS, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT, - * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY - * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION, - * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF - * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN - * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE - * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE. - * - * - * US Government Users Restricted Rights - * Use, duplication, or disclosure by the Government is subject to - * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph - * (c)(1)(ii) of the Rights in Technical Data and Computer Software - * clause at DFARS 252.227-7013 and/or in similar or successor - * clauses in the FAR or the DOD or NASA FAR Supplement. - * Unpublished-- rights reserved under the copyright laws of the - * United States. Contractor/manufacturer is Silicon Graphics, - * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311. - * - * OpenGL(TM) is a trademark of Silicon Graphics, Inc. - */ -#ifndef _GLwDrawAP_h -#define _GLwDrawAP_h - - -/* MOTIF */ -#ifdef __GLX_MOTIF -#include "GLwMDrawA.h" -#else -#include "GLwDrawA.h" -#endif - -typedef struct _GLwDrawingAreaClassPart { - caddr_t extension; - } GLwDrawingAreaClassPart; - - -#ifdef __GLX_MOTIF -typedef struct _GLwMDrawingAreaClassRec { - CoreClassPart core_class; - XmPrimitiveClassPart primitive_class; - GLwDrawingAreaClassPart glwDrawingArea_class; - } GLwMDrawingAreaClassRec; - - -extern GLwMDrawingAreaClassRec glwMDrawingAreaClassRec; - - -/* XT */ -#else - -typedef struct _GLwDrawingAreaClassRec { - CoreClassPart core_class; - GLwDrawingAreaClassPart glwDrawingArea_class; - } GLwDrawingAreaClassRec; - -extern GLwDrawingAreaClassRec glwDrawingAreaClassRec; - - -#endif - - - -typedef struct { - /* resources */ - int * attribList; - XVisualInfo * visualInfo; - Boolean myList; /* TRUE if we malloced the attribList*/ - Boolean myVisual; /* TRUE if we created the visualInfo*/ - Boolean installColormap; - Boolean allocateBackground; - Boolean allocateOtherColors; - Boolean installBackground; - XtCallbackList ginitCallback; - XtCallbackList resizeCallback; - XtCallbackList exposeCallback; - XtCallbackList inputCallback; - /* specific attributes; add as we get new attributes */ - int bufferSize; - int level; - Boolean rgba; - Boolean doublebuffer; - Boolean stereo; - int auxBuffers; - int redSize; - int greenSize; - int blueSize; - int alphaSize; - int depthSize; - int stencilSize; - int accumRedSize; - int accumGreenSize; - int accumBlueSize; - int accumAlphaSize; - } GLwDrawingAreaPart; - -#ifdef __GLX_MOTIF - -typedef struct _GLwMDrawingAreaRec { - CorePart core; - XmPrimitivePart primitive; - GLwDrawingAreaPart glwDrawingArea; - } GLwMDrawingAreaRec; - -#else - -typedef struct _GLwDrawingAreaRec { - CorePart core; - GLwDrawingAreaPart glwDrawingArea; - } GLwDrawingAreaRec; - -#endif - -#endif diff --git a/nx-X11/extras/Mesa/src/glw/GLwMDrawA.c b/nx-X11/extras/Mesa/src/glw/GLwMDrawA.c deleted file mode 100644 index bdefe92a6..000000000 --- a/nx-X11/extras/Mesa/src/glw/GLwMDrawA.c +++ /dev/null @@ -1,41 +0,0 @@ -/* - * (c) Copyright 1993, Silicon Graphics, Inc. - * ALL RIGHTS RESERVED - * 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, and that - * the name of Silicon Graphics, Inc. not be used in advertising - * or publicity pertaining to distribution of the software without specific, - * written prior permission. - * - * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "AS-IS" - * AND WITHOUT WARRANTY OF ANY KIND, EXPRESS, IMPLIED OR OTHERWISE, - * INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY OR - * FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON - * GRAPHICS, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT, - * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY - * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION, - * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF - * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN - * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE - * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE. - * - * - * US Government Users Restricted Rights - * Use, duplication, or disclosure by the Government is subject to - * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph - * (c)(1)(ii) of the Rights in Technical Data and Computer Software - * clause at DFARS 252.227-7013 and/or in similar or successor - * clauses in the FAR or the DOD or NASA FAR Supplement. - * Unpublished-- rights reserved under the copyright laws of the - * United States. Contractor/manufacturer is Silicon Graphics, - * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311. - * - * OpenGL(TM) is a trademark of Silicon Graphics, Inc. - */ -#ifndef __GLX_MOTIF -#define __GLX_MOTIF 1 -#endif -#include "GLwDrawA.c" diff --git a/nx-X11/extras/Mesa/src/glw/GLwMDrawA.h b/nx-X11/extras/Mesa/src/glw/GLwMDrawA.h deleted file mode 100644 index 2e2458904..000000000 --- a/nx-X11/extras/Mesa/src/glw/GLwMDrawA.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * (c) Copyright 1993, Silicon Graphics, Inc. - * ALL RIGHTS RESERVED - * 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, and that - * the name of Silicon Graphics, Inc. not be used in advertising - * or publicity pertaining to distribution of the software without specific, - * written prior permission. - * - * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "AS-IS" - * AND WITHOUT WARRANTY OF ANY KIND, EXPRESS, IMPLIED OR OTHERWISE, - * INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY OR - * FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON - * GRAPHICS, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT, - * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY - * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION, - * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF - * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN - * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE - * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE. - * - * - * US Government Users Restricted Rights - * Use, duplication, or disclosure by the Government is subject to - * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph - * (c)(1)(ii) of the Rights in Technical Data and Computer Software - * clause at DFARS 252.227-7013 and/or in similar or successor - * clauses in the FAR or the DOD or NASA FAR Supplement. - * Unpublished-- rights reserved under the copyright laws of the - * United States. Contractor/manufacturer is Silicon Graphics, - * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311. - * - * OpenGL(TM) is a trademark of Silicon Graphics, Inc. - */ -#ifndef __GLX_MOTIF -#define __GLX_MOTIF 1 -#endif -#include "GLwDrawA.h" diff --git a/nx-X11/extras/Mesa/src/glw/GLwMDrawAP.h b/nx-X11/extras/Mesa/src/glw/GLwMDrawAP.h deleted file mode 100644 index a0a689bb9..000000000 --- a/nx-X11/extras/Mesa/src/glw/GLwMDrawAP.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * (c) Copyright 1993, Silicon Graphics, Inc. - * ALL RIGHTS RESERVED - * 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, and that - * the name of Silicon Graphics, Inc. not be used in advertising - * or publicity pertaining to distribution of the software without specific, - * written prior permission. - * - * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "AS-IS" - * AND WITHOUT WARRANTY OF ANY KIND, EXPRESS, IMPLIED OR OTHERWISE, - * INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY OR - * FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON - * GRAPHICS, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT, - * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY - * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION, - * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF - * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN - * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE - * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE. - * - * - * US Government Users Restricted Rights - * Use, duplication, or disclosure by the Government is subject to - * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph - * (c)(1)(ii) of the Rights in Technical Data and Computer Software - * clause at DFARS 252.227-7013 and/or in similar or successor - * clauses in the FAR or the DOD or NASA FAR Supplement. - * Unpublished-- rights reserved under the copyright laws of the - * United States. Contractor/manufacturer is Silicon Graphics, - * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311. - * - * OpenGL(TM) is a trademark of Silicon Graphics, Inc. - */ -#ifndef __GLX_MOTIF -#define __GLX_MOTIF 1 -#endif -#include "GLwDrawAP.h" diff --git a/nx-X11/extras/Mesa/src/glw/Makefile b/nx-X11/extras/Mesa/src/glw/Makefile deleted file mode 100644 index 3c66c6778..000000000 --- a/nx-X11/extras/Mesa/src/glw/Makefile +++ /dev/null @@ -1,52 +0,0 @@ -# src/glw/Makefile - -TOP = ../.. -include $(TOP)/configs/current - -MAJOR = 1 -MINOR = 0 -TINY = 0 - -INCDIRS = -I$(TOP)/include -I/usr/include/Motif1.2 -I/usr/contrib/X11R6/include -I/usr/X11R6/include - - -OBJECTS = $(GLW_SOURCES:.c=.o) - - - -##### RULES ##### - -.c.o: - $(CC) -c $(INCDIRS) $(CFLAGS) $< - - - -##### TARGETS ##### - -default: $(LIB_DIR)/$(GLW_LIB_NAME) - - -clean: - -rm depend depend.bak - -rm -f *.o *~ - - -# Make the library -$(LIB_DIR)/$(GLW_LIB_NAME): $(OBJECTS) - $(TOP)/bin/mklib -o $(GLW_LIB) -linker '$(CC)' \ - -major $(MAJOR) -minor $(MINOR) -patch $(TINY) \ - $(MKLIB_OPTIONS) -install $(LIB_DIR) \ - $(GLW_LIB_DEPS) $(OBJECTS) - - -# -# Run 'make depend' to update the dependencies if you change what's included -# by any source file. -# -depend: $(GLW_SOURCES) - touch depend - $(MKDEP) $(MKDEP_OPTIONS) -I$(TOP)/include $(GLW_SOURCES) \ - > /dev/null - - -include depend diff --git a/nx-X11/extras/Mesa/src/glw/README b/nx-X11/extras/Mesa/src/glw/README deleted file mode 100644 index 70f4f7bc2..000000000 --- a/nx-X11/extras/Mesa/src/glw/README +++ /dev/null @@ -1,56 +0,0 @@ - - widgets README file - - -This directory contains the source code for SGI's OpenGL Xt/Motif widgets, -slightly modified by Jeroen van der Zijp to work better with Mesa. - -To compile the widget code (producing lib/libGLw.a) cd to the widgets/ -directory and type 'make ' where is the system configuration -you used to compile Mesa (like 'make linux'). This hasn't been tested on -many systems so let us know if you have trouble. - -If you want to make a Linux ELF shared lib instead of the non-shared .a -file see the notes in the Makefile. - -If you want to build with Motif support, edit Makefile.X11, looking -for the "Motif" information. - -The SGI copyright is as follows. - - - * (c) Copyright 1993, Silicon Graphics, Inc. - * ALL RIGHTS RESERVED - * 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, and that - * the name of Silicon Graphics, Inc. not be used in advertising - * or publicity pertaining to distribution of the software without specific, - * written prior permission. - * - * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "AS-IS" - * AND WITHOUT WARRANTY OF ANY KIND, EXPRESS, IMPLIED OR OTHERWISE, - * INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY OR - * FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON - * GRAPHICS, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT, - * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY - * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION, - * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF - * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN - * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE - * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE. - * - * - * US Government Users Restricted Rights - * Use, duplication, or disclosure by the Government is subject to - * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph - * (c)(1)(ii) of the Rights in Technical Data and Computer Software - * clause at DFARS 252.227-7013 and/or in similar or successor - * clauses in the FAR or the DOD or NASA FAR Supplement. - * Unpublished-- rights reserved under the copyright laws of the - * United States. Contractor/manufacturer is Silicon Graphics, - * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311. - * - * OpenGL(TM) is a trademark of Silicon Graphics, Inc. diff --git a/nx-X11/extras/Mesa/src/glx/Makefile b/nx-X11/extras/Mesa/src/glx/Makefile deleted file mode 100644 index bd486cf81..000000000 --- a/nx-X11/extras/Mesa/src/glx/Makefile +++ /dev/null @@ -1,12 +0,0 @@ - -TOP = ../.. -include $(TOP)/configs/current - - -default: - cd mini ; $(MAKE) - - -clean: - cd mini ; $(MAKE) clean - diff --git a/nx-X11/extras/Mesa/src/glx/mini/Makefile b/nx-X11/extras/Mesa/src/glx/mini/Makefile deleted file mode 100644 index e87905acb..000000000 --- a/nx-X11/extras/Mesa/src/glx/mini/Makefile +++ /dev/null @@ -1,86 +0,0 @@ -# Build a subset DRI-based libGL.so library. -# Indirect rendering not supported, etc. - -TOP = ../../.. -include $(TOP)/configs/current - - -DEFINES += -DGLX_DIRECT_RENDERING -DIN_MINI_GLX -UIN_DRI_DRIVER - -C_SOURCES = \ - $(TOP)/src/mesa/main/dispatch.c \ - $(TOP)/src/mesa/glapi/glapi.c \ - $(TOP)/src/mesa/glapi/glthread.c \ - $(TOP)/src/mesa/drivers/dri/common/glcontextmodes.c \ - $(DRM_SOURCE_PATH)/libdrm/xf86drm.c \ - $(DRM_SOURCE_PATH)/libdrm/xf86drmHash.c \ - $(DRM_SOURCE_PATH)/libdrm/xf86drmRandom.c \ - miniglx.c \ - miniglx_events.c - -X86_SOURCES = $(TOP)/src/mesa/x86/glapi_x86.S - -OBJECTS = $(C_SOURCES:.c=.o) \ - $(ASM_SOURCES:.S=.o) - -INCLUDES = -I. $(INCLUDE_DIRS) - -INCLUDE_DIRS = \ - -I$(TOP)/include \ - -I$(TOP)/src/mesa \ - -I$(TOP)/src/mesa/main \ - -I$(TOP)/src/mesa/glapi \ - -I$(TOP)/src/mesa/math \ - -I$(TOP)/src/mesa/transform \ - -I$(TOP)/src/mesa/swrast \ - -I$(TOP)/src/mesa/swrast_setup \ - -I$(TOP)/src/mesa/drivers/dri/common \ - -I$(DRM_SOURCE_PATH)/libdrm \ - -I$(DRM_SOURCE_PATH)/shared - - -##### RULES ##### - -.c.o: - $(CC) -c $(INCLUDES) $(CFLAGS) $(DEFINES) $< -o $@ - -.S.o: - $(CC) -c $(INCLUDES) $(CFLAGS) $(DEFINES) $< -o $@ - - -##### TARGETS ##### - -default: depend $(LIB_DIR)/$(GL_LIB_NAME) - - -# Make libGL -$(LIB_DIR)/$(GL_LIB_NAME): $(OBJECTS) Makefile - $(TOP)/bin/mklib -o $(GL_LIB) -linker '$(CC)' \ - -major 1 -minor 2 $(MKLIB_OPTIONS) \ - -install $(LIB_DIR) $(GL_LIB_DEPS) $(OBJECTS) - rm -f $(LIB_DIR)/miniglx.conf - install example.miniglx.conf $(LIB_DIR)/miniglx.conf - - -drmtest: xf86drm.o drmtest.o - rm -f drmtest && $(CC) -o drmtest xf86drm.o drmtest.o - - -depend: $(C_SOURCES) $(ASM_SOURCES) - touch depend - $(MKDEP) $(MKDEP_OPTIONS) $(INCLUDES) $(C_SOURCES) $(ASM_SOURCES) \ - > /dev/null - - -# Emacs tags -tags: - etags `find . -name \*.[ch]` `find ../include` - - -# Remove .o and backup files -clean: - -rm -f drmtest $(LIB_DIR)/libGL.so* - -rm -f *.o *~ - -rm -f depend - -include depend diff --git a/nx-X11/extras/Mesa/src/glx/mini/NOTES b/nx-X11/extras/Mesa/src/glx/mini/NOTES deleted file mode 100644 index 1774107d6..000000000 --- a/nx-X11/extras/Mesa/src/glx/mini/NOTES +++ /dev/null @@ -1,115 +0,0 @@ - - -Getting MiniGLX up and running ------------------------------- - -It's necessary to do a bit of work to set up an environment to run miniglx. - -For the radeon driver, it's necessary to get the right set of kernel -modules installed before attempting to run any programs: - - rmmod radeon agpgart; - insmod agpgart; - insmod $(MESA)/src/kernel/radeonfb/radeonfb.o; - insmod $(MESA)/src/kernel/radeon/radeon.o; - -For all drivers, its necessary to reach the compiled libraries, and -tell MiniGLX where to find it's configuration file: - - export LD_LIBRARY_PATH=$(MESA)/lib; - export MINIGLX_CONF=$(MESA)/lib/miniglx.conf - ------------------------------------------------------------- - -MiniGLX Example Programs ------------------------- - -The following programs will work with miniglx: - - $(MESA)/tests/miniglx - $(MESA)/xdemos/glxgears - -Thanks to the miniglut stub library, most of the mesa glut demos will -work. In particular, the following have been tested. (Note there is -no keyboard or mouse interaction with these demos). - - $(MESA)/demos/gears - $(MESA)/demos/geartrain - $(MESA)/demos/morph3d - $(MESA)/demos/isosurf - $(MESA)/demos/texobj - $(MESA)/demos/texcyl - $(MESA)/demos/gloss - $(MESA)/demos/fire - $(MESA)/demos/tunnel - $(MESA)/demos/teapot - $(MESA)/samples/prim - $(MESA)/samples/olympic - $(MESA)/samples/star - $(MESA)/samples/wave - ...etc - -In fact most of the glut demos seem to work within the constraints of -having no keyboard/mouse interactivity. Furthermore, the use of the -glut wrapper means that these programs don't require recompilation to -run under MiniGLX -- the same binary works with both regular GLX and -MiniGLX. - - ------------------------------------------------------------- - -Porting GLX apps to MiniGLX ---------------------------- - -A quick list of issues encountered in porting existing GLX apps to -MiniGLX. Listed in no particular order. - -1) No input events - -MiniGLX doesn't provide an input layer, so any X11 input event -handling in the existing app will have to be redone for whatever -input devices exist on the target. - -2) No configuration, expose events - -Many GLX and Xlib programs wait on an event to ensure the window has -become visible after being mapped. MiniGLX provides no equivalent -facility. - -3) Different headers - -X11/Xlib.h, GL/GLX.h, etc must not be used if the program is being -compiled against MiniGLX. - -The equivalent header is GL/MiniGLX.h. - -4) Different library - -It may be necessary to link directly against the minGLX libGL.so. - -5) Reduced number of Xlib and GLX entrypoints. - -By definition (MiniGLX is a subset of GLX), many Xlib and GLX -entrypoints, structures and macros are not present in MiniGLX. It -will be necessary to find and eliminate all references to -non-supported entrypoints. - - ---------------------------------------------------------------- - -Bugs in radeonfb.o -- the radeon framebuffer driver. ----------------------------------------------------- - -Several bugs have been found in the radeonfb.o framebuffer driver. -Most of these are resolved in the version included in the MiniGLX -sources, but some remain: - -1) Occasionally, after entering graphics mode, colors appear 'shifted' -or 'translated', particularly in higher resolution modes. This is -definitely a bug in radeonfb.o as this can be provoked even when using -the software dri driver (fb_dri.so). Importance: High. Workaround: -Use 800x600 as it seems to be less frequent at this resolution, -otherwise, restart the application. - - - diff --git a/nx-X11/extras/Mesa/src/glx/mini/dispatch.c b/nx-X11/extras/Mesa/src/glx/mini/dispatch.c deleted file mode 100644 index ac24df9e7..000000000 --- a/nx-X11/extras/Mesa/src/glx/mini/dispatch.c +++ /dev/null @@ -1,64 +0,0 @@ -/** - * \file miniglx/dispatch.c - * - * \brief C-based dispatch of the OpenGL entry points (glAccum(), glBegin(), - * etc). - * - * \author Brian Paul - * - * \note This code IS NOT USED if we're compiling on an x86 system and using - * the glapi_x86.S assembly code. - */ - -/* - * Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas. - * 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 PRECISION INSIGHT 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. - */ - -#include "glheader.h" -#include "glapi.h" -#include "glapitable.h" - - -#if !(defined(USE_X86_ASM) || defined(USE_SPARC_ASM)) - -#define KEYWORD1 - -#define KEYWORD2 - -#define NAME(func) gl##func - -#define DISPATCH(func, args, msg) \ - const struct _glapi_table *dispatch; \ - dispatch = _glapi_Dispatch ? _glapi_Dispatch : _glapi_get_dispatch();\ - (dispatch->func) args - -#define RETURN_DISPATCH(func, args, msg) \ - const struct _glapi_table *dispatch; \ - dispatch = _glapi_Dispatch ? _glapi_Dispatch : _glapi_get_dispatch();\ - return (dispatch->func) args - - -#include "glapitemp.h" - -#endif /* USE_X86_ASM */ diff --git a/nx-X11/extras/Mesa/src/glx/mini/driver.h b/nx-X11/extras/Mesa/src/glx/mini/driver.h deleted file mode 100644 index 27402641b..000000000 --- a/nx-X11/extras/Mesa/src/glx/mini/driver.h +++ /dev/null @@ -1,169 +0,0 @@ -/** - * \file driver.h - * \brief DRI utility functions definitions. - * - * This module acts as glue between GLX and the actual hardware driver. A DRI - * driver doesn't really \e have to use any of this - it's optional. But, some - * useful stuff is done here that otherwise would have to be duplicated in most - * drivers. - * - * Basically, these utility functions take care of some of the dirty details of - * screen initialization, context creation, context binding, DRM setup, etc. - * - * These functions are compiled into each DRI driver so libGL.so knows nothing - * about them. - * - * Look for more comments in the dri_util.c file. - * - * \author Kevin E. Martin - * \author Brian Paul - */ - -/* - * Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas. - * 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 PRECISION INSIGHT 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. - */ - -#ifndef _driver_H_ -#define _driver_H_ - -#define CAPI /* XXX this should be globally defined somewhere */ - -#include "GL/gl.h" -#include "GL/internal/glcore.h" - -#include "drm.h" -#include "drm_sarea.h" - -/** - * \brief DRIDriverContext type. - */ -typedef struct DRIDriverContextRec { - const char *pciBusID; - int pciBus; - int pciDevice; - int pciFunc; - int chipset; - int bpp; - int cpp; - int agpmode; - int isPCI; - - int colorTiling; /**< \brief color tiling is enabled */ - - unsigned long FBStart; /**< \brief physical address of the framebuffer */ - unsigned long MMIOStart; /**< \brief physical address of the MMIO region */ - - int FBSize; /**< \brief size of the mmap'd framebuffer in bytes */ - int MMIOSize; /**< \brief size of the mmap'd MMIO region in bytes */ - - void *FBAddress; /**< \brief start of the mmap'd framebuffer */ - void *MMIOAddress; /**< \brief start of the mmap'd MMIO region */ - - /** - * \brief Client configuration details - * - * These are computed on the server and sent to clients as part of - * the initial handshaking. - */ - struct { - unsigned long hSAREA; - int SAREASize; - unsigned long hFrameBuffer; - int fbOrigin; - int fbSize; - int fbStride; - int virtualWidth; - int virtualHeight; - } shared; - - /** - * \name From DRIInfoRec - */ - /*@{*/ - int drmFD; /**< \brief DRM device file descriptor */ - drm_sarea_t *pSAREA; - unsigned int serverContext; /**< \brief DRM context only active on server */ - /*@}*/ - - - /** - * \name Driver private - * - * Populated by __driInitFBDev() - */ - /*@{*/ - void *driverPrivate; - void *driverClientMsg; - int driverClientMsgSize; - /*@}*/ -} DRIDriverContext; - -/** - * \brief Interface to the DRI driver. - * - * This structure is retrieved from the loadable driver by the \e - * __driDriver symbol to access the Mini GLX specific hardware - * initialization and take down routines. - */ -typedef struct DRIDriverRec { - /** - * \brief Validate the framebuffer device mode - */ - int (*validateMode)( const DRIDriverContext *context ); - - /** - * \brief Examine mode returned by fbdev (may differ from the one - * requested), restore any hw regs clobbered by fbdev. - */ - int (*postValidateMode)( const DRIDriverContext *context ); - - /** - * \brief Initialize the framebuffer device. - */ - int (*initFBDev)( DRIDriverContext *context ); - - /** - * \brief Halt the framebuffer device. - */ - void (*haltFBDev)( DRIDriverContext *context ); - - - /** - * \brief Idle and shutdown hardware in preparation for a VT switch. - */ - int (*shutdownHardware)( const DRIDriverContext *context ); - - /** - * \brief Restore hardware state after regaining the VT. - */ - int (*restoreHardware)( const DRIDriverContext *context ); - - /** - * \brief Notify hardware driver of gain/loose focus. May be zero - * as this is of limited utility for most drivers. - */ - void (*notifyFocus)( int have_focus ); -} DRIDriver; - -#endif /* _driver_H_ */ diff --git a/nx-X11/extras/Mesa/src/glx/mini/example.miniglx.conf b/nx-X11/extras/Mesa/src/glx/mini/example.miniglx.conf deleted file mode 100644 index 62dd4f65e..000000000 --- a/nx-X11/extras/Mesa/src/glx/mini/example.miniglx.conf +++ /dev/null @@ -1,36 +0,0 @@ -# Example miniglx configuration file (/etc/miniglx.conf) -# - -# Framebuffer device to open: Might need to change this on dual-head -# systems. -fbdevDevice=/dev/fb0 - -# Which driver? -# radeon_dri.so -- HW accelerated radeon driver -# fb_dri.so -- Software rasterizer -clientDriverName=radeon_dri.so - -# The pci bus id of the video card. Find this with scanpci, lspci or -# look in /proc/pci. -pciBusID=PCI:1:0:0 - -# Is the card PCI or AGP ? -isPCI=0 - -# Virtual screen dimensions. Can reduce this to save videocard memory -# at the expense of maximum window size available. -virtualWidth=1280 -virtualHeight=1024 - -# Screen depth. Only 16 & 32bpp supported. -bpp=32 - -# AGP Mode. Not all cards supported (1, 2 or 4) -agpmode=1 - -# Rotated monitor? -- NOTE: only works with subsetted radeon driver! -rotateMode=0 - -# Do we want to use color tiling ? -colorTiling=0 - diff --git a/nx-X11/extras/Mesa/src/glx/mini/miniglx.c b/nx-X11/extras/Mesa/src/glx/mini/miniglx.c deleted file mode 100644 index c1c4446ab..000000000 --- a/nx-X11/extras/Mesa/src/glx/mini/miniglx.c +++ /dev/null @@ -1,2563 +0,0 @@ -/** - * \file miniglx.c - * \brief Mini GLX interface functions. - * \author Brian Paul - * - * The Mini GLX interface is a subset of the GLX interface, plus a - * minimal set of Xlib functions. - */ - -/* - * Mesa 3-D graphics library - * Version: 6.0.1 - * - * Copyright (C) 1999-2004 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. - */ - - -/** - * \mainpage Mini GLX - * - * \section miniglxIntro Introduction - * - * The Mini GLX interface facilitates OpenGL rendering on embedded devices. The - * interface is a subset of the GLX interface, plus a minimal set of Xlib-like - * functions. - * - * Programs written to the Mini GLX specification should run unchanged - * on systems with the X Window System and the GLX extension (after - * recompilation). The intention is to allow flexibility for - * prototyping and testing. - * - * The files in the src/miniglx/ directory are compiled to build the - * libGL.so library. This is the library which applications link with. - * libGL.so in turn, loads the hardware-specific device driver. - * - * - * \section miniglxDoxygen About Doxygen - * - * For a list of all files, select File List. Choose a file from - * the list for a list of all functions in the file. - * - * For a list of all functions, types, constants, etc. - * select File Members. - * - * - * \section miniglxReferences References - * - * - Mini GLX Specification, - * Tungsten Graphics, Inc. - * - OpenGL Graphics with the X Window System, Silicon Graphics, Inc., - * ftp://ftp.sgi.com/opengl/doc/opengl1.2/glx1.3.ps - * - Xlib - C Language X Interface, X Consortium Standard, X Version 11, - * Release 6.4, ftp://ftp.x.org/pub/R6.4/xc/doc/hardcopy/X11/xlib.PS.gz - * - XFree86 Man pages, The XFree86 Project, Inc., - * http://www.xfree86.org/current/manindex3.html - * - */ - -/** - * \page datatypes Notes on the XVisualInfo, Visual, and __GLXvisualConfig data types - * - * -# X (unfortunately) has two (or three) data types which - * describe visuals. Ideally, there would just be one. - * -# We need the #__GLXvisualConfig type to augment #XVisualInfo and #Visual - * because we need to describe the GLX-specific attributes of visuals. - * -# In this interface there is a one-to-one-to-one correspondence between - * the three types and they're all interconnected. - * -# The #XVisualInfo type has a pointer to a #Visual. The #Visual structure - * (aka MiniGLXVisualRec) has a pointer to the #__GLXvisualConfig. The - * #Visual structure also has a pointer pointing back to the #XVisualInfo. - * -# The #XVisualInfo structure is the only one who's contents are public. - * -# The glXChooseVisual() and XGetVisualInfo() are the only functions that - * return #XVisualInfo structures. They can be freed with XFree(), though - * there is a small memory leak. - */ - - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include /* for gettimeofday */ -#include -#include - -#include "miniglxP.h" -#include "dri_util.h" - -#include "imports.h" -#include "glcontextmodes.h" -#include "glapi.h" - - -static GLboolean __glXCreateContextWithConfig(__DRInativeDisplay *dpy, - int screen, int fbconfigID, void *contextID, - drm_context_t *hHWContext); - -static GLboolean __glXGetDrawableInfo(__DRInativeDisplay *dpy, int scrn, - __DRIid draw, 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); - -static __DRIscreen * __glXFindDRIScreen(__DRInativeDisplay *dpy, int scrn); - -static GLboolean __glXWindowExists(__DRInativeDisplay *dpy, __DRIid draw); - -static int __glXGetUST( int64_t * ust ); - -static GLboolean __glXGetMscRate(__DRInativeDisplay * dpy, __DRIid drawable, - int32_t * numerator, int32_t * denominator); - -static GLboolean xf86DRI_DestroyContext(__DRInativeDisplay *dpy, int screen, - __DRIid context_id ); - -static GLboolean xf86DRI_CreateDrawable(__DRInativeDisplay *dpy, int screen, - __DRIid drawable, drm_drawable_t *hHWDrawable ); - -static GLboolean xf86DRI_DestroyDrawable(__DRInativeDisplay *dpy, int screen, - __DRIid drawable); - - -/** Wrapper around either malloc() */ -void * -_mesa_malloc(size_t bytes) -{ - return malloc(bytes); -} - -/** Wrapper around either calloc() */ -void * -_mesa_calloc(size_t bytes) -{ - return calloc(1, bytes); -} - -/** Wrapper around either free() */ -void -_mesa_free(void *ptr) -{ - free(ptr); -} - - -/** - * \brief Current GLX context. - * - * \sa glXGetCurrentContext(). - */ -static GLXContext CurrentContext = NULL; - - - -static Display *SignalDisplay = 0; - -static void SwitchVT(int sig) -{ - fprintf(stderr, "SwitchVT %d dpy %p\n", sig, SignalDisplay); - - if (SignalDisplay) { - SignalDisplay->vtSignalFlag = 1; - switch( sig ) - { - case SIGUSR1: /* vt has been released */ - SignalDisplay->haveVT = 0; - break; - case SIGUSR2: /* vt has been acquired */ - SignalDisplay->haveVT = 1; - break; - } - } -} - -/**********************************************************************/ -/** \name Framebuffer device functions */ -/**********************************************************************/ -/*@{*/ - -/** - * \brief Do the first part of setting up the framebuffer device. - * - * \param dpy the display handle. - * \param use_vt use a VT for display or not - * - * \return GL_TRUE on success, or GL_FALSE on failure. - * - * \sa This is called during XOpenDisplay(). - * - * \internal - * Gets the VT number, opens the respective console TTY device. Saves its state - * to restore when exiting and goes into graphics mode. - * - * Opens the framebuffer device and make a copy of the original variable screen - * information and gets the fixed screen information. Maps the framebuffer and - * MMIO region into the process address space. - */ -static GLboolean -OpenFBDev( Display *dpy, int use_vt ) -{ - char ttystr[1000]; - int fd, vtnumber, ttyfd; - - assert(dpy); - - if (geteuid()) { - fprintf(stderr, "error: you need to be root\n"); - return GL_FALSE; - } - - if (use_vt) { - - /* open /dev/tty0 and get the VT number */ - if ((fd = open("/dev/tty0", O_WRONLY, 0)) < 0) { - fprintf(stderr, "error opening /dev/tty0\n"); - return GL_FALSE; - } - if (ioctl(fd, VT_OPENQRY, &vtnumber) < 0 || vtnumber < 0) { - fprintf(stderr, "error: couldn't get a free vt\n"); - return GL_FALSE; - } - - fprintf(stderr, "*** got vt nr: %d\n", vtnumber); - close(fd); - - /* open the console tty */ - sprintf(ttystr, "/dev/tty%d", vtnumber); /* /dev/tty1-64 */ - dpy->ConsoleFD = open(ttystr, O_RDWR | O_NDELAY, 0); - if (dpy->ConsoleFD < 0) { - fprintf(stderr, "error couldn't open console fd\n"); - return GL_FALSE; - } - - /* save current vt number */ - { - struct vt_stat vts; - if (ioctl(dpy->ConsoleFD, VT_GETSTATE, &vts) == 0) - dpy->OriginalVT = vts.v_active; - } - - /* disconnect from controlling tty */ - ttyfd = open("/dev/tty", O_RDWR); - if (ttyfd >= 0) { - ioctl(ttyfd, TIOCNOTTY, 0); - close(ttyfd); - } - - /* some magic to restore the vt when we exit */ - { - struct vt_mode vt; - struct sigaction sig_tty; - - /* Set-up tty signal handler to catch the signal we request below */ - SignalDisplay = dpy; - memset( &sig_tty, 0, sizeof( sig_tty ) ); - sig_tty.sa_handler = SwitchVT; - sigemptyset( &sig_tty.sa_mask ); - if( sigaction( SIGUSR1, &sig_tty, &dpy->OrigSigUsr1 ) || - sigaction( SIGUSR2, &sig_tty, &dpy->OrigSigUsr2 ) ) - { - fprintf(stderr, "error: can't set up signal handler (%s)", - strerror(errno) ); - return GL_FALSE; - } - - - - vt.mode = VT_PROCESS; - vt.waitv = 0; - vt.relsig = SIGUSR1; - vt.acqsig = SIGUSR2; - if (ioctl(dpy->ConsoleFD, VT_SETMODE, &vt) < 0) { - fprintf(stderr, "error: ioctl(VT_SETMODE) failed: %s\n", - strerror(errno)); - return GL_FALSE; - } - - - if (ioctl(dpy->ConsoleFD, VT_ACTIVATE, vtnumber) != 0) - printf("ioctl VT_ACTIVATE: %s\n", strerror(errno)); - if (ioctl(dpy->ConsoleFD, VT_WAITACTIVE, vtnumber) != 0) - printf("ioctl VT_WAITACTIVE: %s\n", strerror(errno)); - - if (ioctl(dpy->ConsoleFD, VT_GETMODE, &vt) < 0) { - fprintf(stderr, "error: ioctl VT_GETMODE: %s\n", strerror(errno)); - return GL_FALSE; - } - - - - } - - /* go into graphics mode */ - if (ioctl(dpy->ConsoleFD, KDSETMODE, KD_GRAPHICS) < 0) { - fprintf(stderr, "error: ioctl(KDSETMODE, KD_GRAPHICS) failed: %s\n", - strerror(errno)); - return GL_FALSE; - } - } - - /* open the framebuffer device */ - dpy->FrameBufferFD = open(dpy->fbdevDevice, O_RDWR); - if (dpy->FrameBufferFD < 0) { - fprintf(stderr, "Error opening /dev/fb0: %s\n", strerror(errno)); - return GL_FALSE; - } - - /* get the original variable screen info */ - if (ioctl(dpy->FrameBufferFD, FBIOGET_VSCREENINFO, &dpy->OrigVarInfo)) { - fprintf(stderr, "error: ioctl(FBIOGET_VSCREENINFO) failed: %s\n", - strerror(errno)); - return GL_FALSE; - } - - /* make copy */ - dpy->VarInfo = dpy->OrigVarInfo; /* structure copy */ - - /* Turn off hw accels (otherwise mmap of mmio region will be - * refused) - */ - dpy->VarInfo.accel_flags = 0; - if (ioctl(dpy->FrameBufferFD, FBIOPUT_VSCREENINFO, &dpy->VarInfo)) { - fprintf(stderr, "error: ioctl(FBIOPUT_VSCREENINFO) failed: %s\n", - strerror(errno)); - return GL_FALSE; - } - - - - /* Get the fixed screen info */ - if (ioctl(dpy->FrameBufferFD, FBIOGET_FSCREENINFO, &dpy->FixedInfo)) { - fprintf(stderr, "error: ioctl(FBIOGET_FSCREENINFO) failed: %s\n", - strerror(errno)); - return GL_FALSE; - } - - - - /* mmap the framebuffer into our address space */ - dpy->driverContext.FBStart = dpy->FixedInfo.smem_start; - dpy->driverContext.FBSize = dpy->FixedInfo.smem_len; - dpy->driverContext.shared.fbSize = dpy->FixedInfo.smem_len; - dpy->driverContext.FBAddress = (caddr_t) mmap(0, /* start */ - dpy->driverContext.shared.fbSize, /* bytes */ - PROT_READ | PROT_WRITE, /* prot */ - MAP_SHARED, /* flags */ - dpy->FrameBufferFD, /* fd */ - 0 /* offset */); - if (dpy->driverContext.FBAddress == (caddr_t) - 1) { - fprintf(stderr, "error: unable to mmap framebuffer: %s\n", - strerror(errno)); - return GL_FALSE; - } - - /* mmap the MMIO region into our address space */ - dpy->driverContext.MMIOStart = dpy->FixedInfo.mmio_start; - dpy->driverContext.MMIOSize = dpy->FixedInfo.mmio_len; - dpy->driverContext.MMIOAddress = (caddr_t) mmap(0, /* start */ - dpy->driverContext.MMIOSize, /* bytes */ - PROT_READ | PROT_WRITE, /* prot */ - MAP_SHARED, /* flags */ - dpy->FrameBufferFD, /* fd */ - dpy->FixedInfo.smem_len /* offset */); - if (dpy->driverContext.MMIOAddress == (caddr_t) - 1) { - fprintf(stderr, "error: unable to mmap mmio region: %s\n", - strerror(errno)); - return GL_FALSE; - } - - fprintf(stderr, "got MMIOAddress %p offset %d\n", - dpy->driverContext.MMIOAddress, - dpy->FixedInfo.smem_len); - - return GL_TRUE; -} - - - - -/** - * \brief Setup up the desired framebuffer device mode. - * - * \param dpy the display handle. - * - * \return GL_TRUE on success, or GL_FALSE on failure. - * - * \sa This is called during __miniglx_StartServer(). - * - * \internal - * - * Bumps the size of the window the the next supported mode. Sets the - * variable screen information according to the desired mode and asks - * the driver to validate the mode. Certifies that a DirectColor or - * TrueColor visual is used from the updated fixed screen information. - * In the case of DirectColor visuals, sets up an 'identity' colormap to - * mimic a TrueColor visual. - * - * Calls the driver hooks 'ValidateMode' and 'PostValidateMode' to - * allow the driver to make modifications to the chosen mode according - * to hardware constraints, or to save and restore videocard registers - * that may be clobbered by the fbdev driver. - * - * \todo Timings are hard-coded in the source for a set of supported modes. - */ -static GLboolean -SetupFBDev( Display *dpy ) -{ - int width, height; - - assert(dpy); - - width = dpy->driverContext.shared.virtualWidth; - height = dpy->driverContext.shared.virtualHeight; - - if (width==832) - width=800; - /* Bump size up to next supported mode. - */ - if (width <= 720 && height <= 480) { - width = 720; height = 480; - } - else if (width <= 960 && height <= 540) { - width = 960; height = 540; - } - else if (width <= 800 && height <= 600) { - width = 800; height = 600; - } - else if (width <= 1024 && height <= 768) { - width = 1024; height = 768; - } - else if (width <= 768 && height <= 1024) { - width = 768; height = 1024; - } - else if (width <= 1280 && height <= 1024) { - width = 1280; height = 1024; - } - - - dpy->driverContext.shared.fbStride = width * (dpy->driverContext.bpp / 8); - - /* set the depth, resolution, etc */ - dpy->VarInfo = dpy->OrigVarInfo; - dpy->VarInfo.bits_per_pixel = dpy->driverContext.bpp; - dpy->VarInfo.xres_virtual = dpy->driverContext.shared.virtualWidth; - dpy->VarInfo.yres_virtual = dpy->driverContext.shared.virtualHeight; - dpy->VarInfo.xres = width; - dpy->VarInfo.yres = height; - dpy->VarInfo.xoffset = 0; - dpy->VarInfo.yoffset = 0; - dpy->VarInfo.nonstd = 0; - dpy->VarInfo.vmode &= ~FB_VMODE_YWRAP; /* turn off scrolling */ - - if (dpy->VarInfo.bits_per_pixel == 32) { - dpy->VarInfo.red.offset = 16; - dpy->VarInfo.green.offset = 8; - dpy->VarInfo.blue.offset = 0; - dpy->VarInfo.transp.offset = 24; - dpy->VarInfo.red.length = 8; - dpy->VarInfo.green.length = 8; - dpy->VarInfo.blue.length = 8; - dpy->VarInfo.transp.length = 8; - } - else if (dpy->VarInfo.bits_per_pixel == 16) { - dpy->VarInfo.red.offset = 11; - dpy->VarInfo.green.offset = 5; - dpy->VarInfo.blue.offset = 0; - dpy->VarInfo.red.length = 5; - dpy->VarInfo.green.length = 6; - dpy->VarInfo.blue.length = 5; - dpy->VarInfo.transp.offset = 0; - dpy->VarInfo.transp.length = 0; - } - else { - fprintf(stderr, "Only 32bpp and 16bpp modes supported at the moment\n"); - return 0; - } - - if (!dpy->driver->validateMode( &dpy->driverContext )) { - fprintf(stderr, "Driver validateMode() failed\n"); - return 0; - } - - /* These should be calculated with the gtf.c program, and then we could - remove all this... AlanH. */ - if (dpy->VarInfo.xres == 1280 && - dpy->VarInfo.yres == 1024) { - /* timing values taken from /etc/fb.modes (1280x1024 @ 75Hz) */ - dpy->VarInfo.pixclock = 7408; - dpy->VarInfo.left_margin = 248; - dpy->VarInfo.right_margin = 16; - dpy->VarInfo.upper_margin = 38; - dpy->VarInfo.lower_margin = 1; - dpy->VarInfo.hsync_len = 144; - dpy->VarInfo.vsync_len = 3; - } - else if (dpy->VarInfo.xres == 1024 && - dpy->VarInfo.yres == 768) { - /* timing values taken from /etc/fb.modes (1024x768 @ 75Hz) */ - dpy->VarInfo.pixclock = 12699; - dpy->VarInfo.left_margin = 176; - dpy->VarInfo.right_margin = 16; - dpy->VarInfo.upper_margin = 28; - dpy->VarInfo.lower_margin = 1; - dpy->VarInfo.hsync_len = 96; - dpy->VarInfo.vsync_len = 3; - } - else if (dpy->VarInfo.xres == 800 && - dpy->VarInfo.yres == 600) { - /* timing values taken from /etc/fb.modes (800x600 @ 75Hz) */ - dpy->VarInfo.pixclock = 27778; - dpy->VarInfo.left_margin = 128; - dpy->VarInfo.right_margin = 24; - dpy->VarInfo.upper_margin = 22; - dpy->VarInfo.lower_margin = 1; - dpy->VarInfo.hsync_len = 72; - dpy->VarInfo.vsync_len = 2; - } - else if (dpy->VarInfo.xres == 720 && - dpy->VarInfo.yres == 480) { - dpy->VarInfo.pixclock = 37202; - dpy->VarInfo.left_margin = 88; - dpy->VarInfo.right_margin = 16; - dpy->VarInfo.upper_margin = 14; - dpy->VarInfo.lower_margin = 1; - dpy->VarInfo.hsync_len = 72; - dpy->VarInfo.vsync_len = 3; - } - else if (dpy->VarInfo.xres == 960 && - dpy->VarInfo.yres == 540) { - dpy->VarInfo.pixclock = 24273; - dpy->VarInfo.left_margin = 128; - dpy->VarInfo.right_margin = 32; - dpy->VarInfo.upper_margin = 16; - dpy->VarInfo.lower_margin = 1; - dpy->VarInfo.hsync_len = 96; - dpy->VarInfo.vsync_len = 3; - } - else if (dpy->VarInfo.xres == 768 && - dpy->VarInfo.yres == 1024) { - /* timing values for 768x1024 @ 75Hz */ - dpy->VarInfo.pixclock = 11993; - dpy->VarInfo.left_margin = 136; - dpy->VarInfo.right_margin = 32; - dpy->VarInfo.upper_margin = 41; - dpy->VarInfo.lower_margin = 1; - dpy->VarInfo.hsync_len = 80; - dpy->VarInfo.vsync_len = 3; - } - else { - /* XXX need timings for other screen sizes */ - fprintf(stderr, "XXXX screen size %d x %d not supported at this time!\n", - dpy->VarInfo.xres, dpy->VarInfo.yres); - return GL_FALSE; - } - - fprintf(stderr, "[miniglx] Setting mode: visible %dx%d virtual %dx%dx%d\n", - dpy->VarInfo.xres, dpy->VarInfo.yres, - dpy->VarInfo.xres_virtual, dpy->VarInfo.yres_virtual, - dpy->VarInfo.bits_per_pixel); - - /* set variable screen info */ - if (ioctl(dpy->FrameBufferFD, FBIOPUT_VSCREENINFO, &dpy->VarInfo)) { - fprintf(stderr, "error: ioctl(FBIOPUT_VSCREENINFO) failed: %s\n", - strerror(errno)); - return GL_FALSE; - } - - /* get the variable screen info, in case it has been modified */ - if (ioctl(dpy->FrameBufferFD, FBIOGET_VSCREENINFO, &dpy->VarInfo)) { - fprintf(stderr, "error: ioctl(FBIOGET_VSCREENINFO) failed: %s\n", - strerror(errno)); - return GL_FALSE; - } - - - fprintf(stderr, "[miniglx] Readback mode: visible %dx%d virtual %dx%dx%d\n", - dpy->VarInfo.xres, dpy->VarInfo.yres, - dpy->VarInfo.xres_virtual, dpy->VarInfo.yres_virtual, - dpy->VarInfo.bits_per_pixel); - - /* Get the fixed screen info */ - if (ioctl(dpy->FrameBufferFD, FBIOGET_FSCREENINFO, &dpy->FixedInfo)) { - fprintf(stderr, "error: ioctl(FBIOGET_FSCREENINFO) failed: %s\n", - strerror(errno)); - return GL_FALSE; - } - - if (dpy->FixedInfo.visual != FB_VISUAL_TRUECOLOR && - dpy->FixedInfo.visual != FB_VISUAL_DIRECTCOLOR) { - fprintf(stderr, "non-TRUECOLOR visuals not supported.\n"); - return GL_FALSE; - } - - if (dpy->FixedInfo.visual == FB_VISUAL_DIRECTCOLOR) { - struct fb_cmap cmap; - unsigned short red[256], green[256], blue[256]; - int rcols = 1 << dpy->VarInfo.red.length; - int gcols = 1 << dpy->VarInfo.green.length; - int bcols = 1 << dpy->VarInfo.blue.length; - int i; - - cmap.start = 0; - cmap.len = gcols; - cmap.red = red; - cmap.green = green; - cmap.blue = blue; - cmap.transp = NULL; - - for (i = 0; i < rcols ; i++) - red[i] = (65536/(rcols-1)) * i; - - for (i = 0; i < gcols ; i++) - green[i] = (65536/(gcols-1)) * i; - - for (i = 0; i < bcols ; i++) - blue[i] = (65536/(bcols-1)) * i; - - if (ioctl(dpy->FrameBufferFD, FBIOPUTCMAP, (void *) &cmap) < 0) { - fprintf(stderr, "ioctl(FBIOPUTCMAP) failed [%d]\n", i); - exit(1); - } - } - - /* May need to restore regs fbdev has clobbered: - */ - if (!dpy->driver->postValidateMode( &dpy->driverContext )) { - fprintf(stderr, "Driver postValidateMode() failed\n"); - return 0; - } - - return GL_TRUE; -} - - -/** - * \brief Restore the framebuffer device to state it was in before we started - * - * Undoes the work done by SetupFBDev(). - * - * \param dpy the display handle. - * - * \return GL_TRUE on success, or GL_FALSE on failure. - * - * \sa Called from XDestroyWindow(). - * - * \internal - * Restores the original variable screen info. - */ -static GLboolean -RestoreFBDev( Display *dpy ) -{ - /* restore original variable screen info */ - if (ioctl(dpy->FrameBufferFD, FBIOPUT_VSCREENINFO, &dpy->OrigVarInfo)) { - fprintf(stderr, "ioctl(FBIOPUT_VSCREENINFO failed): %s\n", - strerror(errno)); - return GL_FALSE; - } - dpy->VarInfo = dpy->OrigVarInfo; - - return GL_TRUE; -} - - -/** - * \brief Close the framebuffer device. - * - * \param dpy the display handle. - * - * \sa Called from XCloseDisplay(). - * - * \internal - * Unmaps the framebuffer and MMIO region. Restores the text mode and the - * original virtual terminal. Closes the console and framebuffer devices. - */ -static void -CloseFBDev( Display *dpy ) -{ - struct vt_mode VT; - - munmap(dpy->driverContext.FBAddress, dpy->driverContext.FBSize); - munmap(dpy->driverContext.MMIOAddress, dpy->driverContext.MMIOSize); - - if (dpy->ConsoleFD) { - /* restore text mode */ - ioctl(dpy->ConsoleFD, KDSETMODE, KD_TEXT); - - /* set vt */ - if (ioctl(dpy->ConsoleFD, VT_GETMODE, &VT) != -1) { - VT.mode = VT_AUTO; - ioctl(dpy->ConsoleFD, VT_SETMODE, &VT); - } - - /* restore original vt */ - if (dpy->OriginalVT >= 0) { - ioctl(dpy->ConsoleFD, VT_ACTIVATE, dpy->OriginalVT); - dpy->OriginalVT = -1; - } - - close(dpy->ConsoleFD); - } - close(dpy->FrameBufferFD); -} - -/*@}*/ - - -/**********************************************************************/ -/** \name Misc functions needed for DRI drivers */ -/**********************************************************************/ -/*@{*/ - -/** - * \brief Find the DRI screen dependent methods associated with the display. - * - * \param dpy a display handle, as returned by XOpenDisplay(). - * \param scrn the screen number. Not referenced. - * - * \returns a pointer to a __DRIscreenRec structure. - * - * \internal - * Returns the MiniGLXDisplayRec::driScreen attribute. - */ -static __DRIscreen * -__glXFindDRIScreen(__DRInativeDisplay *dpy, int scrn) -{ - (void) scrn; - return &((Display*)dpy)->driScreen; -} - -/** - * \brief Validate a drawable. - * - * \param dpy a display handle, as returned by XOpenDisplay(). - * \param draw drawable to validate. - * - * \internal - * Since Mini GLX only supports one window, compares the specified drawable with - * the MiniGLXDisplayRec::TheWindow attribute. - */ -static GLboolean -__glXWindowExists(__DRInativeDisplay *dpy, __DRIid draw) -{ - const Display * const display = (Display*)dpy; - if (display->TheWindow == (Window) draw) - return True; - else - return False; -} - -/** - * \brief Get current thread ID. - * - * \return thread ID. - * - * \internal - * Always returns 0. - */ -/*unsigned long -_glthread_GetID(void) -{ - return 0; -}*/ - -/*@}*/ - - -/** - * \brief Scan Linux /prog/bus/pci/devices file to determine hardware - * chipset based on supplied bus ID. - * - * \return probed chipset (non-zero) on success, zero otherwise. - * - * \internal - */ -static int get_chipset_from_busid( Display *dpy ) -{ - char buf[0x200]; - FILE *file; - const char *fname = "/proc/bus/pci/devices"; - int retval = 0; - - if (!(file = fopen(fname,"r"))) { - fprintf(stderr, "couldn't open %s: %s\n", fname, strerror(errno)); - return 0; - } - - while (fgets(buf, sizeof(buf)-1, file)) { - unsigned int nr, bus, dev, fn, vendor, device, encode; - nr = sscanf(buf, "%04x\t%04x%04x", &encode, - &vendor, &device); - - bus = encode >> 8; - dev = (encode & 0xFF) >> 3; - fn = encode & 0x7; - - if (nr != 3) - break; - - if (bus == dpy->driverContext.pciBus && - dev == dpy->driverContext.pciDevice && - fn == dpy->driverContext.pciFunc) { - retval = device; - break; - } - } - - fclose(file); - - if (retval) - fprintf(stderr, "[miniglx] probed chipset 0x%x\n", retval); - else - fprintf(stderr, "[miniglx] failed to probe chipset\n"); - - return retval; -} - - -/** - * \brief Read settings from a configuration file. - * - * The configuration file is usually "/etc/miniglx.conf", but can be overridden - * with the MINIGLX_CONF environment variable. - * - * The format consists in \code option = value \endcode lines. The option names - * corresponds to the fields in MiniGLXDisplayRec. - * - * \param dpy the display handle as. - * - * \return non-zero on success, zero otherwise. - * - * \internal - * Sets some defaults. Opens and parses the the Mini GLX configuration file and - * fills in the MiniGLXDisplayRec field that corresponds for each option. - */ -static int __read_config_file( Display *dpy ) -{ - FILE *file; - const char *fname; - - /* Fallback/defaults - */ - dpy->fbdevDevice = "/dev/fb0"; - dpy->clientDriverName = "fb_dri.so"; - dpy->driverContext.pciBus = 0; - dpy->driverContext.pciDevice = 0; - dpy->driverContext.pciFunc = 0; - dpy->driverContext.chipset = 0; - dpy->driverContext.pciBusID = 0; - dpy->driverContext.shared.virtualWidth = 1280; - dpy->driverContext.shared.virtualHeight = 1024; - dpy->driverContext.bpp = 32; - dpy->driverContext.cpp = 4; - dpy->rotateMode = 0; - dpy->driverContext.agpmode = 1; - dpy->driverContext.isPCI = 0; - dpy->driverContext.colorTiling = 0; - - fname = getenv("MINIGLX_CONF"); - if (!fname) fname = "/etc/miniglx.conf"; - - file = fopen(fname, "r"); - if (!file) { - fprintf(stderr, "couldn't open config file %s: %s\n", fname, strerror(errno)); - return 0; - } - - - while (!feof(file)) { - char buf[81], *opt = buf, *val, *tmp1, *tmp2; - fgets(buf, sizeof(buf), file); - - /* Parse 'opt = val' -- must be easier ways to do this. - */ - while (isspace(*opt)) opt++; - val = opt; - if (*val == '#') continue; /* comment */ - while (!isspace(*val) && *val != '=' && *val) val++; - tmp1 = val; - while (isspace(*val)) val++; - if (*val != '=') continue; - *tmp1 = 0; - val++; - while (isspace(*val)) val++; - tmp2 = val; - while (!isspace(*tmp2) && *tmp2 != '\n' && *tmp2) tmp2++; - *tmp2 = 0; - - - if (strcmp(opt, "fbdevDevice") == 0) - dpy->fbdevDevice = strdup(val); - else if (strcmp(opt, "clientDriverName") == 0) - dpy->clientDriverName = strdup(val); - else if (strcmp(opt, "rotateMode") == 0) - dpy->rotateMode = atoi(val) ? 1 : 0; - else if (strcmp(opt, "pciBusID") == 0) { - if (sscanf(val, "PCI:%d:%d:%d", - &dpy->driverContext.pciBus, - &dpy->driverContext.pciDevice, - &dpy->driverContext.pciFunc) != 3) { - fprintf(stderr, "malformed bus id: %s\n", val); - continue; - } - dpy->driverContext.pciBusID = strdup(val); - } - else if (strcmp(opt, "chipset") == 0) { - if (sscanf(val, "0x%x", &dpy->driverContext.chipset) != 1) - fprintf(stderr, "malformed chipset: %s\n", opt); - } - else if (strcmp(opt, "virtualWidth") == 0) { - if (sscanf(val, "%d", &dpy->driverContext.shared.virtualWidth) != 1) - fprintf(stderr, "malformed virtualWidth: %s\n", opt); - } - else if (strcmp(opt, "virtualHeight") == 0) { - if (sscanf(val, "%d", &dpy->driverContext.shared.virtualHeight) != 1) - fprintf(stderr, "malformed virutalHeight: %s\n", opt); - } - else if (strcmp(opt, "bpp") == 0) { - if (sscanf(val, "%d", &dpy->driverContext.bpp) != 1) - fprintf(stderr, "malformed bpp: %s\n", opt); - dpy->driverContext.cpp = dpy->driverContext.bpp / 8; - } - else if (strcmp(opt, "agpmode") == 0) { - if (sscanf(val, "%d", &dpy->driverContext.agpmode) != 1) - fprintf(stderr, "malformed agpmode: %s\n", opt); - } - else if (strcmp(opt, "isPCI") == 0) { - dpy->driverContext.isPCI = atoi(val) ? 1 : 0; - } - else if (strcmp(opt, "colorTiling") == 0) { - dpy->driverContext.colorTiling = atoi(val) ? 1 : 0; - } - } - - fclose(file); - - if (dpy->driverContext.chipset == 0 && dpy->driverContext.pciBusID != 0) - dpy->driverContext.chipset = get_chipset_from_busid( dpy ); - - return 1; -} - -/** - * Versioned name of the expected \c __driCreateNewScreen function. - * - * The version of the last incompatible loader/driver inteface change is - * appended to the name of the \c __driCreateNewScreen function. This - * prevents loaders from trying to load drivers that are too old. - * - * \todo - * Create a macro or something so that this is automatically updated. - */ -static const char createNewScreenName[] = "__driCreateNewScreen_20050727"; - - -static int InitDriver( Display *dpy ) -{ - /* - * Begin DRI setup. - * We're kind of combining the per-display and per-screen information - * which was kept separate in XFree86/DRI's libGL. - */ - dpy->dlHandle = dlopen(dpy->clientDriverName, RTLD_NOW | RTLD_GLOBAL); - if (!dpy->dlHandle) { - fprintf(stderr, "Unable to open %s: %s\n", dpy->clientDriverName, - dlerror()); - goto failed; - } - - /* Pull in Mini GLX specific hooks: - */ - dpy->driver = (struct DRIDriverRec *) dlsym(dpy->dlHandle, - "__driDriver"); - if (!dpy->driver) { - fprintf(stderr, "Couldn't find __driDriver in %s\n", - dpy->clientDriverName); - goto failed; - } - - /* Pull in standard DRI client-side driver hooks: - */ - dpy->createNewScreen = (PFNCREATENEWSCREENFUNC) - dlsym(dpy->dlHandle, createNewScreenName); - if (!dpy->createNewScreen) { - fprintf(stderr, "Couldn't find %s in %s\n", createNewScreenName, - dpy->clientDriverName); - goto failed; - } - - return GL_TRUE; - -failed: - if (dpy->dlHandle) { - dlclose(dpy->dlHandle); - dpy->dlHandle = 0; - } - return GL_FALSE; -} - - -/**********************************************************************/ -/** \name Public API functions (Xlib and GLX) */ -/**********************************************************************/ -/*@{*/ - - -/** - * \brief Initialize the graphics system. - * - * \param display_name currently ignored. It is recommended to pass it as NULL. - * \return a pointer to a #Display if the function is able to initialize - * the graphics system, NULL otherwise. - * - * Allocates a MiniGLXDisplayRec structure and fills in with information from a - * configuration file. - * - * Calls OpenFBDev() to open the framebuffer device and calls - * DRIDriverRec::initFBDev to do the client-side initialization on it. - * - * Loads the DRI driver and pulls in Mini GLX specific hooks into a - * DRIDriverRec structure, and the standard DRI \e __driCreateScreen hook. - * Asks the driver for a list of supported visuals. Performs the per-screen - * client-side initialization. Also setups the callbacks in the screen private - * information. - * - * Does the framebuffer device setup. Calls __miniglx_open_connections() to - * serve clients. - */ -Display * -__miniglx_StartServer( const char *display_name ) -{ - Display *dpy; - int use_vt = 0; - - dpy = (Display *)calloc(1, sizeof(Display)); - if (!dpy) - return NULL; - - dpy->IsClient = False; - - if (!__read_config_file( dpy )) { - fprintf(stderr, "Couldn't get configuration details\n"); - free(dpy); - return NULL; - } - - /* Open the fbdev device - */ - if (!OpenFBDev(dpy, use_vt)) { - fprintf(stderr, "OpenFBDev failed\n"); - free(dpy); - return NULL; - } - - if (!InitDriver(dpy)) { - fprintf(stderr, "InitDriver failed\n"); - free(dpy); - return NULL; - } - - /* Perform the initialization normally done in the X server - */ - if (!dpy->driver->initFBDev( &dpy->driverContext )) { - fprintf(stderr, "%s: __driInitFBDev failed\n", __FUNCTION__); - dlclose(dpy->dlHandle); - return GL_FALSE; - } - - /* do fbdev setup - */ - if (!SetupFBDev(dpy)) { - fprintf(stderr, "SetupFBDev failed\n"); - free(dpy); - return NULL; - } - - /* unlock here if not using VT -- JDS */ - if (!use_vt) { - if (dpy->driver->restoreHardware) - dpy->driver->restoreHardware( &dpy->driverContext ); - DRM_UNLOCK( dpy->driverContext.drmFD, - dpy->driverContext.pSAREA, - dpy->driverContext.serverContext ); - dpy->hwActive = 1; - } - - /* Ready for clients: - */ - if (!__miniglx_open_connections(dpy)) { - free(dpy); - return NULL; - } - - return dpy; -} - - -/** - * Implement \c __DRIinterfaceMethods::getProcAddress. - */ -static __DRIfuncPtr get_proc_address( const char * proc_name ) -{ - (void) proc_name; - return NULL; -} - - -/** - * Table of functions exported by the loader to the driver. - */ -static const __DRIinterfaceMethods interface_methods = { - get_proc_address, - - _gl_context_modes_create, - _gl_context_modes_destroy, - - __glXFindDRIScreen, - __glXWindowExists, - - __glXCreateContextWithConfig, - xf86DRI_DestroyContext, - - xf86DRI_CreateDrawable, - xf86DRI_DestroyDrawable, - __glXGetDrawableInfo, - - __glXGetUST, - __glXGetMscRate, -}; - - -static void * -CallCreateNewScreen(Display *dpy, int scrn, __DRIscreen *psc) -{ - void *psp = NULL; - drm_handle_t hSAREA; - drmAddress pSAREA; - const char *BusID; - int i; - __DRIversion ddx_version; - __DRIversion dri_version; - __DRIversion drm_version; - __DRIframebuffer framebuffer; - int fd = -1; - int status; - const char * err_msg; - const char * err_extra; - drmVersionPtr version; - drm_handle_t hFB; - drm_magic_t magic; - - - hSAREA = dpy->driverContext.shared.hSAREA; - BusID = dpy->driverContext.pciBusID; - - fd = drmOpen(NULL, BusID); - - err_msg = "open DRM"; - err_extra = strerror( -fd ); - - if (fd < 0) goto done; - - err_msg = "drmGetMagic"; - err_extra = NULL; - - if (drmGetMagic(fd, &magic)) goto done; - - dpy->authorized = False; - send_char_msg( dpy, 0, _Authorize ); - send_msg( dpy, 0, &magic, sizeof(magic)); - - /* force net buffer flush */ - while (!dpy->authorized) - handle_fd_events( dpy, 0 ); - - version = drmGetVersion(fd); - if (version) { - drm_version.major = version->version_major; - drm_version.minor = version->version_minor; - drm_version.patch = version->version_patchlevel; - drmFreeVersion(version); - } - else { - drm_version.major = -1; - drm_version.minor = -1; - drm_version.patch = -1; - } - - /* - * Get device name (like "tdfx") and the ddx version numbers. - * We'll check the version in each DRI driver's "createScreen" - * function. - */ - ddx_version.major = 4; - ddx_version.minor = 0; - ddx_version.patch = 0; - - /* - * Get the DRI X extension version. - */ - dri_version.major = 4; - dri_version.minor = 0; - dri_version.patch = 0; - - /* - * Get device-specific info. pDevPriv will point to a struct - * (such as DRIRADEONRec in xfree86/driver/ati/radeon_dri.h) - * that has information about the screen size, depth, pitch, - * ancilliary buffers, DRM mmap handles, etc. - */ - hFB = dpy->driverContext.shared.hFrameBuffer; - framebuffer.size = dpy->driverContext.shared.fbSize; - framebuffer.stride = dpy->driverContext.shared.fbStride; - framebuffer.dev_priv_size = dpy->driverContext.driverClientMsgSize; - framebuffer.dev_priv = dpy->driverContext.driverClientMsg; - framebuffer.width = dpy->driverContext.shared.virtualWidth; - framebuffer.height = dpy->driverContext.shared.virtualHeight; - - /* - * Map the framebuffer region. - */ - status = drmMap(fd, hFB, framebuffer.size, - (drmAddressPtr)&framebuffer.base); - - err_msg = "drmMap of framebuffer"; - err_extra = strerror( -status ); - - if ( status != 0 ) goto done; - - /* - * Map the SAREA region. Further mmap regions may be setup in - * each DRI driver's "createScreen" function. - */ - status = drmMap(fd, hSAREA, SAREA_MAX, &pSAREA); - - err_msg = "drmMap of sarea"; - err_extra = strerror( -status ); - - if ( status == 0 ) { - err_msg = "InitDriver"; - err_extra = NULL; - psp = dpy->createNewScreen(dpy, scrn, psc, NULL, - & ddx_version, - & dri_version, - & drm_version, - & framebuffer, - pSAREA, - fd, - 20050727, - & interface_methods, - (__GLcontextModes **) &dpy->driver_modes); - - /* fill in dummy visual ids */ - { - __GLcontextModes *temp; - temp = (__GLcontextModes *)dpy->driver_modes; - i = 1; - while (temp) - { - temp->visualID = i++; - temp=temp->next; - } - } - } - -done: - if ( psp == NULL ) { - if ( pSAREA != MAP_FAILED ) { - (void)drmUnmap(pSAREA, SAREA_MAX); - } - - if ( framebuffer.base != MAP_FAILED ) { - (void)drmUnmap((drmAddress)framebuffer.base, framebuffer.size); - } - - if ( framebuffer.dev_priv != NULL ) { - free(framebuffer.dev_priv); - } - - if ( fd >= 0 ) { - (void)drmClose(fd); - } - - if ( err_extra != NULL ) { - fprintf(stderr, "libGL error: %s failed (%s)\n", err_msg, - err_extra); - } - else { - fprintf(stderr, "libGL error: %s failed\n", err_msg ); - } - - fprintf(stderr, "libGL error: reverting to (slow) indirect rendering\n"); - } - - return psp; -} - -/** - * \brief Initialize the graphics system. - * - * \param display_name currently ignored. It is recommended to pass it as NULL. - * \return a pointer to a #Display if the function is able to initialize - * the graphics system, NULL otherwise. - * - * Allocates a MiniGLXDisplayRec structure and fills in with information from a - * configuration file. - * - * Calls __miniglx_open_connections() to connect to the server. - * - * Loads the DRI driver and pulls in Mini GLX specific hooks into a - * DRIDriverRec structure, and the standard DRI \e __driCreateScreen hook. - * Asks the driver for a list of supported visuals. Performs the per-screen - * client-side initialization. Also setups the callbacks in the screen private - * information. - * - * \todo - * - read config file - * - what about virtualWidth, etc? - * - determine dpy->driverClientMsgSize, - * - allocate dpy->driverClientMsg - */ -Display * -XOpenDisplay( const char *display_name ) -{ - Display *dpy; - - dpy = (Display *)calloc(1, sizeof(Display)); - if (!dpy) - return NULL; - - dpy->IsClient = True; - - /* read config file - */ - if (!__read_config_file( dpy )) { - fprintf(stderr, "Couldn't get configuration details\n"); - free(dpy); - return NULL; - } - - /* Connect to the server and receive driverClientMsg - */ - if (!__miniglx_open_connections(dpy)) { - free(dpy); - return NULL; - } - - /* dlopen the driver .so file - */ - if (!InitDriver(dpy)) { - fprintf(stderr, "InitDriver failed\n"); - free(dpy); - return NULL; - } - - /* Perform the client-side initialization. - * - * Clearly there is a limit of one on the number of windows in - * existence at any time. - * - * Need to shut down DRM and free DRI data in XDestroyWindow(), too. - */ - dpy->driScreen.private = CallCreateNewScreen(dpy, 0, &dpy->driScreen); - if (!dpy->driScreen.private) { - fprintf(stderr, "%s: __driCreateScreen failed\n", __FUNCTION__); - dlclose(dpy->dlHandle); - free(dpy); - return NULL; - } - - /* Anything more to do? - */ - return dpy; -} - - -/** - * \brief Release display resources. - * - * When the application is about to exit, the resources associated with the - * graphics system can be released by calling this function. - * - * \param dpy display handle. It becomes invalid at this point. - * - * Destroys the window if any, and destroys the per-screen - * driver private information. - * Calls __miniglx_close_connections(). - * - * If a server, puts the the framebuffer back into the initial state. - * - * Finally frees the display structure. - */ -void -XCloseDisplay( Display *dpy ) -{ - glXMakeCurrent( dpy, NULL, NULL); - - if (dpy->NumWindows) - XDestroyWindow( dpy, dpy->TheWindow ); - - /* As this is done in XOpenDisplay, need to undo it here: - */ - dpy->driScreen.destroyScreen(dpy, 0, dpy->driScreen.private); - - __miniglx_close_connections( dpy ); - - if (!dpy->IsClient) { - /* put framebuffer back to initial state - */ - (*dpy->driver->haltFBDev)( &dpy->driverContext ); - RestoreFBDev(dpy); - CloseFBDev(dpy); - } - - dlclose(dpy->dlHandle); - free(dpy); -} - - -/** - * \brief Window creation. - * - * \param display a display handle, as returned by XOpenDisplay(). - * \param parent the parent window for the new window. For Mini GLX this should - * be - * \code RootWindow(display, 0) \endcode - * \param x the window abscissa. For Mini GLX, it should be zero. - * \param y the window ordinate. For Mini GLX, it should be zero. - * \param width the window width. For Mini GLX, this specifies the desired - * screen width such as 1024 or 1280. - * \param height the window height. For Mini GLX, this specifies the desired - * screen height such as 768 or 1024. - * \param border_width the border width. For Mini GLX, it should be zero. - * \param depth the window pixel depth. For Mini GLX, this should be the depth - * found in the #XVisualInfo object returned by glXChooseVisual() - * \param winclass the window class. For Mini GLX this value should be - * #InputOutput. - * \param visual the visual type. It should be the visual field of the - * #XVisualInfo object returned by glXChooseVisual(). - * \param valuemask which fields of the XSetWindowAttributes() are to be used. - * For Mini GLX this is typically the bitmask - * \code CWBackPixel | CWBorderPixel | CWColormap \endcode - * \param attributes initial window attributes. The - * XSetWindowAttributes::background_pixel, XSetWindowAttributes::border_pixel - * and XSetWindowAttributes::colormap fields should be set. - * - * \return a window handle if it succeeds or zero if it fails. - * - * \note For Mini GLX, windows are full-screen; they cover the entire frame - * buffer. Also, Mini GLX imposes a limit of one window. A second window - * cannot be created until the first one is destroyed. - * - * This function creates and initializes a ::MiniGLXWindowRec structure after - * ensuring that there is no other window created. Performs the per-drawable - * client-side initialization calling the __DRIscreenRec::createDrawable - * method. - * - */ -Window -XCreateWindow( Display *dpy, Window parent, int x, int y, - unsigned int width, unsigned int height, - unsigned int border_width, int depth, unsigned int winclass, - Visual *visual, unsigned long valuemask, - XSetWindowAttributes *attributes ) -{ - const int empty_attribute_list[1] = { None }; - - Window win; - - /* ignored */ - (void) x; - (void) y; - (void) border_width; - (void) depth; - (void) winclass; - (void) valuemask; - (void) attributes; - - if (!dpy->IsClient) { - fprintf(stderr, "Server process may not create windows (currently)\n"); - return NULL; - } - - if (dpy->NumWindows > 0) - return NULL; /* only allow one window */ - - assert(dpy->TheWindow == NULL); - - win = malloc(sizeof(struct MiniGLXWindowRec)); - if (!win) - return NULL; - - /* In rotated mode, translate incoming x,y,width,height into - * 'normal' coordinates. - */ - if (dpy->rotateMode) { - int tmp; - tmp = width; width = height; height = tmp; - tmp = x; x = y; y = tmp; - } - - /* init other per-window fields */ - win->x = 0; - win->y = 0; - win->w = width; - win->h = height; - win->visual = visual; /* ptr assignment */ - - win->bytesPerPixel = dpy->driverContext.cpp; - win->rowStride = dpy->driverContext.shared.virtualWidth * win->bytesPerPixel; - win->size = win->rowStride * height; - win->frontStart = dpy->driverContext.FBAddress; - win->frontBottom = (GLubyte *) win->frontStart + (height-1) * win->rowStride; - - /* This is incorrect: the hardware driver could put the backbuffer - * just about anywhere. These fields, including the above are - * hardware dependent & don't really belong here. - */ - if (visual->mode->doubleBufferMode) { - win->backStart = (GLubyte *) win->frontStart + - win->rowStride * dpy->driverContext.shared.virtualHeight; - win->backBottom = (GLubyte *) win->backStart - + (height - 1) * win->rowStride; - win->curBottom = win->backBottom; - } - else { - /* single buffered */ - win->backStart = NULL; - win->backBottom = NULL; - win->curBottom = win->frontBottom; - } - - dpy->driScreen.createNewDrawable(dpy, visual->mode, (int) win, - &win->driDrawable, GLX_WINDOW_BIT, empty_attribute_list); - - if (!win->driDrawable.private) { - fprintf(stderr, "%s: dri.createDrawable failed\n", __FUNCTION__); - free(win); - return NULL; - } - - dpy->NumWindows++; - dpy->TheWindow = win; - - return win; -} - - -/** - * \brief Destroy window. - * - * \param display display handle. - * \param w window handle. - * - * This function calls XUnmapWindow() and frees window \p w. - * - * In case of destroying the current buffer first unbinds the GLX context - * by calling glXMakeCurrent() with no drawable. - */ -void -XDestroyWindow( Display *display, Window win ) -{ - if (display && display->IsClient && win) { - /* check if destroying the current buffer */ - Window curDraw = glXGetCurrentDrawable(); - if (win == curDraw) { - glXMakeCurrent( display, NULL, NULL); - } - - XUnmapWindow( display, win ); - - /* Destroy the drawable. */ - win->driDrawable.destroyDrawable(display, win->driDrawable.private); - free(win); - - /* unlink window from display */ - display->NumWindows--; - assert(display->NumWindows == 0); - display->TheWindow = NULL; - } -} - - - - -/** - * \brief Create color map structure. - * - * \param dpy the display handle as returned by XOpenDisplay(). - * \param w the window on whose screen you want to create a color map. This - * parameter is ignored by Mini GLX but should be the value returned by the - * \code RootWindow(display, 0) \endcode macro. - * \param visual a visual type supported on the screen. This parameter is - * ignored by Mini GLX but should be the XVisualInfo::visual returned by - * glXChooseVisual(). - * \param alloc the color map entries to be allocated. This parameter is ignored - * by Mini GLX but should be set to #AllocNone. - * - * \return the color map. - * - * This function is only provided to ease porting. Practically a no-op - - * returns a pointer to a dynamically allocated chunk of memory (one byte). - */ -Colormap -XCreateColormap( Display *dpy, Window w, Visual *visual, int alloc ) -{ - (void) dpy; - (void) w; - (void) visual; - (void) alloc; - return (Colormap) malloc(1); -} - - -/** - * \brief Destroy color map structure. - * - * \param display The display handle as returned by XOpenDisplay(). - * \param colormap the color map to destroy. - * - * This function is only provided to ease porting. Practically a no-op. - * - * Frees the memory pointed by \p colormap. - */ -void -XFreeColormap( Display *display, Colormap colormap ) -{ - (void) display; - (void) colormap; - free(colormap); -} - - -/** - * \brief Free client data. - * - * \param data the data that is to be freed. - * - * Frees the memory pointed by \p data. - */ -void -XFree( void *data ) -{ - free(data); -} - - -/** - * \brief Query available visuals. - * - * \param dpy the display handle, as returned by XOpenDisplay(). - * \param vinfo_mask a bitmask indicating which fields of the \p vinfo_template - * are to be matched. The value must be \c VisualScreenMask. - * \param vinfo_template a template whose fields indicate which visual - * attributes must be matched by the results. The XVisualInfo::screen field of - * this structure must be zero. - * \param nitens_return will hold the number of visuals returned. - * - * \return the address of an array of all available visuals. - * - * An example of using XGetVisualInfo() to get all available visuals follows: - * - * \code - * XVisualInfo vinfo_template, *results; - * int nitens_return; - * Display *dpy = XOpenDisplay(NULL); - * vinfo_template.screen = 0; - * results = XGetVisualInfo(dpy, VisualScreenMask, &vinfo_template, &nitens_return); - * \endcode - * - * Returns the list of all ::XVisualInfo available, one per - * ::__GLcontextMode stored in MiniGLXDisplayRec::modes. - */ -XVisualInfo * -XGetVisualInfo( Display *dpy, long vinfo_mask, XVisualInfo *vinfo_template, int *nitens_return ) -{ - const __GLcontextModes *mode; - XVisualInfo *results; - Visual *visResults; - int i, n=0; - - // ASSERT(vinfo_mask == VisualScreenMask); - ASSERT(vinfo_template.screen == 0); - - if (vinfo_mask == VisualIDMask) - { - for ( mode = dpy->driver_modes ; mode != NULL ; mode= mode->next ) - if (mode->visualID == vinfo_template->visualid) - n=1; - - if (n==0) - return NULL; - - results = (XVisualInfo *)calloc(1, n * sizeof(XVisualInfo)); - if (!results) { - *nitens_return = 0; - return NULL; - } - - visResults = (Visual *)calloc(1, n * sizeof(Visual)); - if (!results) { - free(results); - *nitens_return = 0; - return NULL; - } - - for ( mode = dpy->driver_modes ; mode != NULL ; mode= mode->next ) - if (mode->visualID == vinfo_template->visualid) - { - visResults[0].mode=mode; - visResults[0].visInfo = results; - visResults[0].dpy = dpy; - if (dpy->driverContext.bpp == 32) - visResults[0].pixelFormat = PF_B8G8R8A8; /* XXX: FIX ME */ - else - visResults[0].pixelFormat = PF_B5G6R5; /* XXX: FIX ME */ - - results[0].visual = visResults; - results[0].visualid = mode->visualID; -#if defined(__cplusplus) || defined(c_plusplus) - results[0].c_class = TrueColor; -#else - results[0].class = TrueColor; -#endif - results[0].depth = mode->redBits + - mode->redBits + - mode->redBits + - mode->redBits; - results[0].bits_per_rgb = dpy->driverContext.bpp; - - } - - } - else // if (vinfo_mask == VisualScreenMask) - { - n = 0; - for ( mode = dpy->driver_modes ; mode != NULL ; mode = mode->next ) - n++; - - results = (XVisualInfo *)calloc(1, n * sizeof(XVisualInfo)); - if (!results) { - *nitens_return = 0; - return NULL; - } - - visResults = (Visual *)calloc(1, n * sizeof(Visual)); - if (!results) { - free(results); - *nitens_return = 0; - return NULL; - } - - for ( mode = dpy->driver_modes, i = 0 ; mode != NULL ; mode = mode->next, i++ ) { - visResults[i].mode = mode; - visResults[i].visInfo = results + i; - visResults[i].dpy = dpy; - - if (dpy->driverContext.bpp == 32) - visResults[i].pixelFormat = PF_B8G8R8A8; /* XXX: FIX ME */ - else - visResults[i].pixelFormat = PF_B5G6R5; /* XXX: FIX ME */ - - results[i].visual = visResults + i; - results[i].visualid = mode->visualID; -#if defined(__cplusplus) || defined(c_plusplus) - results[i].c_class = TrueColor; -#else - results[i].class = TrueColor; -#endif - results[i].depth = mode->redBits + - mode->redBits + - mode->redBits + - mode->redBits; - results[i].bits_per_rgb = dpy->driverContext.bpp; - } - } - *nitens_return = n; - return results; -} - - -/** - * \brief Return a visual that matches specified attributes. - * - * \param dpy the display handle, as returned by XOpenDisplay(). - * \param screen the screen number. It is currently ignored by Mini GLX and - * should be zero. - * \param attribList a list of GLX attributes which describe the desired pixel - * format. It is terminated by the token \c None. - * - * The attributes are as follows: - * \arg GLX_USE_GL: - * This attribute should always be present in order to maintain compatibility - * with GLX. - * \arg GLX_RGBA: - * If present, only RGBA pixel formats will be considered. Otherwise, only - * color index formats are considered. - * \arg GLX_DOUBLEBUFFER: - * if present, only double-buffered pixel formats will be chosen. - * \arg GLX_RED_SIZE \e n: - * Must be followed by a non-negative integer indicating the minimum number of - * bits per red pixel component that is acceptable. - * \arg GLX_GREEN_SIZE \e n: - * Must be followed by a non-negative integer indicating the minimum number of - * bits per green pixel component that is acceptable. - * \arg GLX_BLUE_SIZE \e n: - * Must be followed by a non-negative integer indicating the minimum number of - * bits per blue pixel component that is acceptable. - * \arg GLX_ALPHA_SIZE \e n: - * Must be followed by a non-negative integer indicating the minimum number of - * bits per alpha pixel component that is acceptable. - * \arg GLX_STENCIL_SIZE \e n: - * Must be followed by a non-negative integer indicating the minimum number of - * bits per stencil value that is acceptable. - * \arg GLX_DEPTH_SIZE \e n: - * Must be followed by a non-negative integer indicating the minimum number of - * bits per depth component that is acceptable. - * \arg None: - * This token is used to terminate the attribute list. - * - * \return a pointer to an #XVisualInfo object which most closely matches the - * requirements of the attribute list. If there is no visual which matches the - * request, \c NULL will be returned. - * - * \note Visuals with accumulation buffers are not available. - * - * This function searches the list of available visual configurations in - * MiniGLXDisplayRec::configs for a configuration which best matches the GLX - * attribute list parameter. A new ::XVisualInfo object is created which - * describes the visual configuration. The match criteria is described in the - * specification. - */ -XVisualInfo* -glXChooseVisual( Display *dpy, int screen, int *attribList ) -{ - const __GLcontextModes *mode; - Visual *vis; - XVisualInfo *visInfo; - const int *attrib; - GLboolean rgbFlag = GL_FALSE, dbFlag = GL_FALSE, stereoFlag = GL_FALSE; - GLint redBits = 0, greenBits = 0, blueBits = 0, alphaBits = 0; - GLint indexBits = 0, depthBits = 0, stencilBits = 0; - GLint numSamples = 0; - int i=0; - - /* - * XXX in the future, might be interpreted as a VT - */ - ASSERT(dpy); - ASSERT(screen == 0); - - vis = (Visual *)calloc(1, sizeof(Visual)); - if (!vis) - return NULL; - - visInfo = (XVisualInfo *)malloc(sizeof(XVisualInfo)); - if (!visInfo) { - free(vis); - return NULL; - } - - visInfo->visual = vis; - vis->visInfo = visInfo; - vis->dpy = dpy; - - /* parse the attribute list */ - for (attrib = attribList; attrib && *attrib != None; attrib++) { - switch (attrib[0]) { - case GLX_DOUBLEBUFFER: - dbFlag = GL_TRUE; - break; - case GLX_RGBA: - rgbFlag = GL_TRUE; - break; - case GLX_RED_SIZE: - redBits = attrib[1]; - attrib++; - break; - case GLX_GREEN_SIZE: - greenBits = attrib[1]; - attrib++; - break; - case GLX_BLUE_SIZE: - blueBits = attrib[1]; - attrib++; - break; - case GLX_ALPHA_SIZE: - alphaBits = attrib[1]; - attrib++; - break; - case GLX_STENCIL_SIZE: - stencilBits = attrib[1]; - attrib++; - break; - case GLX_DEPTH_SIZE: - depthBits = attrib[1]; - attrib++; - break; -#if 0 - case GLX_ACCUM_RED_SIZE: - accumRedBits = attrib[1]; - attrib++; - break; - case GLX_ACCUM_GREEN_SIZE: - accumGreenBits = attrib[1]; - attrib++; - break; - case GLX_ACCUM_BLUE_SIZE: - accumBlueBits = attrib[1]; - attrib++; - break; - case GLX_ACCUM_ALPHA_SIZE: - accumAlphaBits = attrib[1]; - attrib++; - break; - case GLX_LEVEL: - /* ignored for now */ - break; -#endif - default: - /* unexpected token */ - fprintf(stderr, "unexpected token in glXChooseVisual attrib list\n"); - free(vis); - free(visInfo); - return NULL; - } - } - - /* search screen configs for suitable visual */ - (void) numSamples; - (void) indexBits; - (void) redBits; - (void) greenBits; - (void) blueBits; - (void) alphaBits; - (void) stereoFlag; - for ( mode = dpy->driver_modes ; mode != NULL ; mode = mode->next ) { - i++; - if (mode->rgbMode == rgbFlag && - mode->doubleBufferMode == dbFlag && - mode->redBits >= redBits && - mode->greenBits >= greenBits && - mode->blueBits >= blueBits && - mode->alphaBits >= alphaBits && - mode->depthBits >= depthBits && - mode->stencilBits >= stencilBits) { - /* found it */ - visInfo->visualid = i; - vis->mode = mode; - break; - } - } - if (!vis->mode) - return NULL; - - /* compute depth and bpp */ - if (rgbFlag) { - /* XXX maybe support depth 16 someday */ -#if defined(__cplusplus) || defined(c_plusplus) - visInfo->c_class = TrueColor; -#else - visInfo->class = TrueColor; -#endif - visInfo->depth = dpy->driverContext.bpp; - visInfo->bits_per_rgb = dpy->driverContext.bpp; - if (dpy->driverContext.bpp == 32) - vis->pixelFormat = PF_B8G8R8A8; - else - vis->pixelFormat = PF_B5G6R5; - } - else { - /* color index mode */ -#if defined(__cplusplus) || defined(c_plusplus) - visInfo->c_class = PseudoColor; -#else - visInfo->class = PseudoColor; -#endif - visInfo->depth = 8; - visInfo->bits_per_rgb = 8; /* bits/pixel */ - vis->pixelFormat = PF_CI8; - } - - return visInfo; -} - - -/** - * \brief Return information about GLX visuals. - * - * \param dpy the display handle, as returned by XOpenDisplay(). - * \param vis the visual to be queried, as returned by glXChooseVisual(). - * \param attrib the visual attribute to be returned. - * \param value pointer to an integer in which the result of the query will be - * stored. - * - * \return zero if no error occurs, \c GLX_INVALID_ATTRIBUTE if the attribute - * parameter is invalid, or \c GLX_BAD_VISUAL if the \p vis parameter is - * invalid. - * - * Returns the appropriate attribute of ::__GLXvisualConfig pointed by - * MiniGLXVisualRec::glxConfig of XVisualInfo::visual. - * - * \sa data types. - */ -int -glXGetConfig( Display *dpy, XVisualInfo *vis, int attrib, int *value ) -{ - const __GLcontextModes *mode = vis->visual->mode; - if (!mode) { - *value = 0; - return GLX_BAD_VISUAL; - } - - switch (attrib) { - case GLX_USE_GL: - *value = True; - return 0; - case GLX_RGBA: - *value = mode->rgbMode; - return 0; - case GLX_DOUBLEBUFFER: - *value = mode->doubleBufferMode; - return 0; - case GLX_RED_SIZE: - *value = mode->redBits; - return 0; - case GLX_GREEN_SIZE: - *value = mode->greenBits; - return 0; - case GLX_BLUE_SIZE: - *value = mode->blueBits; - return 0; - case GLX_ALPHA_SIZE: - *value = mode->alphaBits; - return 0; - case GLX_DEPTH_SIZE: - *value = mode->depthBits; - return 0; - case GLX_STENCIL_SIZE: - *value = mode->stencilBits; - return 0; - default: - *value = 0; - return GLX_BAD_ATTRIBUTE; - } - return 0; -} - - -/** - * \brief Create a new GLX rendering context. - * - * \param dpy the display handle, as returned by XOpenDisplay(). - * \param vis the visual that defines the frame buffer resources available to - * the rendering context, as returned by glXChooseVisual(). - * \param shareList If non-zero, texture objects and display lists are shared - * with the named rendering context. If zero, texture objects and display lists - * will (initially) be private to this context. They may be shared when a - * subsequent context is created. - * \param direct whether direct or indirect rendering is desired. For Mini GLX - * this value is ignored but it should be set to \c True. - * - * \return a ::GLXContext handle if it succeeds or zero if it fails due to - * invalid parameter or insufficient resources. - * - * This function creates and initializes a ::MiniGLXContextRec structure and - * calls the __DRIscreenRec::createContext method to initialize the client - * private data. - */ -GLXContext -glXCreateContext( Display *dpy, XVisualInfo *vis, - GLXContext shareList, Bool direct ) -{ - GLXContext ctx; - void *sharePriv; - - ASSERT(vis); - - ctx = (struct MiniGLXContextRec *)calloc(1, sizeof(struct MiniGLXContextRec)); - if (!ctx) - return NULL; - - ctx->vid = vis->visualid; - - if (shareList) - sharePriv = shareList->driContext.private; - else - sharePriv = NULL; - - ctx->driContext.mode = vis->visual->mode; - ctx->driContext.private = dpy->driScreen.createNewContext(dpy, vis->visual->mode, - GLX_WINDOW_BIT, sharePriv, &ctx->driContext); - - if (!ctx->driContext.private) { - free(ctx); - return NULL; - } - - return ctx; -} - - -/** - * \brief Destroy a GLX context. - * - * \param dpy the display handle, as returned by XOpenDisplay(). - * \param ctx the GLX context to be destroyed. - * - * This function frees the \p ctx parameter after unbinding the current context - * by calling the __DRIcontextRec::bindContext method with zeros and calling - * the __DRIcontextRec::destroyContext method. - */ -void -glXDestroyContext( Display *dpy, GLXContext ctx ) -{ - GLXContext glxctx = glXGetCurrentContext(); - - if (ctx) { - if (glxctx == ctx) { - /* destroying current context */ - ctx->driContext.bindContext(dpy, 0, 0, 0, 0); - CurrentContext = 0; - } - ctx->driContext.destroyContext(dpy, 0, ctx->driContext.private); - free(ctx); - } -} - - -/** - * \brief Bind a GLX context to a window or a pixmap. - * - * \param dpy the display handle, as returned by XOpenDisplay(). - * \param drawable the window or drawable to bind to the rendering context. - * This should be the value returned by XCreateWindow(). - * \param ctx the GLX context to be destroyed. - * - * \return \c True if it succeeds, \c False otherwise to indicate an invalid - * display, window or context parameter. - * - * The current rendering context may be unbound by calling glXMakeCurrent() - * with the window and context parameters set to zero. - * - * An application may create any number of rendering contexts and bind them as - * needed. Note that binding a rendering context is generally not a - * light-weight operation. Most simple OpenGL applications create only one - * rendering context. - * - * This function first unbinds any old context via - * __DRIcontextRec::unbindContext and binds the new one via - * __DRIcontextRec::bindContext. - * - * If \p drawable is zero it unbinds the GLX context by calling - * __DRIcontextRec::bindContext with zeros. - */ -Bool -glXMakeCurrent( Display *dpy, GLXDrawable drawable, GLXContext ctx) -{ - if (dpy && drawable && ctx) { - GLXContext oldContext = glXGetCurrentContext(); - GLXDrawable oldDrawable = glXGetCurrentDrawable(); - /* unbind old */ - if (oldContext) { - oldContext->driContext.unbindContext(dpy, 0, - (__DRIid) oldDrawable, (__DRIid) oldDrawable, - &oldContext->driContext); - } - /* bind new */ - CurrentContext = ctx; - ctx->driContext.bindContext(dpy, 0, (__DRIid) drawable, - (__DRIid) drawable, &ctx->driContext); - ctx->drawBuffer = drawable; - ctx->curBuffer = drawable; - } - else if (ctx && dpy) { - /* unbind */ - ctx->driContext.bindContext(dpy, 0, 0, 0, 0); - } - else if (dpy) { - CurrentContext = 0; /* kw: this seems to be intended??? */ - } - - return True; -} - - -/** - * \brief Exchange front and back buffers. - * - * \param dpy the display handle, as returned by XOpenDisplay(). - * \param drawable the drawable whose buffers are to be swapped. - * - * Any pending rendering commands will be completed before the buffer swap - * takes place. - * - * Calling glXSwapBuffers() on a window which is single-buffered has no effect. - * - * This function just calls the __DRIdrawableRec::swapBuffers method to do the - * work. - */ -void -glXSwapBuffers( Display *dpy, GLXDrawable drawable ) -{ - if (!dpy || !drawable) - return; - - drawable->driDrawable.swapBuffers(dpy, drawable->driDrawable.private); -} - - -/** - * \brief Return the current context - * - * \return the current context, as specified by glXMakeCurrent(), or zero if no - * context is currently bound. - * - * \sa glXCreateContext(), glXMakeCurrent() - * - * Returns the value of the ::CurrentContext global variable. - */ -GLXContext -glXGetCurrentContext( void ) -{ - return CurrentContext; -} - - -/** - * \brief Return the current drawable. - * - * \return the current drawable, as specified by glXMakeCurrent(), or zero if - * no drawable is currently bound. - * - * This function gets the current context via glXGetCurrentContext() and - * returns the MiniGLXContextRec::drawBuffer attribute. - */ -GLXDrawable -glXGetCurrentDrawable( void ) -{ - GLXContext glxctx = glXGetCurrentContext(); - if (glxctx) - return glxctx->drawBuffer; - else - return NULL; -} - - -static GLboolean -__glXCreateContextWithConfig(__DRInativeDisplay *dpy, int screen, - int fbconfigID, void *contextID, drm_context_t *hHWContext) -{ - __DRIscreen *pDRIScreen; - __DRIscreenPrivate *psp; - - pDRIScreen = __glXFindDRIScreen(dpy, screen); - if ( (pDRIScreen == NULL) || (pDRIScreen->private == NULL) ) { - return GL_FALSE; - } - - psp = (__DRIscreenPrivate *) pDRIScreen->private; - - if (psp->fd) { - if (drmCreateContext(psp->fd, hHWContext)) { - fprintf(stderr, ">>> drmCreateContext failed\n"); - return GL_FALSE; - } - *(void**)contextID = (void*) *hHWContext; - } - - return GL_TRUE; -} - - -static GLboolean -__glXGetDrawableInfo(__DRInativeDisplay *dpy, int scrn, - __DRIid draw, 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) -{ - GLXDrawable drawable = (GLXDrawable) draw; - drm_clip_rect_t * cliprect; - Display* display = (Display*)dpy; - __DRIcontextPrivate *pcp = (__DRIcontextPrivate *)CurrentContext->driContext.private; - if (drawable == 0) { - return GL_FALSE; - } - - cliprect = (drm_clip_rect_t*) _mesa_malloc(sizeof(drm_clip_rect_t)); - cliprect->x1 = drawable->x; - cliprect->y1 = drawable->y; - cliprect->x2 = drawable->x + drawable->w; - cliprect->y2 = drawable->y + drawable->h; - - /* the drawable index is by client id */ - *index = display->clientID; - - *stamp = pcp->driScreenPriv->pSAREA->drawableTable[display->clientID].stamp; - *x = drawable->x; - *y = drawable->y; - *width = drawable->w; - *height = drawable->h; - *numClipRects = 1; - *pClipRects = cliprect; - - *backX = drawable->x; - *backY = drawable->y; - *numBackClipRects = 0; - *pBackClipRects = 0; - - return GL_TRUE; -} - - -static GLboolean -xf86DRI_DestroyContext(__DRInativeDisplay *dpy, int screen, __DRIid context_id ) -{ - return GL_TRUE; -} - - -static GLboolean -xf86DRI_CreateDrawable(__DRInativeDisplay *dpy, int screen, __DRIid drawable, - drm_drawable_t *hHWDrawable ) -{ - return GL_TRUE; -} - - -static GLboolean -xf86DRI_DestroyDrawable(__DRInativeDisplay *dpy, int screen, __DRIid drawable) -{ - return GL_TRUE; -} - - -/** - * \brief Query function address. - * - * The glXGetProcAddress() function will return the address of any available - * OpenGL or Mini GLX function. - * - * \param procName name of the function to be returned. - * - * \return If \p procName is a valid function name, a pointer to that function - * will be returned. Otherwise, \c NULL will be returned. - * - * The purpose of glXGetProcAddress() is to facilitate using future extensions - * to OpenGL or Mini GLX. If a future version of the library adds new extension - * functions they'll be accessible via glXGetProcAddress(). The alternative is - * to hard-code calls to the new functions in the application but doing so will - * prevent linking the application with older versions of the library. - * - * Returns the function address by looking up its name in a static (name, - * address) pair list. - */ -void (*glXGetProcAddress(const GLubyte *procname))( void ) -{ - struct name_address { - const char *name; - const void *func; - }; - static const struct name_address functions[] = { - { "glXChooseVisual", (void *) glXChooseVisual }, - { "glXCreateContext", (void *) glXCreateContext }, - { "glXDestroyContext", (void *) glXDestroyContext }, - { "glXMakeCurrent", (void *) glXMakeCurrent }, - { "glXSwapBuffers", (void *) glXSwapBuffers }, - { "glXGetCurrentContext", (void *) glXGetCurrentContext }, - { "glXGetCurrentDrawable", (void *) glXGetCurrentDrawable }, - { "glXGetProcAddress", (void *) glXGetProcAddress }, - { "XOpenDisplay", (void *) XOpenDisplay }, - { "XCloseDisplay", (void *) XCloseDisplay }, - { "XCreateWindow", (void *) XCreateWindow }, - { "XDestroyWindow", (void *) XDestroyWindow }, - { "XMapWindow", (void *) XMapWindow }, - { "XCreateColormap", (void *) XCreateColormap }, - { "XFreeColormap", (void *) XFreeColormap }, - { "XFree", (void *) XFree }, - { "XGetVisualinfo", (void *) XGetVisualInfo }, - { "glXCreatePbuffer", (void *) glXCreatePbuffer }, - { "glXDestroyPbuffer", (void *) glXDestroyPbuffer }, - { "glXChooseFBConfig", (void *) glXChooseFBConfig }, - { "glXGetVisualFromFBConfig", (void *) glXGetVisualFromFBConfig }, - { NULL, NULL } - }; - const struct name_address *entry; - for (entry = functions; entry->name; entry++) { - if (strcmp(entry->name, (const char *) procname) == 0) { - return entry->func; - } - } - return _glapi_get_proc_address((const char *) procname); -} - - -/** - * \brief Query the Mini GLX version. - * - * \param dpy the display handle. It is currently ignored, but should be the - * value returned by XOpenDisplay(). - * \param major receives the major version number of Mini GLX. - * \param minor receives the minor version number of Mini GLX. - * - * \return \c True if the function succeeds, \c False if the function fails due - * to invalid parameters. - * - * \sa #MINI_GLX_VERSION_1_0. - * - * Returns the hard-coded Mini GLX version. - */ -Bool -glXQueryVersion( Display *dpy, int *major, int *minor ) -{ - (void) dpy; - *major = 1; - *minor = 0; - return True; -} - - -/** - * \brief Create a new pbuffer. - */ -GLXPbuffer -glXCreatePbuffer( Display *dpy, GLXFBConfig config, const int *attribList ) -{ - return NULL; -} - - -void -glXDestroyPbuffer( Display *dpy, GLXPbuffer pbuf ) -{ - free(pbuf); -} - - -GLXFBConfig * -glXChooseFBConfig( Display *dpy, int screen, const int *attribList, - int *nitems ) -{ - GLXFBConfig *f = (GLXFBConfig *) malloc(sizeof(GLXFBConfig)); - f->visInfo = glXChooseVisual( dpy, screen, (int *) attribList ); - if (f->visInfo) { - *nitems = 1; - return f; - } - else { - *nitems = 0; - free(f); - return NULL; - } -} - - -XVisualInfo * -glXGetVisualFromFBConfig( Display *dpy, GLXFBConfig config ) -{ - /* XVisualInfo and GLXFBConfig are the same structure */ - (void) dpy; - return config.visInfo; -} - -void *glXAllocateMemoryMESA(Display *dpy, int scrn, - size_t size, float readFreq, - float writeFreq, float priority) -{ - if (dpy->driScreen.private && dpy->driScreen.allocateMemory) { - return (*dpy->driScreen.allocateMemory)( dpy, scrn, size, - readFreq, writeFreq, - priority ); - } - - return NULL; -} - -void glXFreeMemoryMESA(Display *dpy, int scrn, void *pointer) -{ - if (dpy->driScreen.private && dpy->driScreen.freeMemory) { - (*dpy->driScreen.freeMemory)( dpy, scrn, pointer ); - } -} - -GLuint glXGetMemoryOffsetMESA( Display *dpy, int scrn, - const void *pointer ) -{ - if (dpy->driScreen.private && dpy->driScreen.memoryOffset) { - return (*dpy->driScreen.memoryOffset)( dpy, scrn, pointer ); - } - - return 0; -} - - -/** - * Get the unadjusted system time (UST). Currently, the UST is measured in - * microseconds since Epoc. The actual resolution of the UST may vary from - * system to system, and the units may vary from release to release. - * Drivers should not call this function directly. They should instead use - * \c glXGetProcAddress to obtain a pointer to the function. - * - * \param ust Location to store the 64-bit UST - * \returns Zero on success or a negative errno value on failure. - * - * \note - * This function was copied directly from src/glx/x11/glxcmds.c. - */ -static int __glXGetUST( int64_t * ust ) -{ - struct timeval tv; - - if ( ust == NULL ) { - return -EFAULT; - } - - if ( gettimeofday( & tv, NULL ) == 0 ) { - ust[0] = (tv.tv_sec * 1000000) + tv.tv_usec; - return 0; - } else { - return -errno; - } -} - - -/** - * - * \bug - * This needs to be implemented for miniGlx. - */ -static GLboolean __glXGetMscRate(__DRInativeDisplay * dpy, __DRIid drawable, - int32_t * numerator, int32_t * denominator) -{ - *numerator = 0; - *denominator = 0; - return False; -} -/*@}*/ diff --git a/nx-X11/extras/Mesa/src/glx/mini/miniglxP.h b/nx-X11/extras/Mesa/src/glx/mini/miniglxP.h deleted file mode 100644 index 96ed0e81c..000000000 --- a/nx-X11/extras/Mesa/src/glx/mini/miniglxP.h +++ /dev/null @@ -1,205 +0,0 @@ -/** - * \file miniglxP.h - * \brief Define replacements for some X data types and define the DRI-related - * data structures. - * - * \note Cut down version of glxclient.h. - * - */ - -#ifndef _mini_GLX_client_h_ -#define _mini_GLX_client_h_ - -#include -#include - -#include -#include "glheader.h" -#include "mtypes.h" - -#include "driver.h" -#include "GL/internal/dri_interface.h" - -/** - * \brief Supported pixel formats. - */ -enum PixelFormat { - PF_B8G8R8, /**< \brief 24-bit BGR */ - PF_B8G8R8A8, /**< \brief 32-bit BGRA */ - PF_B5G6R5, /**< \brief 16-bit BGR */ - PF_B5G5R5, /**< \brief 15-bit BGR */ - PF_CI8 /**< \brief 8-bit color index */ -}; - -/** - * \brief X Visual type. - * - * \sa ::Visual, \ref datatypes. - */ -struct MiniGLXVisualRec { - /** \brief GLX visual information */ - const __GLcontextModes *mode; - - /** \brief pointer back to corresponding ::XVisualInfo */ - XVisualInfo *visInfo; - - /** \brief display handle */ - Display *dpy; - - /** \brief pixel format */ - enum PixelFormat pixelFormat; -}; - - - -/** - * \brief X Window type. - * - * \sa ::Window, \ref datatypes. - */ -struct MiniGLXWindowRec { - Visual *visual; - /** \brief position (always 0,0) */ - int x, y; - /** \brief size */ - unsigned int w, h; - void *frontStart; /**< \brief start of front color buffer */ - void *backStart; /**< \brief start of back color buffer */ - size_t size; /**< \brief color buffer size, in bytes */ - GLuint bytesPerPixel; - GLuint rowStride; /**< \brief in bytes */ - GLubyte *frontBottom; /**< \brief pointer to last row */ - GLubyte *backBottom; /**< \brief pointer to last row */ - GLubyte *curBottom; /**< = frontBottom or backBottom */ - __DRIdrawable driDrawable; - GLuint ismapped; -}; - - -/** - * \brief GLXContext type. - * - * \sa ::GLXContext, \ref datatypes. - */ -struct MiniGLXContextRec { - Window drawBuffer; /**< \brief drawing buffer */ - Window curBuffer; /**< \brief current buffer */ - VisualID vid; /**< \brief visual ID */ - __DRIcontext driContext; /**< \brief context dependent methods */ -}; - -#define MINIGLX_BUF_SIZE 512 -#define MINIGLX_MAX_SERVER_FDS 10 -#define MINIGLX_MAX_CLIENT_FDS 1 -#define MINIGLX_EVENT_QUEUE_SZ 16 -#define MINIGLX_EVENT_QUEUE_MASK (MINIGLX_EVENT_QUEUE_SZ-1) - -/** - * A connection to/from the server - * - * All information is to/from the server is buffered and then dispatched by - * __miniglx_Select() to avoid blocking the server. - */ -struct MiniGLXConnection { - int fd; /**< \brief file descriptor */ - char readbuf[MINIGLX_BUF_SIZE]; /**< \brief read buffer */ - char writebuf[MINIGLX_BUF_SIZE]; /**< \brief write buffer */ - int readbuf_count; /**< \brief count of bytes waiting to be read */ - int writebuf_count; /**< \brief count of bytes waiting to be written */ -}; - - -/** - * \brief X Display type - * - * \sa ::Display, \ref datatypes. - */ -struct MiniGLXDisplayRec { - /** \brief fixed framebuffer screen info */ - struct fb_fix_screeninfo FixedInfo; - /** \brief original and current variable framebuffer screen info */ - struct fb_var_screeninfo OrigVarInfo, VarInfo; - struct sigaction OrigSigUsr1; - struct sigaction OrigSigUsr2; - int OriginalVT; - int ConsoleFD; /**< \brief console TTY device file descriptor */ - int FrameBufferFD; /**< \brief framebuffer device file descriptor */ - int NumWindows; /**< \brief number of open windows */ - Window TheWindow; /**< \brief open window - only allow one window for now */ - int rotateMode; - - - volatile int vtSignalFlag; - volatile int haveVT; /**< \brief whether the VT is hold */ - int hwActive; /**< \brief whether the hardware is active -- mimics - the variations of MiniGLXDisplayRec::haveVT */ - - - int IsClient; /**< \brief whether it's a client or the server */ - int clientID; - int nrFds; /**< \brief number of connections (usually just one for the clients) */ - struct MiniGLXConnection *fd; /**< \brief connections */ - int drmFd; /**< \brief handle to drm device */ - int authorized; /**< \brief has server authorized this process? */ - - struct { - int nr, head, tail; - XEvent queue[MINIGLX_EVENT_QUEUE_SZ]; - } eventqueue; - - /** - * \name Visuals - * - * Visuals (configs) in this screen. - */ - /*@{*/ - const __GLcontextModes *driver_modes; /**< \brief Modes filtered by driver. */ - /*@}*/ - - /** - * \name From __GLXdisplayPrivate - */ - /*@{*/ - PFNCREATENEWSCREENFUNC createNewScreen; /**< \brief \e __driCreateScreen hook */ - __DRIscreen driScreen; /**< \brief Screen dependent methods */ - void *dlHandle; /**< - * \brief handle to the client dynamic - * library - */ - /*@}*/ - - /** - * \brief Mini GLX specific driver hooks - */ - struct DRIDriverRec *driver; - struct DRIDriverContextRec driverContext; - - /** - * \name Configuration details - * - * They are read from a configuration file by __read_config_file(). - */ - /*@{*/ - const char *fbdevDevice; - const char *clientDriverName; - /*@}*/ -}; - -/** Character messages. */ -enum msgs { - _CanIHaveFocus, - _IDontWantFocus, - _YouveGotFocus, - _YouveLostFocus, - _RepaintPlease, - _Authorize, -}; -extern int send_msg( Display *dpy, int i, const void *msg, size_t sz ); -extern int send_char_msg( Display *dpy, int i, char msg ); -extern int blocking_read( Display *dpy, int connection, char *msg, size_t msg_size ); -extern int handle_fd_events( Display *dpy, int nonblock ); - -extern int __miniglx_open_connections( Display *dpy ); -extern void __miniglx_close_connections( Display *dpy ); - -#endif /* !_mini_GLX_client_h_ */ diff --git a/nx-X11/extras/Mesa/src/glx/mini/miniglx_events.c b/nx-X11/extras/Mesa/src/glx/mini/miniglx_events.c deleted file mode 100644 index 7e54ec491..000000000 --- a/nx-X11/extras/Mesa/src/glx/mini/miniglx_events.c +++ /dev/null @@ -1,978 +0,0 @@ -/** - * \file miniglx_events.c - * \brief Mini GLX client/server communication functions. - * \author Keith Whitwell - * - * The Mini GLX interface is a subset of the GLX interface, plus a - * minimal set of Xlib functions. This file adds interfaces to - * arbitrate a single cliprect between multiple direct rendering - * clients. - * - * A fairly complete client/server non-blocking communication - * mechanism. Probably overkill given that none of our messages - * currently exceed 1 byte in length and take place over the - * relatively benign channel provided by a Unix domain socket. - */ - -/* - * Mesa 3-D graphics library - * Version: 5.0 - * - * Copyright (C) 1999-2003 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. - */ - -/* $Id: miniglx_events.c,v 1.1.1.3 2005/10/18 02:51:50 kem Exp $ */ - - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include - -#include "xf86drm.h" -#include "miniglxP.h" - - -#define MINIGLX_FIFO_NAME "/tmp/miniglx.fifo" - -/** - * \brief Allocate an XEvent structure on the event queue. - * - * \param dpy the display handle. - * - * \return Pointer to the queued event structure or NULL on failure. - * - * \internal - * If there is space on the XEvent queue, return a pointer - * to the next free event and increment the eventqueue tail value. - * Otherwise return null. - */ -static XEvent *queue_event( Display *dpy ) -{ - int incr = (dpy->eventqueue.tail + 1) & MINIGLX_EVENT_QUEUE_MASK; - if (incr == dpy->eventqueue.head) { - return 0; - } - else { - XEvent *ev = &dpy->eventqueue.queue[dpy->eventqueue.tail]; - dpy->eventqueue.tail = incr; - return ev; - } -} - -/** - * \brief Dequeue an XEvent and copy it into provided storage. - * - * \param dpy the display handle. - * \param event_return pointer to copy the queued event to. - * - * \return True or False depending on success. - * - * \internal - * If there is a queued XEvent on the queue, copy it to the provided - * pointer and increment the eventqueue head value. Otherwise return - * null. - */ -static int dequeue_event( Display *dpy, XEvent *event_return ) -{ - if (dpy->eventqueue.tail == dpy->eventqueue.head) { - return False; - } - else { - *event_return = dpy->eventqueue.queue[dpy->eventqueue.head]; - dpy->eventqueue.head += 1; - dpy->eventqueue.head &= MINIGLX_EVENT_QUEUE_MASK; - return True; - } -} - -/** - * \brief Shutdown a socket connection. - * - * \param dpy the display handle. - * \param i the index in dpy->fd of the socket connection. - * - * \internal - * Shutdown and close the file descriptor. If this is the special - * connection in fd[0], issue an error message and exit - there's been - * some sort of failure somewhere. Otherwise, let the application - * know about whats happened by issuing a DestroyNotify event. - */ -static void shut_fd( Display *dpy, int i ) -{ - if (dpy->fd[i].fd < 0) - return; - - shutdown (dpy->fd[i].fd, SHUT_RDWR); - close (dpy->fd[i].fd); - dpy->fd[i].fd = -1; - dpy->fd[i].readbuf_count = 0; - dpy->fd[i].writebuf_count = 0; - - if (i == 0) { - fprintf(stderr, "server connection lost\n"); - exit(1); - } - else { - /* Pass this to the application as a DestroyNotify event. - */ - XEvent *er = queue_event(dpy); - if (!er) return; - er->xdestroywindow.type = DestroyNotify; - er->xdestroywindow.serial = 0; - er->xdestroywindow.send_event = 0; - er->xdestroywindow.display = dpy; - er->xdestroywindow.window = (Window)i; - } -} - -/** - * \brief Send a message to a socket connection. - * - * \param dpy the display handle. - * \param i the index in dpy->fd of the socket connection. - * \param msg the message to send. - * \param sz the size of the message - * - * \internal - * Copy the message to the write buffer for the nominated connection. - * This will be actually sent to that file descriptor from - * __miniglx_Select(). - */ -int send_msg( Display *dpy, int i, - const void *msg, size_t sz ) -{ - int cnt = dpy->fd[i].writebuf_count; - if (MINIGLX_BUF_SIZE - cnt < sz) { - fprintf(stderr, "client %d: writebuf overflow\n", i); - return False; - } - - memcpy( dpy->fd[i].writebuf + cnt, msg, sz ); cnt += sz; - dpy->fd[i].writebuf_count = cnt; - return True; -} - -/** - * \brief Send a message to a socket connection. - * - * \param dpy the display handle. - * \param i the index in dpy->fd of the socket connection. - * \param msg the message to send. - * - * \internal - * Use send_msg() to send a one-byte message to a socket. - */ -int send_char_msg( Display *dpy, int i, char msg ) -{ - return send_msg( dpy, i, &msg, sizeof(char)); -} - - -/** - * \brief Block and receive a message from a socket connection. - * - * \param dpy the display handle. - * \param connection the index in dpy->fd of the socket connection. - * \param msg storage for the received message. - * \param msg_size the number of bytes to read. - * - * \internal - * Block and read from the connection's file descriptor - * until msg_size bytes have been received. - * - * Only called from welcome_message_part(). - */ -int blocking_read( Display *dpy, int connection, - char *msg, size_t msg_size ) -{ - int i, r; - - for (i = 0 ; i < msg_size ; i += r) { - r = read(dpy->fd[connection].fd, msg + i, msg_size - i); - if (r < 1) { - fprintf(stderr, "blocking_read: %d %s\n", r, strerror(errno)); - shut_fd(dpy,connection); - return False; - } - } - - return True; -} - -/** - * \brief Send/receive a part of the welcome message. - * - * \param dpy the display handle. - * \param i the index in dpy->fd of the socket connection. - * \param msg storage for the sent/received message. - * \param sz the number of bytes to write/read. - * - * \return True on success, or False on failure. - * - * This function is called by welcome_message_part(), to either send or receive - * (via blocking_read()) part of the welcome message, according to whether - * Display::IsClient is set. - * - * Each part of the welcome message on the wire consists of a count and then the - * actual message data with that number of bytes. - */ -static int welcome_message_part( Display *dpy, int i, void **msg, int sz ) -{ - if (dpy->IsClient) { - int sz; - if (!blocking_read( dpy, i, (char *)&sz, sizeof(sz))) return False; - if (!*msg) *msg = malloc(sz); - if (!*msg) return False; - if (!blocking_read( dpy, i, *msg, sz )) return False; - return sz; - } - else { - if (!send_msg( dpy, i, &sz, sizeof(sz))) return False; - if (!send_msg( dpy, i, *msg, sz )) return False; - } - - return True; -} - -/** - * \brief Send/receive the welcome message. - * - * \param dpy the display handle. - * \param i the index in dpy->fd of the socket connection. - * - * \return True on success, or False on failure. - * - * Using welcome_message_part(), sends/receives the client ID, the client - * configuration details in DRIDriverContext::shared, and the driver private - * message in DRIDriverContext::driverClientMsg. - */ -static int welcome_message( Display *dpy, int i ) -{ - void *tmp = &dpy->driverContext.shared; - int *clientid = dpy->IsClient ? &dpy->clientID : &i; - int size; - if (!welcome_message_part( dpy, i, (void **)&clientid, sizeof(*clientid))) - return False; - - if (!welcome_message_part( dpy, i, &tmp, sizeof(dpy->driverContext.shared))) - return False; - - size=welcome_message_part( dpy, i, - (void **)&dpy->driverContext.driverClientMsg, - dpy->driverContext.driverClientMsgSize ); - if (!size) - return False; - if (dpy->IsClient) { - dpy->driverContext.driverClientMsgSize = size; - } - return True; -} - - -/** - * \brief Handle a new client connection. - * - * \param dpy the display handle. - * - * \return True on success or False on failure. - * - * Accepts the connection, sets it in non-blocking operation, and finds a free - * slot in Display::fd for it. - */ -static int handle_new_client( Display *dpy ) -{ - struct sockaddr_un client_address; - unsigned int l = sizeof(client_address); - int r, i; - - r = accept(dpy->fd[0].fd, (struct sockaddr *) &client_address, &l); - if (r < 0) { - perror ("accept()"); - shut_fd(dpy,0); - return False; - } - - if (fcntl(r, F_SETFL, O_NONBLOCK) != 0) { - perror("fcntl"); - close(r); - return False; - } - - - /* Some rough & ready adaption of the XEvent semantics. - */ - for (i = 1 ; i < dpy->nrFds ; i++) { - if (dpy->fd[i].fd < 0) { - XEvent *er = queue_event(dpy); - if (!er) { - close(r); - return False; - } - - dpy->fd[i].fd = r; - er->xcreatewindow.type = CreateNotify; - er->xcreatewindow.serial = 0; - er->xcreatewindow.send_event = 0; - er->xcreatewindow.display = dpy; - er->xcreatewindow.window = (Window)i; /* fd slot == window, now? */ - - /* Send the driver client message - this is expected as the - * first message on a new connection. The recpient already - * knows the size of the message. - */ - welcome_message( dpy, i ); - return True; - } - } - - - fprintf(stderr, "[miniglx] %s: Max nr clients exceeded\n", __FUNCTION__); - close(r); - return False; -} - -/** - * This routine "puffs out" the very basic communications between - * client and server to full-sized X Events that can be handled by the - * application. - * - * \param dpy the display handle. - * \param i the index in dpy->fd of the socket connection. - * - * \return True on success or False on failure. - * - * \internal - * Interprets the message (see msg) into a XEvent and advances the file FIFO - * buffer. - */ -static int -handle_fifo_read( Display *dpy, int i ) -{ - drm_magic_t magic; - int err; - - while (dpy->fd[i].readbuf_count) { - char id = dpy->fd[i].readbuf[0]; - XEvent *er; - int count = 1; - - if (dpy->IsClient) { - switch (id) { - /* The server has called XMapWindow on a client window */ - case _YouveGotFocus: - er = queue_event(dpy); - if (!er) return False; - er->xmap.type = MapNotify; - er->xmap.serial = 0; - er->xmap.send_event = False; - er->xmap.display = dpy; - er->xmap.event = dpy->TheWindow; - er->xmap.window = dpy->TheWindow; - er->xmap.override_redirect = False; - if (dpy->driver->notifyFocus) - dpy->driver->notifyFocus( 1 ); - break; - - /* The server has called XMapWindow on a client window */ - case _RepaintPlease: - er = queue_event(dpy); - if (!er) return False; - er->xexpose.type = Expose; - er->xexpose.serial = 0; - er->xexpose.send_event = False; - er->xexpose.display = dpy; - er->xexpose.window = dpy->TheWindow; - if (dpy->rotateMode) { - er->xexpose.x = dpy->TheWindow->y; - er->xexpose.y = dpy->TheWindow->x; - er->xexpose.width = dpy->TheWindow->h; - er->xexpose.height = dpy->TheWindow->w; - } - else { - er->xexpose.x = dpy->TheWindow->x; - er->xexpose.y = dpy->TheWindow->y; - er->xexpose.width = dpy->TheWindow->w; - er->xexpose.height = dpy->TheWindow->h; - } - er->xexpose.count = 0; - break; - - /* The server has called 'XUnmapWindow' on a client - * window. - */ - case _YouveLostFocus: - er = queue_event(dpy); - if (!er) return False; - er->xunmap.type = UnmapNotify; - er->xunmap.serial = 0; - er->xunmap.send_event = False; - er->xunmap.display = dpy; - er->xunmap.event = dpy->TheWindow; - er->xunmap.window = dpy->TheWindow; - er->xunmap.from_configure = False; - if (dpy->driver->notifyFocus) - dpy->driver->notifyFocus( 0 ); - break; - - case _Authorize: - dpy->authorized = True; - break; - - default: - fprintf(stderr, "Client received unhandled message type %d\n", id); - shut_fd(dpy, i); /* Actually shuts down the client */ - return False; - } - } - else { - switch (id) { - /* Lets the server know that the client is ready to render - * (having called 'XMapWindow' locally). - */ - case _CanIHaveFocus: - er = queue_event(dpy); - if (!er) return False; - er->xmaprequest.type = MapRequest; - er->xmaprequest.serial = 0; - er->xmaprequest.send_event = False; - er->xmaprequest.display = dpy; - er->xmaprequest.parent = 0; - er->xmaprequest.window = (Window)i; - break; - - /* Both _YouveLostFocus and _IDontWantFocus generate unmap - * events. The idea is that _YouveLostFocus lets the client - * know that it has had focus revoked by the server, whereas - * _IDontWantFocus lets the server know that the client has - * unmapped its own window. - */ - case _IDontWantFocus: - er = queue_event(dpy); - if (!er) return False; - er->xunmap.type = UnmapNotify; - er->xunmap.serial = 0; - er->xunmap.send_event = False; - er->xunmap.display = dpy; - er->xunmap.event = (Window)i; - er->xunmap.window = (Window)i; - er->xunmap.from_configure = False; - break; - - case _Authorize: - /* is full message here yet? */ - if (dpy->fd[i].readbuf_count < count + sizeof(magic)) { - count = 0; - break; - } - memcpy(&magic, dpy->fd[i].readbuf + count, sizeof(magic)); - fprintf(stderr, "Authorize - magic %d\n", magic); - - err = drmAuthMagic(dpy->driverContext.drmFD, magic); - count += sizeof(magic); - - send_char_msg( dpy, i, _Authorize ); - break; - - default: - fprintf(stderr, "Server received unhandled message type %d\n", id); - shut_fd(dpy, i); /* Generates DestroyNotify event */ - return False; - } - } - - dpy->fd[i].readbuf_count -= count; - - if (dpy->fd[i].readbuf_count) { - memmove(dpy->fd[i].readbuf, - dpy->fd[i].readbuf + count, - dpy->fd[i].readbuf_count); - } - } - - return True; -} - -/** - * Handle a VT signal - * - * \param dpy display handle. - * - * The VT switches is detected by comparing Display::haveVT and - * Display::hwActive. When loosing the VT the hardware lock is acquired, the - * hardware is shutdown via a call to DRIDriverRec::shutdownHardware(), and the - * VT released. When acquiring the VT back the hardware state is restored via a - * call to DRIDriverRec::restoreHardware() and the hardware lock released. - */ -static void __driHandleVtSignals( Display *dpy ) -{ - dpy->vtSignalFlag = 0; - - fprintf(stderr, "%s: haveVT %d hwActive %d\n", __FUNCTION__, - dpy->haveVT, dpy->hwActive); - - if (!dpy->haveVT && dpy->hwActive) { - /* Need to get lock and shutdown hardware */ - DRM_LIGHT_LOCK( dpy->driverContext.drmFD, - dpy->driverContext.pSAREA, - dpy->driverContext.serverContext ); - dpy->driver->shutdownHardware( &dpy->driverContext ); - - /* Can now give up control of the VT */ - ioctl( dpy->ConsoleFD, VT_RELDISP, 1 ); - dpy->hwActive = 0; - } - else if (dpy->haveVT && !dpy->hwActive) { - /* Get VT (wait??) */ - ioctl( dpy->ConsoleFD, VT_RELDISP, VT_ACTIVATE ); - - /* restore HW state, release lock */ - dpy->driver->restoreHardware( &dpy->driverContext ); - DRM_UNLOCK( dpy->driverContext.drmFD, - dpy->driverContext.pSAREA, - dpy->driverContext.serverContext ); - dpy->hwActive = 1; - } -} - - -#undef max -#define max(x,y) ((x) > (y) ? (x) : (y)) - -/** - * Logic for the select() call. - * - * \param dpy display handle. - * \param n highest fd in any set plus one. - * \param rfds fd set to be watched for reading, or NULL to create one. - * \param wfds fd set to be watched for writing, or NULL to create one. - * \param xfds fd set to be watched for exceptions or error, or NULL to create one. - * \param tv timeout value, or NULL for no timeout. - * - * \return number of file descriptors contained in the sets, or a negative number on failure. - * - * \note - * This all looks pretty complex, but is necessary especially on the - * server side to prevent a poorly-behaved client from causing the - * server to block in a read or write and hence not service the other - * clients. - * - * \sa - * See select_tut in the Linux manual pages for more discussion. - * - * \internal - * Creates and initializes the file descriptor sets by inspecting Display::fd - * if these aren't passed in the function call. Calls select() and fulfill the - * demands by trying to fill MiniGLXConnection::readbuf and draining - * MiniGLXConnection::writebuf. - * The server fd[0] is handled specially for new connections, by calling - * handle_new_client(). - * - */ -int -__miniglx_Select( Display *dpy, int n, fd_set *rfds, fd_set *wfds, fd_set *xfds, - struct timeval *tv ) -{ - int i; - int retval; - fd_set my_rfds, my_wfds; - struct timeval my_tv; - - if (!rfds) { - rfds = &my_rfds; - FD_ZERO(rfds); - } - - if (!wfds) { - wfds = &my_wfds; - FD_ZERO(wfds); - } - - /* Don't block if there are events queued. Review this if the - * flush in XMapWindow is changed to blocking. (Test case: - * miniglxtest). - */ - if (dpy->eventqueue.head != dpy->eventqueue.tail) { - my_tv.tv_sec = my_tv.tv_usec = 0; - tv = &my_tv; - } - - for (i = 0 ; i < dpy->nrFds; i++) { - if (dpy->fd[i].fd < 0) - continue; - - if (dpy->fd[i].writebuf_count) - FD_SET(dpy->fd[i].fd, wfds); - - if (dpy->fd[i].readbuf_count < MINIGLX_BUF_SIZE) - FD_SET(dpy->fd[i].fd, rfds); - - n = max(n, dpy->fd[i].fd + 1); - } - - if (dpy->vtSignalFlag) - __driHandleVtSignals( dpy ); - - retval = select( n, rfds, wfds, xfds, tv ); - - if (dpy->vtSignalFlag) { - int tmp = errno; - __driHandleVtSignals( dpy ); - errno = tmp; - } - - if (retval < 0) { - FD_ZERO(rfds); - FD_ZERO(wfds); - return retval; - } - - /* Handle server fd[0] specially on the server - accept new client - * connections. - */ - if (!dpy->IsClient) { - if (FD_ISSET(dpy->fd[0].fd, rfds)) { - FD_CLR(dpy->fd[0].fd, rfds); - handle_new_client( dpy ); - } - } - - /* Otherwise, try and fill readbuffer and drain writebuffer: - */ - for (i = 0 ; i < dpy->nrFds ; i++) { - if (dpy->fd[i].fd < 0) - continue; - - /* If there aren't any event slots left, don't examine - * any more file events. This will prevent lost events. - */ - if (dpy->eventqueue.head == - ((dpy->eventqueue.tail + 1) & MINIGLX_EVENT_QUEUE_MASK)) { - fprintf(stderr, "leaving event loop as event queue is full\n"); - return retval; - } - - if (FD_ISSET(dpy->fd[i].fd, wfds)) { - int r = write(dpy->fd[i].fd, - dpy->fd[i].writebuf, - dpy->fd[i].writebuf_count); - - if (r < 1) - shut_fd(dpy,i); - else { - dpy->fd[i].writebuf_count -= r; - if (dpy->fd[i].writebuf_count) { - memmove(dpy->fd[i].writebuf, - dpy->fd[i].writebuf + r, - dpy->fd[i].writebuf_count); - } - } - } - - if (FD_ISSET(dpy->fd[i].fd, rfds)) { - int r = read(dpy->fd[i].fd, - dpy->fd[i].readbuf + dpy->fd[i].readbuf_count, - MINIGLX_BUF_SIZE - dpy->fd[i].readbuf_count); - - if (r < 1) - shut_fd(dpy,i); - else { - dpy->fd[i].readbuf_count += r; - - handle_fifo_read( dpy, i ); - } - } - } - - return retval; -} - -/** - * \brief Handle socket events. - * - * \param dpy the display handle. - * \param nonblock whether to return immediately or wait for an event. - * - * \return True on success, False on failure. Aborts on critical error. - * - * \internal - * This function is the select() main loop. - */ -int handle_fd_events( Display *dpy, int nonblock ) -{ - while (1) { - struct timeval tv = {0, 0}; - int r = __miniglx_Select( dpy, 0, 0, 0, 0, nonblock ? &tv : 0 ); - if (r >= 0) - return True; - if (errno == EINTR || errno == EAGAIN) - continue; - perror ("select()"); - exit (1); - } -} - -/** - * Initializes the connections. - * - * \param dpy the display handle. - * - * \return True on success or False on failure. - * - * Allocates and initializes the Display::fd array and create a Unix socket on - * the first entry. For a server binds the socket to a filename and listen for - * connections. For a client connects to the server and waits for a welcome - * message. Sets the socket in nonblocking mode. - */ -int __miniglx_open_connections( Display *dpy ) -{ - struct sockaddr_un sa; - int i; - - dpy->nrFds = dpy->IsClient ? 1 : MINIGLX_MAX_SERVER_FDS; - dpy->fd = calloc(1, dpy->nrFds * sizeof(struct MiniGLXConnection)); - if (!dpy->fd) - return False; - - for (i = 0 ; i < dpy->nrFds ; i++) - dpy->fd[i].fd = -1; - - if (!dpy->IsClient) { - if (unlink(MINIGLX_FIFO_NAME) != 0 && errno != ENOENT) { - perror("unlink " MINIGLX_FIFO_NAME); - return False; - } - - } - - /* Create a Unix socket -- Note this is *not* a network connection! - */ - dpy->fd[0].fd = socket(PF_UNIX, SOCK_STREAM, 0); - if (dpy->fd[0].fd < 0) { - perror("socket " MINIGLX_FIFO_NAME); - return False; - } - - memset(&sa, 0, sizeof(sa)); - sa.sun_family = AF_UNIX; - strcpy(sa.sun_path, MINIGLX_FIFO_NAME); - - if (dpy->IsClient) { - /* Connect to server - */ - if (connect(dpy->fd[0].fd, (struct sockaddr *)&sa, sizeof(sa)) != 0) { - perror("connect"); - shut_fd(dpy,0); - return False; - } - - /* Wait for configuration messages from the server. - */ - welcome_message( dpy, 0 ); - } - else { - mode_t tmp = umask( 0000 ); /* open to everybody ? */ - - /* Bind socket to our filename - */ - if (bind(dpy->fd[0].fd, (struct sockaddr *)&sa, sizeof(sa)) != 0) { - perror("bind"); - shut_fd(dpy,0); - return False; - } - - umask( tmp ); - - /* Listen for connections - */ - if (listen(dpy->fd[0].fd, 5) != 0) { - perror("listen"); - shut_fd(dpy,0); - return False; - } - } - - if (fcntl(dpy->fd[0].fd, F_SETFL, O_NONBLOCK) != 0) { - perror("fcntl"); - shut_fd(dpy,0); - return False; - } - - - return True; -} - - -/** - * Frees the connections initialized by __miniglx_open_connections(). - * - * \param dpy the display handle. - */ -void __miniglx_close_connections( Display *dpy ) -{ - int i; - - for (i = 0 ; i < dpy->nrFds ; i++) { - if (dpy->fd[i].fd >= 0) { - shutdown (dpy->fd[i].fd, SHUT_RDWR); - close (dpy->fd[i].fd); - } - } - - dpy->nrFds = 0; - free(dpy->fd); -} - - -/** - * Set a drawable flag. - * - * \param dpy the display handle. - * \param w drawable (window). - * \param flag flag. - * - * Sets the specified drawable flag in the SAREA and increment its stamp while - * holding the light hardware lock. - */ -static void set_drawable_flag( Display *dpy, int w, int flag ) -{ - if (dpy->driverContext.pSAREA) { - if (dpy->hwActive) - DRM_LIGHT_LOCK( dpy->driverContext.drmFD, - dpy->driverContext.pSAREA, - dpy->driverContext.serverContext ); - - dpy->driverContext.pSAREA->drawableTable[w].stamp++; - dpy->driverContext.pSAREA->drawableTable[w].flags = flag; - - if (dpy->hwActive) - DRM_UNLOCK( dpy->driverContext.drmFD, - dpy->driverContext.pSAREA, - dpy->driverContext.serverContext ); - } -} - - - -/** - * \brief Map Window. - * - * \param dpy the display handle as returned by XOpenDisplay(). - * \param w the window handle. - * - * If called by a client, sends a request for focus to the server. If - * called by the server, will generate a MapNotify and Expose event at - * the client. - * - */ -void -XMapWindow( Display *dpy, Window w ) -{ - if (dpy->IsClient) - send_char_msg( dpy, 0, _CanIHaveFocus ); - else { - set_drawable_flag( dpy, (int)w, 1 ); - send_char_msg( dpy, (int)w, _YouveGotFocus ); - send_char_msg( dpy, (int)w, _RepaintPlease ); - dpy->TheWindow = w; - } - handle_fd_events( dpy, 0 ); /* flush write queue */ -} - -/** - * \brief Unmap Window. - * - * \param dpy the display handle as returned by XOpenDisplay(). - * \param w the window handle. - * - * Called from the client: Lets the server know that the window won't - * be updated anymore. - * - * Called from the server: Tells the specified client that it no longer - * holds the focus. - */ -void -XUnmapWindow( Display *dpy, Window w ) -{ - if (dpy->IsClient) { - send_char_msg( dpy, 0, _IDontWantFocus ); - } - else { - dpy->TheWindow = 0; - set_drawable_flag( dpy, (int)w, 0 ); - send_char_msg( dpy, (int)w, _YouveLostFocus ); - } - handle_fd_events( dpy, 0 ); /* flush write queue */ -} - - -/** - * \brief Block and wait for next X event. - * - * \param dpy the display handle as returned by XOpenDisplay(). - * \param event_return a pointer to an XEvent structure for the returned data. - * - * Wait until there is a new XEvent pending. - */ -int XNextEvent(Display *dpy, XEvent *event_return) -{ - for (;;) { - if ( dpy->eventqueue.head != dpy->eventqueue.tail ) - return dequeue_event( dpy, event_return ); - - handle_fd_events( dpy, 0 ); - } -} - -/** - * \brief Non-blocking check for next X event. - * - * \param dpy the display handle as returned by XOpenDisplay(). - * \param event_mask ignored. - * \param event_return a pointer to an XEvent structure for the returned data. - * - * Check if there is a new XEvent pending. Note that event_mask is - * ignored and any pending event will be returned. - */ -Bool XCheckMaskEvent(Display *dpy, long event_mask, XEvent *event_return) -{ - if ( dpy->eventqueue.head != dpy->eventqueue.tail ) - return dequeue_event( dpy, event_return ); - - handle_fd_events( dpy, 1 ); - - return dequeue_event( dpy, event_return ); -} diff --git a/nx-X11/extras/Mesa/src/glx/x11/Makefile b/nx-X11/extras/Mesa/src/glx/x11/Makefile deleted file mode 100644 index 415ec02dd..000000000 --- a/nx-X11/extras/Mesa/src/glx/x11/Makefile +++ /dev/null @@ -1,94 +0,0 @@ -TOP = ../../.. -include $(TOP)/configs/current - -DEFINES += -DXF86VIDMODE -D_REENTRANT -UIN_DRI_DRIVER - -C_SOURCES = \ - $(TOP)/src/mesa/glapi/glapi.c \ - $(TOP)/src/mesa/glapi/glthread.c \ - $(TOP)/src/mesa/main/dispatch.c \ - glcontextmodes.c \ - clientattrib.c \ - compsize.c \ - eval.c \ - glxcmds.c \ - glxext.c \ - glxextensions.c \ - indirect.c \ - indirect_init.c \ - indirect_size.c \ - indirect_window_pos.c \ - indirect_transpose_matrix.c \ - indirect_vertex_array.c \ - indirect_vertex_program.c \ - pixel.c \ - pixelstore.c \ - render2.c \ - renderpix.c \ - single2.c \ - singlepix.c \ - vertarr.c \ - xfont.c \ - glx_pbuffer.c \ - glx_query.c \ - glx_texture_compression.c \ - dri_glx.c \ - XF86dri.c \ - -X86_SOURCES = $(TOP)/src/mesa/x86/glapi_x86.S -X86-64_SOURCES = $(TOP)/src/mesa/x86-64/glapi_x86-64.S - -# ASM_SOURCES = $(X86_SOURCES) - -OBJECTS = $(C_SOURCES:.c=.o) \ - $(ASM_SOURCES:.S=.o) - -INCLUDES = -I. \ - -I$(TOP)/include \ - -I$(TOP)/include/GL/internal \ - -I$(TOP)/src/mesa/main \ - -I$(TOP)/src/mesa/glapi \ - -I$(TOP)/src/mesa/drivers/dri/common \ - `pkg-config --cflags libdrm` \ - $(X11_INCLUDES) - - -##### RULES ##### - -.c.o: - $(CC) -c $(INCLUDES) $(CFLAGS) $(DEFINES) $< -o $@ - -.S.o: - $(CC) -c $(INCLUDES) $(CFLAGS) $(DEFINES) $< -o $@ - -##### TARGETS ##### - -default: depend $(LIB_DIR)/$(GL_LIB_NAME) - -glcontextmodes.c: - ln -s $(TOP)/src/mesa/drivers/dri/common/glcontextmodes.c . - -# Make libGL -$(LIB_DIR)/$(GL_LIB_NAME): $(OBJECTS) Makefile - $(TOP)/bin/mklib -o $(GL_LIB) -linker '$(CC)' \ - -major 1 -minor 2 $(MKLIB_OPTIONS) \ - -install $(LIB_DIR) $(GL_LIB_DEPS) $(OBJECTS) - - -depend: $(C_SOURCES) $(ASM_SOURCES) Makefile - touch depend - $(MKDEP) $(MKDEP_OPTIONS) $(INCLUDES) $(C_SOURCES) $(ASM_SOURCES) - - -# Emacs tags -tags: - etags `find . -name \*.[ch]` `find ../include` - - -# Remove .o and backup files -clean: - -rm -f $(LIB_DIR)/libGL.so* - -rm -f *.o *~ - -rm -f depend - -include depend diff --git a/nx-X11/extras/Mesa/src/glx/x11/XF86dri.c b/nx-X11/extras/Mesa/src/glx/x11/XF86dri.c deleted file mode 100644 index 03fa4e57b..000000000 --- a/nx-X11/extras/Mesa/src/glx/x11/XF86dri.c +++ /dev/null @@ -1,617 +0,0 @@ -/* $XFree86: xc/lib/GL/dri/XF86dri.c,v 1.13 2002/10/30 12:51:25 alanh Exp $ */ -/************************************************************************** - -Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas. -Copyright 2000 VA Linux Systems, 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 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 PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR -ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -**************************************************************************/ - -/* - * Authors: - * Kevin E. Martin - * Jens Owen - * Rickard E. (Rik) Faith - * - */ - -/* THIS IS NOT AN X CONSORTIUM STANDARD */ - -#define NEED_REPLIES -#include -#include -#include -#include "glheader.h" -#include "xf86dristr.h" - -static XExtensionInfo _xf86dri_info_data; -static XExtensionInfo *xf86dri_info = &_xf86dri_info_data; -static char xf86dri_extension_name[] = XF86DRINAME; - -#define XF86DRICheckExtension(dpy,i,val) \ - XextCheckExtension (dpy, i, xf86dri_extension_name, val) - -/***************************************************************************** - * * - * private utility routines * - * * - *****************************************************************************/ - -static int close_display(Display *dpy, XExtCodes *extCodes); -static /* const */ XExtensionHooks xf86dri_extension_hooks = { - NULL, /* create_gc */ - NULL, /* copy_gc */ - NULL, /* flush_gc */ - NULL, /* free_gc */ - NULL, /* create_font */ - NULL, /* free_font */ - close_display, /* close_display */ - NULL, /* wire_to_event */ - NULL, /* event_to_wire */ - NULL, /* error */ - NULL, /* error_string */ -}; - -static XEXT_GENERATE_FIND_DISPLAY (find_display, xf86dri_info, - xf86dri_extension_name, - &xf86dri_extension_hooks, - 0, NULL) - -static XEXT_GENERATE_CLOSE_DISPLAY (close_display, xf86dri_info) - - -/***************************************************************************** - * * - * public XFree86-DRI Extension routines * - * * - *****************************************************************************/ - -#if 0 -#include -#define TRACE(msg) fprintf(stderr,"XF86DRI%s\n", msg); -#else -#define TRACE(msg) -#endif - - -PUBLIC Bool XF86DRIQueryExtension (dpy, event_basep, error_basep) - Display *dpy; - int *event_basep, *error_basep; -{ - XExtDisplayInfo *info = find_display (dpy); - - TRACE("QueryExtension..."); - if (XextHasExtension(info)) { - *event_basep = info->codes->first_event; - *error_basep = info->codes->first_error; - TRACE("QueryExtension... return True"); - return True; - } else { - TRACE("QueryExtension... return False"); - return False; - } -} - -PUBLIC Bool XF86DRIQueryVersion(dpy, majorVersion, minorVersion, patchVersion) - Display* dpy; - int* majorVersion; - int* minorVersion; - int* patchVersion; -{ - XExtDisplayInfo *info = find_display (dpy); - xXF86DRIQueryVersionReply rep; - xXF86DRIQueryVersionReq *req; - - TRACE("QueryVersion..."); - XF86DRICheckExtension (dpy, info, False); - - LockDisplay(dpy); - GetReq(XF86DRIQueryVersion, req); - req->reqType = info->codes->major_opcode; - req->driReqType = X_XF86DRIQueryVersion; - if (!_XReply(dpy, (xReply *)&rep, 0, xFalse)) { - UnlockDisplay(dpy); - SyncHandle(); - TRACE("QueryVersion... return False"); - return False; - } - *majorVersion = rep.majorVersion; - *minorVersion = rep.minorVersion; - *patchVersion = rep.patchVersion; - UnlockDisplay(dpy); - SyncHandle(); - TRACE("QueryVersion... return True"); - return True; -} - -PUBLIC Bool XF86DRIQueryDirectRenderingCapable(dpy, screen, isCapable) - Display* dpy; - int screen; - Bool* isCapable; -{ - XExtDisplayInfo *info = find_display (dpy); - xXF86DRIQueryDirectRenderingCapableReply rep; - xXF86DRIQueryDirectRenderingCapableReq *req; - - TRACE("QueryDirectRenderingCapable..."); - XF86DRICheckExtension (dpy, info, False); - - LockDisplay(dpy); - GetReq(XF86DRIQueryDirectRenderingCapable, req); - req->reqType = info->codes->major_opcode; - req->driReqType = X_XF86DRIQueryDirectRenderingCapable; - req->screen = screen; - if (!_XReply(dpy, (xReply *)&rep, 0, xFalse)) { - UnlockDisplay(dpy); - SyncHandle(); - TRACE("QueryDirectRenderingCapable... return False"); - return False; - } - *isCapable = rep.isCapable; - UnlockDisplay(dpy); - SyncHandle(); - TRACE("QueryDirectRenderingCapable... return True"); - return True; -} - -PUBLIC Bool XF86DRIOpenConnection(dpy, screen, hSAREA, busIdString) - Display* dpy; - int screen; - drm_handle_t * hSAREA; - char **busIdString; -{ - XExtDisplayInfo *info = find_display (dpy); - xXF86DRIOpenConnectionReply rep; - xXF86DRIOpenConnectionReq *req; - - TRACE("OpenConnection..."); - XF86DRICheckExtension (dpy, info, False); - - LockDisplay(dpy); - GetReq(XF86DRIOpenConnection, req); - req->reqType = info->codes->major_opcode; - req->driReqType = X_XF86DRIOpenConnection; - req->screen = screen; - if (!_XReply(dpy, (xReply *)&rep, 0, xFalse)) { - UnlockDisplay(dpy); - SyncHandle(); - TRACE("OpenConnection... return False"); - return False; - } - - *hSAREA = rep.hSAREALow; -#ifdef LONG64 - *hSAREA |= ((drm_handle_t)rep.hSAREAHigh) << 32; -#endif - - if (rep.length) { - if (!(*busIdString = (char *)Xcalloc(rep.busIdStringLength + 1, 1))) { - _XEatData(dpy, ((rep.busIdStringLength+3) & ~3)); - UnlockDisplay(dpy); - SyncHandle(); - TRACE("OpenConnection... return False"); - return False; - } - _XReadPad(dpy, *busIdString, rep.busIdStringLength); - } else { - *busIdString = NULL; - } - UnlockDisplay(dpy); - SyncHandle(); - TRACE("OpenConnection... return True"); - return True; -} - -PUBLIC Bool XF86DRIAuthConnection(dpy, screen, magic) - Display* dpy; - int screen; - drm_magic_t magic; -{ - XExtDisplayInfo *info = find_display (dpy); - xXF86DRIAuthConnectionReq *req; - xXF86DRIAuthConnectionReply rep; - - TRACE("AuthConnection..."); - XF86DRICheckExtension (dpy, info, False); - - LockDisplay(dpy); - GetReq(XF86DRIAuthConnection, req); - req->reqType = info->codes->major_opcode; - req->driReqType = X_XF86DRIAuthConnection; - req->screen = screen; - req->magic = magic; - rep.authenticated = 0; - if (!_XReply(dpy, (xReply *)&rep, 0, xFalse) || !rep.authenticated) { - UnlockDisplay(dpy); - SyncHandle(); - TRACE("AuthConnection... return False"); - return False; - } - UnlockDisplay(dpy); - SyncHandle(); - TRACE("AuthConnection... return True"); - return True; -} - -PUBLIC Bool XF86DRICloseConnection(dpy, screen) - Display* dpy; - int screen; -{ - XExtDisplayInfo *info = find_display (dpy); - xXF86DRICloseConnectionReq *req; - - TRACE("CloseConnection..."); - - XF86DRICheckExtension (dpy, info, False); - - LockDisplay(dpy); - GetReq(XF86DRICloseConnection, req); - req->reqType = info->codes->major_opcode; - req->driReqType = X_XF86DRICloseConnection; - req->screen = screen; - UnlockDisplay(dpy); - SyncHandle(); - TRACE("CloseConnection... return True"); - return True; -} - -PUBLIC Bool XF86DRIGetClientDriverName(dpy, screen, ddxDriverMajorVersion, - ddxDriverMinorVersion, ddxDriverPatchVersion, clientDriverName) - Display* dpy; - int screen; - int* ddxDriverMajorVersion; - int* ddxDriverMinorVersion; - int* ddxDriverPatchVersion; - char** clientDriverName; -{ - XExtDisplayInfo *info = find_display (dpy); - xXF86DRIGetClientDriverNameReply rep; - xXF86DRIGetClientDriverNameReq *req; - - TRACE("GetClientDriverName..."); - XF86DRICheckExtension (dpy, info, False); - - LockDisplay(dpy); - GetReq(XF86DRIGetClientDriverName, req); - req->reqType = info->codes->major_opcode; - req->driReqType = X_XF86DRIGetClientDriverName; - req->screen = screen; - if (!_XReply(dpy, (xReply *)&rep, 0, xFalse)) { - UnlockDisplay(dpy); - SyncHandle(); - TRACE("GetClientDriverName... return False"); - return False; - } - - *ddxDriverMajorVersion = rep.ddxDriverMajorVersion; - *ddxDriverMinorVersion = rep.ddxDriverMinorVersion; - *ddxDriverPatchVersion = rep.ddxDriverPatchVersion; - - if (rep.length) { - if (!(*clientDriverName = (char *)Xcalloc(rep.clientDriverNameLength + 1, 1))) { - _XEatData(dpy, ((rep.clientDriverNameLength+3) & ~3)); - UnlockDisplay(dpy); - SyncHandle(); - TRACE("GetClientDriverName... return False"); - return False; - } - _XReadPad(dpy, *clientDriverName, rep.clientDriverNameLength); - } else { - *clientDriverName = NULL; - } - UnlockDisplay(dpy); - SyncHandle(); - TRACE("GetClientDriverName... return True"); - return True; -} - -PUBLIC Bool XF86DRICreateContextWithConfig(dpy, screen, configID, context, - hHWContext) - Display* dpy; - int screen; - int configID; - XID* context; - drm_context_t * hHWContext; -{ - XExtDisplayInfo *info = find_display (dpy); - xXF86DRICreateContextReply rep; - xXF86DRICreateContextReq *req; - - TRACE("CreateContext..."); - XF86DRICheckExtension (dpy, info, False); - - LockDisplay(dpy); - GetReq(XF86DRICreateContext, req); - req->reqType = info->codes->major_opcode; - req->driReqType = X_XF86DRICreateContext; - req->visual = configID; - req->screen = screen; - *context = XAllocID(dpy); - req->context = *context; - if (!_XReply(dpy, (xReply *)&rep, 0, xFalse)) { - UnlockDisplay(dpy); - SyncHandle(); - TRACE("CreateContext... return False"); - return False; - } - *hHWContext = rep.hHWContext; - UnlockDisplay(dpy); - SyncHandle(); - TRACE("CreateContext... return True"); - return True; -} - -PUBLIC Bool XF86DRICreateContext(dpy, screen, visual, context, hHWContext) - Display* dpy; - int screen; - Visual* visual; - XID* context; - drm_context_t * hHWContext; -{ - return XF86DRICreateContextWithConfig( dpy, screen, visual->visualid, - context, hHWContext ); -} - -PUBLIC GLboolean XF86DRIDestroyContext( __DRInativeDisplay * ndpy, int screen, - __DRIid context ) -{ - Display * const dpy = (Display *) ndpy; - XExtDisplayInfo *info = find_display (dpy); - xXF86DRIDestroyContextReq *req; - - TRACE("DestroyContext..."); - XF86DRICheckExtension (dpy, info, False); - - LockDisplay(dpy); - GetReq(XF86DRIDestroyContext, req); - req->reqType = info->codes->major_opcode; - req->driReqType = X_XF86DRIDestroyContext; - req->screen = screen; - req->context = context; - UnlockDisplay(dpy); - SyncHandle(); - TRACE("DestroyContext... return True"); - return True; -} - -PUBLIC GLboolean XF86DRICreateDrawable( __DRInativeDisplay * ndpy, int screen, - __DRIid drawable, drm_drawable_t * hHWDrawable ) -{ - Display * const dpy = (Display *) ndpy; - XExtDisplayInfo *info = find_display (dpy); - xXF86DRICreateDrawableReply rep; - xXF86DRICreateDrawableReq *req; - - TRACE("CreateDrawable..."); - XF86DRICheckExtension (dpy, info, False); - - LockDisplay(dpy); - GetReq(XF86DRICreateDrawable, req); - req->reqType = info->codes->major_opcode; - req->driReqType = X_XF86DRICreateDrawable; - req->screen = screen; - req->drawable = drawable; - if (!_XReply(dpy, (xReply *)&rep, 0, xFalse)) { - UnlockDisplay(dpy); - SyncHandle(); - TRACE("CreateDrawable... return False"); - return False; - } - *hHWDrawable = rep.hHWDrawable; - UnlockDisplay(dpy); - SyncHandle(); - TRACE("CreateDrawable... return True"); - return True; -} - -PUBLIC GLboolean XF86DRIDestroyDrawable( __DRInativeDisplay * ndpy, int screen, - __DRIid drawable ) -{ - Display * const dpy = (Display *) ndpy; - XExtDisplayInfo *info = find_display (dpy); - xXF86DRIDestroyDrawableReq *req; - - TRACE("DestroyDrawable..."); - XF86DRICheckExtension (dpy, info, False); - - LockDisplay(dpy); - GetReq(XF86DRIDestroyDrawable, req); - req->reqType = info->codes->major_opcode; - req->driReqType = X_XF86DRIDestroyDrawable; - req->screen = screen; - req->drawable = drawable; - UnlockDisplay(dpy); - SyncHandle(); - TRACE("DestroyDrawable... return True"); - return True; -} - -PUBLIC Bool XF86DRIGetDrawableInfo(Display* dpy, int screen, Drawable drawable, - unsigned int* index, unsigned int* stamp, - int* X, int* Y, int* W, int* H, - int* numClipRects, drm_clip_rect_t ** pClipRects, - int* backX, int* backY, - int* numBackClipRects, drm_clip_rect_t ** pBackClipRects ) -{ - XExtDisplayInfo *info = find_display (dpy); - xXF86DRIGetDrawableInfoReply rep; - xXF86DRIGetDrawableInfoReq *req; - int total_rects; - - TRACE("GetDrawableInfo..."); - XF86DRICheckExtension (dpy, info, False); - - LockDisplay(dpy); - GetReq(XF86DRIGetDrawableInfo, req); - req->reqType = info->codes->major_opcode; - req->driReqType = X_XF86DRIGetDrawableInfo; - req->screen = screen; - req->drawable = drawable; - - if (!_XReply(dpy, (xReply *)&rep, 1, xFalse)) - { - UnlockDisplay(dpy); - SyncHandle(); - TRACE("GetDrawableInfo... return False"); - return False; - } - *index = rep.drawableTableIndex; - *stamp = rep.drawableTableStamp; - *X = (int)rep.drawableX; - *Y = (int)rep.drawableY; - *W = (int)rep.drawableWidth; - *H = (int)rep.drawableHeight; - *numClipRects = rep.numClipRects; - total_rects = *numClipRects; - - *backX = rep.backX; - *backY = rep.backY; - *numBackClipRects = rep.numBackClipRects; - total_rects += *numBackClipRects; - -#if 0 - /* Because of the fix in Xserver/GL/dri/xf86dri.c, this check breaks - * backwards compatibility (Because of the >> 2 shift) but the fix - * enables multi-threaded apps to work. - */ - if (rep.length != ((((SIZEOF(xXF86DRIGetDrawableInfoReply) - - SIZEOF(xGenericReply) + - total_rects * sizeof(drm_clip_rect_t)) + 3) & ~3) >> 2)) { - _XEatData(dpy, rep.length); - UnlockDisplay(dpy); - SyncHandle(); - TRACE("GetDrawableInfo... return False"); - return False; - } -#endif - - if (*numClipRects) { - int len = sizeof(drm_clip_rect_t) * (*numClipRects); - - *pClipRects = (drm_clip_rect_t *)Xcalloc(len, 1); - if (*pClipRects) - _XRead(dpy, (char*)*pClipRects, len); - } else { - *pClipRects = NULL; - } - - if (*numBackClipRects) { - int len = sizeof(drm_clip_rect_t) * (*numBackClipRects); - - *pBackClipRects = (drm_clip_rect_t *)Xcalloc(len, 1); - if (*pBackClipRects) - _XRead(dpy, (char*)*pBackClipRects, len); - } else { - *pBackClipRects = NULL; - } - - UnlockDisplay(dpy); - SyncHandle(); - TRACE("GetDrawableInfo... return True"); - return True; -} - -PUBLIC Bool XF86DRIGetDeviceInfo(dpy, screen, hFrameBuffer, - fbOrigin, fbSize, fbStride, devPrivateSize, pDevPrivate) - Display* dpy; - int screen; - drm_handle_t * hFrameBuffer; - int* fbOrigin; - int* fbSize; - int* fbStride; - int* devPrivateSize; - void** pDevPrivate; -{ - XExtDisplayInfo *info = find_display (dpy); - xXF86DRIGetDeviceInfoReply rep; - xXF86DRIGetDeviceInfoReq *req; - - TRACE("GetDeviceInfo..."); - XF86DRICheckExtension (dpy, info, False); - - LockDisplay(dpy); - GetReq(XF86DRIGetDeviceInfo, req); - req->reqType = info->codes->major_opcode; - req->driReqType = X_XF86DRIGetDeviceInfo; - req->screen = screen; - if (!_XReply(dpy, (xReply *)&rep, 0, xFalse)) { - UnlockDisplay(dpy); - SyncHandle(); - TRACE("GetDeviceInfo... return False"); - return False; - } - - *hFrameBuffer = rep.hFrameBufferLow; -#ifdef LONG64 - *hFrameBuffer |= ((drm_handle_t)rep.hFrameBufferHigh) << 32; -#endif - - *fbOrigin = rep.framebufferOrigin; - *fbSize = rep.framebufferSize; - *fbStride = rep.framebufferStride; - *devPrivateSize = rep.devPrivateSize; - - if (rep.length) { - if (!(*pDevPrivate = (void *)Xcalloc(rep.devPrivateSize, 1))) { - _XEatData(dpy, ((rep.devPrivateSize+3) & ~3)); - UnlockDisplay(dpy); - SyncHandle(); - TRACE("GetDeviceInfo... return False"); - return False; - } - _XRead(dpy, (char*)*pDevPrivate, rep.devPrivateSize); - } else { - *pDevPrivate = NULL; - } - - UnlockDisplay(dpy); - SyncHandle(); - TRACE("GetDeviceInfo... return True"); - return True; -} - -PUBLIC Bool XF86DRIOpenFullScreen(dpy, screen, drawable) - Display* dpy; - int screen; - Drawable drawable; -{ - /* This function and the underlying X protocol are deprecated. - */ - (void) dpy; - (void) screen; - (void) drawable; - return False; -} - -PUBLIC Bool XF86DRICloseFullScreen(dpy, screen, drawable) - Display* dpy; - int screen; - Drawable drawable; -{ - /* This function and the underlying X protocol are deprecated. - */ - (void) dpy; - (void) screen; - (void) drawable; - return True; -} diff --git a/nx-X11/extras/Mesa/src/glx/x11/clientattrib.c b/nx-X11/extras/Mesa/src/glx/x11/clientattrib.c deleted file mode 100644 index bfb263ced..000000000 --- a/nx-X11/extras/Mesa/src/glx/x11/clientattrib.c +++ /dev/null @@ -1,141 +0,0 @@ -/* $XFree86: xc/lib/GL/glx/clientattrib.c,v 1.5 2001/03/21 16:04:39 dawes Exp $ */ -/* -** License Applicability. Except to the extent portions of this file are -** made subject to an alternative license as permitted in the SGI Free -** Software License B, Version 1.1 (the "License"), the contents of this -** file are subject only to the provisions of the License. You may not use -** this file except in compliance with the License. You may obtain a copy -** of the License at Silicon Graphics, Inc., attn: Legal Services, 1600 -** Amphitheatre Parkway, Mountain View, CA 94043-1351, or at: -** -** http://oss.sgi.com/projects/FreeB -** -** Note that, as provided in the License, the Software is distributed on an -** "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS -** DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND -** CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A -** PARTICULAR PURPOSE, AND NON-INFRINGEMENT. -** -** Original Code. The Original Code is: OpenGL Sample Implementation, -** Version 1.2.1, released January 26, 2000, developed by Silicon Graphics, -** Inc. The Original Code is Copyright (c) 1991-2000 Silicon Graphics, Inc. -** Copyright in any portions created by third parties is as indicated -** elsewhere herein. All Rights Reserved. -** -** Additional Notice Provisions: The application programming interfaces -** established by SGI in conjunction with the Original Code are The -** OpenGL(R) Graphics System: A Specification (Version 1.2.1), released -** April 1, 1999; The OpenGL(R) Graphics System Utility Library (Version -** 1.3), released November 4, 1998; and OpenGL(R) Graphics with the X -** Window System(R) (Version 1.3), released October 19, 1998. This software -** was created using the OpenGL(R) version 1.2.1 Sample Implementation -** published by SGI, but has not been independently verified as being -** compliant with the OpenGL(R) version 1.2.1 Specification. -** -*/ - -#include -#include "glxclient.h" -#include "indirect.h" -#include "indirect_vertex_array.h" - -/*****************************************************************************/ - -static void -do_enable_disable(GLenum array, GLboolean val ) -{ - __GLXcontext *gc = __glXGetCurrentContext(); - __GLXattribute * state = (__GLXattribute *)(gc->client_state_private); - unsigned index = 0; - - if ( array == GL_TEXTURE_COORD_ARRAY ) { - index = __glXGetActiveTextureUnit( state ); - } - - if ( ! __glXSetArrayEnable( state, array, index, val ) ) { - __glXSetError(gc, GL_INVALID_ENUM); - } -} - -void __indirect_glEnableClientState(GLenum array) -{ - do_enable_disable( array, GL_TRUE ); -} - -void __indirect_glDisableClientState(GLenum array) -{ - do_enable_disable( array, GL_FALSE ); -} - -/************************************************************************/ - -void __indirect_glPushClientAttrib(GLuint mask) -{ - __GLXcontext *gc = __glXGetCurrentContext(); - __GLXattribute * state = (__GLXattribute *)(gc->client_state_private); - __GLXattribute **spp = gc->attributes.stackPointer, *sp; - - if (spp < &gc->attributes.stack[__GL_CLIENT_ATTRIB_STACK_DEPTH]) { - if (!(sp = *spp)) { - sp = (__GLXattribute *)Xmalloc(sizeof(__GLXattribute)); - *spp = sp; - } - sp->mask = mask; - gc->attributes.stackPointer = spp + 1; - if (mask & GL_CLIENT_PIXEL_STORE_BIT) { - sp->storePack = state->storePack; - sp->storeUnpack = state->storeUnpack; - } - if (mask & GL_CLIENT_VERTEX_ARRAY_BIT) { - __glXPushArrayState( state ); - } - } else { - __glXSetError(gc, GL_STACK_OVERFLOW); - return; - } -} - -void __indirect_glPopClientAttrib(void) -{ - __GLXcontext *gc = __glXGetCurrentContext(); - __GLXattribute * state = (__GLXattribute *)(gc->client_state_private); - __GLXattribute **spp = gc->attributes.stackPointer, *sp; - GLuint mask; - - if (spp > &gc->attributes.stack[0]) { - --spp; - sp = *spp; - assert(sp != 0); - mask = sp->mask; - gc->attributes.stackPointer = spp; - - if (mask & GL_CLIENT_PIXEL_STORE_BIT) { - state->storePack = sp->storePack; - state->storeUnpack = sp->storeUnpack; - } - if (mask & GL_CLIENT_VERTEX_ARRAY_BIT) { - __glXPopArrayState( state ); - } - - sp->mask = 0; - } else { - __glXSetError(gc, GL_STACK_UNDERFLOW); - return; - } -} - -void __glFreeAttributeState(__GLXcontext *gc) -{ - __GLXattribute *sp, **spp; - - for (spp = &gc->attributes.stack[0]; - spp < &gc->attributes.stack[__GL_CLIENT_ATTRIB_STACK_DEPTH]; - spp++) { - sp = *spp; - if (sp) { - XFree((char *)sp); - } else { - break; - } - } -} diff --git a/nx-X11/extras/Mesa/src/glx/x11/dri_glx.c b/nx-X11/extras/Mesa/src/glx/x11/dri_glx.c deleted file mode 100644 index 516ca508c..000000000 --- a/nx-X11/extras/Mesa/src/glx/x11/dri_glx.c +++ /dev/null @@ -1,461 +0,0 @@ -/************************************************************************** - -Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas. -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 PRECISION INSIGHT 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. - -**************************************************************************/ -/* $XFree86: xc/lib/GL/dri/dri_glx.c,v 1.14 2003/07/16 00:54:00 dawes Exp $ */ - -/* - * Authors: - * Kevin E. Martin - * Brian Paul - * - */ - -#ifdef GLX_DIRECT_RENDERING - -#include -#include -#include -#include -#include "glxclient.h" -#include "xf86dri.h" -#include "sarea.h" -#include -#include -#include "dri_glx.h" -#include -#include - -#ifndef RTLD_NOW -#define RTLD_NOW 0 -#endif -#ifndef RTLD_GLOBAL -#define RTLD_GLOBAL 0 -#endif - - -#ifndef DEFAULT_DRIVER_DIR -/* this is normally defined in the Imakefile */ -#define DEFAULT_DRIVER_DIR "/usr/X11R6/lib/modules/dri" -#endif - -static __DRIdriver *Drivers = NULL; - - -/* - * printf wrappers - */ - -static void InfoMessageF(const char *f, ...) -{ - va_list args; - const char *env; - - if ((env = getenv("LIBGL_DEBUG")) && strstr(env, "verbose")) { - fprintf(stderr, "libGL: "); - va_start(args, f); - vfprintf(stderr, f, args); - va_end(args); - } -} - -static void ErrorMessageF(const char *f, ...) -{ - va_list args; - - if (getenv("LIBGL_DEBUG")) { - fprintf(stderr, "libGL error: "); - va_start(args, f); - vfprintf(stderr, f, args); - va_end(args); - } -} - - -/** - * Extract the ith directory path out of a colon-separated list of paths. No - * more than \c dirLen characters, including the terminating \c NUL, will be - * written to \c dir. - * - * \param index Index of path to extract (starting at zero) - * \param paths The colon-separated list of paths - * \param dirLen Maximum length of result to store in \c dir - * \param dir Buffer to hold the extracted directory path - * - * \returns - * The number of characters that would have been written to \c dir had there - * been enough room. This does not include the terminating \c NUL. When - * extraction fails, zero will be returned. - * - * \todo - * It seems like this function could be rewritten to use \c strchr. - */ -static size_t -ExtractDir(int index, const char *paths, int dirLen, char *dir) -{ - int i, len; - const char *start, *end; - - /* find ith colon */ - start = paths; - i = 0; - while (i < index) { - if (*start == ':') { - i++; - start++; - } - else if (*start == 0) { - /* end of string and couldn't find ith colon */ - dir[0] = 0; - return 0; - } - else { - start++; - } - } - - while (*start == ':') - start++; - - /* find next colon, or end of string */ - end = start + 1; - while (*end != ':' && *end != 0) { - end++; - } - - /* copy string between and into result string */ - len = end - start; - if (len > dirLen - 1) - len = dirLen - 1; - strncpy(dir, start, len); - dir[len] = 0; - - return( end - start ); -} - - -/** - * Versioned name of the expected \c __driCreateNewScreen function. - * - * The version of the last incompatible loader/driver inteface change is - * appended to the name of the \c __driCreateNewScreen function. This - * prevents loaders from trying to load drivers that are too old. - * - * \todo - * Create a macro or something so that this is automatically updated. - */ -static const char createNewScreenName[] = "__driCreateNewScreen_20050727"; - - -/** - * Try to \c dlopen the named driver. - * - * This function adds the "_dri.so" suffix to the driver name and searches the - * directories specified by the \c LIBGL_DRIVERS_PATH environment variable in - * order to find the driver. - * - * \param driverName - a name like "tdfx", "i810", "mga", etc. - * - * \returns - * A handle from \c dlopen, or \c NULL if driver file not found. - */ -static __DRIdriver *OpenDriver(const char *driverName) -{ - char *libPaths = NULL; - char libDir[1000]; - int i; - __DRIdriver *driver; - - /* First, search Drivers list to see if we've already opened this driver */ - for (driver = Drivers; driver; driver = driver->next) { - if (strcmp(driver->name, driverName) == 0) { - /* found it */ - return driver; - } - } - - if (geteuid() == getuid()) { - /* don't allow setuid apps to use LIBGL_DRIVERS_PATH */ - libPaths = getenv("LIBGL_DRIVERS_PATH"); - if (!libPaths) - libPaths = getenv("LIBGL_DRIVERS_DIR"); /* deprecated */ - } - if (!libPaths) - libPaths = DEFAULT_DRIVER_DIR; - - for ( i = 0 ; ExtractDir(i, libPaths, 1000, libDir) != 0 ; i++ ) { - char realDriverName[200]; - void *handle = NULL; - - - /* If TLS support is enabled, try to open the TLS version of the driver - * binary first. If that fails, try the non-TLS version. - */ -#ifdef GLX_USE_TLS - snprintf(realDriverName, 200, "%s/tls/%s_dri.so", libDir, driverName); - InfoMessageF("OpenDriver: trying %s\n", realDriverName); - handle = dlopen(realDriverName, RTLD_NOW | RTLD_GLOBAL); -#endif - - if ( handle == NULL ) { - snprintf(realDriverName, 200, "%s/%s_dri.so", libDir, driverName); - InfoMessageF("OpenDriver: trying %s\n", realDriverName); - handle = dlopen(realDriverName, RTLD_NOW | RTLD_GLOBAL); - } - - if ( handle != NULL ) { - /* allocate __DRIdriver struct */ - driver = (__DRIdriver *) Xmalloc(sizeof(__DRIdriver)); - if (!driver) - return NULL; /* out of memory! */ - /* init the struct */ - driver->name = __glXstrdup(driverName); - if (!driver->name) { - Xfree(driver); - return NULL; /* out of memory! */ - } - - driver->createNewScreenFunc = (PFNCREATENEWSCREENFUNC) - dlsym(handle, createNewScreenName); - - if ( driver->createNewScreenFunc == NULL ) { - /* If the driver doesn't have this symbol then something's - * really, really wrong. - */ - ErrorMessageF("%s not defined in %s_dri.so!\n" - "Your driver may be too old for this libGL.\n", - createNewScreenName, driverName); - Xfree(driver); - dlclose(handle); - continue; - } - driver->handle = handle; - /* put at head of linked list */ - driver->next = Drivers; - Drivers = driver; - return driver; - } - else { - ErrorMessageF("dlopen %s failed (%s)\n", realDriverName, dlerror()); - } - } - - ErrorMessageF("unable to find driver: %s_dri.so\n", driverName); - return NULL; -} - - -/* - * Given a display pointer and screen number, determine the name of - * the DRI driver for the screen. (I.e. "r128", "tdfx", etc). - * Return True for success, False for failure. - */ -static Bool GetDriverName(Display *dpy, int scrNum, char **driverName) -{ - int directCapable; - Bool b; - int driverMajor, driverMinor, driverPatch; - - *driverName = NULL; - - if (!XF86DRIQueryDirectRenderingCapable(dpy, scrNum, &directCapable)) { - ErrorMessageF("XF86DRIQueryDirectRenderingCapable failed\n"); - return False; - } - if (!directCapable) { - ErrorMessageF("XF86DRIQueryDirectRenderingCapable returned false\n"); - return False; - } - - b = XF86DRIGetClientDriverName(dpy, scrNum, &driverMajor, &driverMinor, - &driverPatch, driverName); - if (!b) { - ErrorMessageF("Cannot determine driver name for screen %d\n", scrNum); - return False; - } - - InfoMessageF("XF86DRIGetClientDriverName: %d.%d.%d %s (screen %d)\n", - driverMajor, driverMinor, driverPatch, *driverName, scrNum); - - return True; -} - - -/* - * Given a display pointer and screen number, return a __DRIdriver handle. - * Return NULL if anything goes wrong. - */ -__DRIdriver *driGetDriver(Display *dpy, int scrNum) -{ - char *driverName; - if (GetDriverName(dpy, scrNum, &driverName)) { - __DRIdriver *ret; - ret = OpenDriver(driverName); - if (driverName) - Xfree(driverName); - return ret; - } - return NULL; -} - - -/* - * Exported function for querying the DRI driver for a given screen. - * - * The returned char pointer points to a static array that will be - * overwritten by subsequent calls. - */ -const char *glXGetScreenDriver (Display *dpy, int scrNum) { - static char ret[32]; - char *driverName; - if (GetDriverName(dpy, scrNum, &driverName)) { - int len; - if (!driverName) - return NULL; - len = strlen (driverName); - if (len >= 31) - return NULL; - memcpy (ret, driverName, len+1); - Xfree(driverName); - return ret; - } - return NULL; -} - - -/* - * Exported function for obtaining a driver's option list (UTF-8 encoded XML). - * - * The returned char pointer points directly into the driver. Therefore - * it should be treated as a constant. - * - * If the driver was not found or does not support configuration NULL is - * returned. - * - * Note: The driver remains opened after this function returns. - */ -const char *glXGetDriverConfig (const char *driverName) { - __DRIdriver *driver = OpenDriver (driverName); - if (driver) - return dlsym (driver->handle, "__driConfigOptions"); - else - return NULL; -} - - -/* This function isn't currently used. - */ -static void driDestroyDisplay(Display *dpy, void *private) -{ - __DRIdisplayPrivate *pdpyp = (__DRIdisplayPrivate *)private; - - if (pdpyp) { - const int numScreens = ScreenCount(dpy); - int i; - for (i = 0; i < numScreens; i++) { - if (pdpyp->libraryHandles[i]) - dlclose(pdpyp->libraryHandles[i]); - } - Xfree(pdpyp->libraryHandles); - Xfree(pdpyp); - } -} - - -/* - * Allocate, initialize and return a __DRIdisplayPrivate object. - * This is called from __glXInitialize() when we are given a new - * display pointer. - */ -void *driCreateDisplay(Display *dpy, __DRIdisplay *pdisp) -{ - const int numScreens = ScreenCount(dpy); - __DRIdisplayPrivate *pdpyp; - int eventBase, errorBase; - int major, minor, patch; - int scrn; - - /* Initialize these fields to NULL in case we fail. - * If we don't do this we may later get segfaults trying to free random - * addresses when the display is closed. - */ - pdisp->private = NULL; - pdisp->destroyDisplay = NULL; - - if (!XF86DRIQueryExtension(dpy, &eventBase, &errorBase)) { - return NULL; - } - - if (!XF86DRIQueryVersion(dpy, &major, &minor, &patch)) { - return NULL; - } - - pdpyp = (__DRIdisplayPrivate *)Xmalloc(sizeof(__DRIdisplayPrivate)); - if (!pdpyp) { - return NULL; - } - - pdpyp->driMajor = major; - pdpyp->driMinor = minor; - pdpyp->driPatch = patch; - - pdisp->destroyDisplay = driDestroyDisplay; - - /* allocate array of pointers to createNewScreen funcs */ - pdisp->createNewScreen = (PFNCREATENEWSCREENFUNC *) - Xmalloc(numScreens * sizeof(void *)); - if (!pdisp->createNewScreen) { - Xfree(pdpyp); - return NULL; - } - - /* allocate array of library handles */ - pdpyp->libraryHandles = (void **) Xmalloc(numScreens * sizeof(void*)); - if (!pdpyp->libraryHandles) { - Xfree(pdisp->createNewScreen); - Xfree(pdpyp); - return NULL; - } - - /* dynamically discover DRI drivers for all screens, saving each - * driver's "__driCreateScreen" function pointer. That's the bootstrap - * entrypoint for all DRI drivers. - */ - for (scrn = 0; scrn < numScreens; scrn++) { - __DRIdriver *driver = driGetDriver(dpy, scrn); - if (driver) { - pdisp->createNewScreen[scrn] = driver->createNewScreenFunc; - pdpyp->libraryHandles[scrn] = driver->handle; - } - else { - pdisp->createNewScreen[scrn] = NULL; - pdpyp->libraryHandles[scrn] = NULL; - } - } - - return (void *)pdpyp; -} - -#endif /* GLX_DIRECT_RENDERING */ diff --git a/nx-X11/extras/Mesa/src/glx/x11/dri_glx.h b/nx-X11/extras/Mesa/src/glx/x11/dri_glx.h deleted file mode 100644 index 75561685c..000000000 --- a/nx-X11/extras/Mesa/src/glx/x11/dri_glx.h +++ /dev/null @@ -1,61 +0,0 @@ -/************************************************************************** - -Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas. -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 PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR -ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -**************************************************************************/ - -/* - * Authors: - * Kevin E. Martin - * Brian Paul - * - */ - -#ifndef _DRI_GLX_H_ -#define _DRI_GLX_H_ - -#ifdef GLX_DIRECT_RENDERING - -struct __DRIdisplayPrivateRec { - /* - ** XFree86-DRI version information - */ - int driMajor; - int driMinor; - int driPatch; - - /* - ** Array of library handles [indexed by screen number] - */ - void **libraryHandles; -}; - -typedef struct __DRIdisplayPrivateRec __DRIdisplayPrivate; -typedef struct __DRIscreenPrivateRec __DRIscreenPrivate; -typedef struct __DRIvisualPrivateRec __DRIvisualPrivate; -typedef struct __DRIcontextPrivateRec __DRIcontextPrivate; -typedef struct __DRIdrawablePrivateRec __DRIdrawablePrivate; - -#endif -#endif /* _DRI_GLX_H_ */ diff --git a/nx-X11/extras/Mesa/src/glx/x11/eval.c b/nx-X11/extras/Mesa/src/glx/x11/eval.c deleted file mode 100644 index 0f94e6da6..000000000 --- a/nx-X11/extras/Mesa/src/glx/x11/eval.c +++ /dev/null @@ -1,132 +0,0 @@ -/* $XFree86$ */ -/* -** License Applicability. Except to the extent portions of this file are -** made subject to an alternative license as permitted in the SGI Free -** Software License B, Version 1.1 (the "License"), the contents of this -** file are subject only to the provisions of the License. You may not use -** this file except in compliance with the License. You may obtain a copy -** of the License at Silicon Graphics, Inc., attn: Legal Services, 1600 -** Amphitheatre Parkway, Mountain View, CA 94043-1351, or at: -** -** http://oss.sgi.com/projects/FreeB -** -** Note that, as provided in the License, the Software is distributed on an -** "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS -** DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND -** CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A -** PARTICULAR PURPOSE, AND NON-INFRINGEMENT. -** -** Original Code. The Original Code is: OpenGL Sample Implementation, -** Version 1.2.1, released January 26, 2000, developed by Silicon Graphics, -** Inc. The Original Code is Copyright (c) 1991-2000 Silicon Graphics, Inc. -** Copyright in any portions created by third parties is as indicated -** elsewhere herein. All Rights Reserved. -** -** Additional Notice Provisions: The application programming interfaces -** established by SGI in conjunction with the Original Code are The -** OpenGL(R) Graphics System: A Specification (Version 1.2.1), released -** April 1, 1999; The OpenGL(R) Graphics System Utility Library (Version -** 1.3), released November 4, 1998; and OpenGL(R) Graphics with the X -** Window System(R) (Version 1.3), released October 19, 1998. This software -** was created using the OpenGL(R) version 1.2.1 Sample Implementation -** published by SGI, but has not been independently verified as being -** compliant with the OpenGL(R) version 1.2.1 Specification. -** -*/ - -#include "packrender.h" - -/* -** Routines to pack evaluator maps into the transport buffer. Maps are -** allowed to have extra arbitrary data, so these routines extract just -** the information that the GL needs. -*/ - -void __glFillMap1f(GLint k, GLint order, GLint stride, - const GLfloat *points, GLubyte *pc) -{ - if (stride == k) { - /* Just copy the data */ - __GLX_PUT_FLOAT_ARRAY(0, points, order * k); - } else { - GLint i; - - for (i = 0; i < order; i++) { - __GLX_PUT_FLOAT_ARRAY(0, points, k); - points += stride; - pc += k * __GLX_SIZE_FLOAT32; - } - } -} - -void __glFillMap1d(GLint k, GLint order, GLint stride, - const GLdouble *points, GLubyte *pc) -{ - if (stride == k) { - /* Just copy the data */ - __GLX_PUT_DOUBLE_ARRAY(0, points, order * k); - } else { - GLint i; - for (i = 0; i < order; i++) { - __GLX_PUT_DOUBLE_ARRAY(0, points, k); - points += stride; - pc += k * __GLX_SIZE_FLOAT64; - } - } -} - -void __glFillMap2f(GLint k, GLint majorOrder, GLint minorOrder, - GLint majorStride, GLint minorStride, - const GLfloat *points, GLfloat *data) -{ - GLint i, j, x; - - if ((minorStride == k) && (majorStride == minorOrder*k)) { - /* Just copy the data */ - __GLX_MEM_COPY(data, points, majorOrder * majorStride * - __GLX_SIZE_FLOAT32); - return; - } - for (i = 0; i < majorOrder; i++) { - for (j = 0; j < minorOrder; j++) { - for (x = 0; x < k; x++) { - data[x] = points[x]; - } - points += minorStride; - data += k; - } - points += majorStride - minorStride * minorOrder; - } -} - -void __glFillMap2d(GLint k, GLint majorOrder, GLint minorOrder, - GLint majorStride, GLint minorStride, - const GLdouble *points, GLdouble *data) -{ - int i,j,x; - - if ((minorStride == k) && (majorStride == minorOrder*k)) { - /* Just copy the data */ - __GLX_MEM_COPY(data, points, majorOrder * majorStride * - __GLX_SIZE_FLOAT64); - return; - } - -#ifdef __GLX_ALIGN64 - x = k * __GLX_SIZE_FLOAT64; -#endif - for (i = 0; i - */ - -#include -#include "glxclient.h" -#include -#include -#include -#include -#include "glapi.h" -#include "glxextensions.h" -#include "glcontextmodes.h" -#include "glheader.h" - -static void ChangeDrawableAttribute( Display * dpy, GLXDrawable drawable, - const CARD32 * attribs, size_t num_attribs ); - -static void DestroyPbuffer( Display * dpy, GLXDrawable drawable ); - -static GLXDrawable CreatePbuffer( Display *dpy, - const __GLcontextModes * fbconfig, unsigned int width, unsigned int height, - const int *attrib_list, GLboolean size_in_attribs ); - -static int GetDrawableAttribute( Display *dpy, GLXDrawable drawable, - int attribute, unsigned int *value ); - - -/** - * Change a drawable's attribute. - * - * This function is used to implement \c glXSelectEvent and - * \c glXSelectEventSGIX. - * - * \note - * This function dynamically determines whether to use the SGIX_pbuffer - * version of the protocol or the GLX 1.3 version of the protocol. - * - * \todo - * This function needs to be modified to work with direct-rendering drivers. - */ -static void -ChangeDrawableAttribute( Display * dpy, GLXDrawable drawable, - const CARD32 * attribs, size_t num_attribs ) -{ - __GLXdisplayPrivate *priv = __glXInitialize(dpy); - CARD32 * output; - - - if ( (dpy == NULL) || (drawable == 0) ) { - return; - } - - - LockDisplay(dpy); - - if ( (priv->majorVersion > 1) || (priv->minorVersion >= 3) ) { - xGLXChangeDrawableAttributesReq *req; - - GetReqExtra( GLXChangeDrawableAttributes, 8 + (8 * num_attribs), req ); - output = (CARD32 *) (req + 1); - - req->reqType = __glXSetupForCommand(dpy); - req->glxCode = X_GLXChangeDrawableAttributes; - req->drawable = drawable; - req->numAttribs = (CARD32) num_attribs; - } - else { - xGLXVendorPrivateWithReplyReq *vpreq; - - GetReqExtra( GLXVendorPrivateWithReply, 4 + (8 * num_attribs), vpreq ); - output = (CARD32 *) (vpreq + 1); - - vpreq->reqType = __glXSetupForCommand(dpy); - vpreq->glxCode = X_GLXVendorPrivateWithReply; - vpreq->vendorCode = X_GLXvop_ChangeDrawableAttributesSGIX; - - output[0] = (CARD32) drawable; - output++; - } - - (void) memcpy( output, attribs, sizeof( CARD32 ) * 2 * num_attribs ); - - UnlockDisplay(dpy); - SyncHandle(); - - return; -} - - -/** - * Destroy a pbuffer. - * - * This function is used to implement \c glXDestroyPbuffer and - * \c glXDestroyGLXPbufferSGIX. - * - * \note - * This function dynamically determines whether to use the SGIX_pbuffer - * version of the protocol or the GLX 1.3 version of the protocol. - * - * \todo - * This function needs to be modified to work with direct-rendering drivers. - */ -static void -DestroyPbuffer( Display * dpy, GLXDrawable drawable ) -{ - __GLXdisplayPrivate *priv = __glXInitialize(dpy); - - if ( (dpy == NULL) || (drawable == 0) ) { - return; - } - - - LockDisplay(dpy); - - if ( (priv->majorVersion > 1) || (priv->minorVersion >= 3) ) { - xGLXDestroyPbufferReq * req; - - GetReqExtra( GLXDestroyPbuffer, 4, req ); - req->reqType = __glXSetupForCommand(dpy); - req->glxCode = X_GLXDestroyPbuffer; - req->pbuffer = (GLXPbuffer) drawable; - } - else { - xGLXVendorPrivateWithReplyReq *vpreq; - CARD32 * data; - - GetReqExtra( GLXVendorPrivateWithReply, 4, vpreq ); - data = (CARD32 *) (vpreq + 1); - - data[0] = (CARD32) drawable; - - vpreq->reqType = __glXSetupForCommand(dpy); - vpreq->glxCode = X_GLXVendorPrivateWithReply; - vpreq->vendorCode = X_GLXvop_DestroyGLXPbufferSGIX; - } - - UnlockDisplay(dpy); - SyncHandle(); - - return; -} - - -/** - * Get a drawable's attribute. - * - * This function is used to implement \c glXGetSelectedEvent and - * \c glXGetSelectedEventSGIX. - * - * \note - * This function dynamically determines whether to use the SGIX_pbuffer - * version of the protocol or the GLX 1.3 version of the protocol. - * - * \todo - * The number of attributes returned is likely to be small, probably less than - * 10. Given that, this routine should try to use an array on the stack to - * capture the reply rather than always calling Xmalloc. - * - * \todo - * This function needs to be modified to work with direct-rendering drivers. - */ -static int -GetDrawableAttribute( Display *dpy, GLXDrawable drawable, - int attribute, unsigned int *value ) -{ - __GLXdisplayPrivate *priv = __glXInitialize(dpy); - xGLXGetDrawableAttributesReply reply; - CARD32 * data; - unsigned int length; - unsigned int i; - unsigned int num_attributes; - GLboolean use_glx_1_3 = ((priv->majorVersion > 1) - || (priv->minorVersion >= 3)); - - - if ( (dpy == NULL) || (drawable == 0) ) { - return 0; - } - - - LockDisplay(dpy); - - if ( use_glx_1_3 ) { - xGLXGetDrawableAttributesReq *req; - - GetReqExtra( GLXGetDrawableAttributes, 4, req ); - req->reqType = __glXSetupForCommand(dpy); - req->glxCode = X_GLXGetDrawableAttributes; - req->drawable = drawable; - } - else { - xGLXVendorPrivateWithReplyReq *vpreq; - - GetReqExtra( GLXVendorPrivateWithReply, 4, vpreq ); - data = (CARD32 *) (vpreq + 1); - data[0] = (CARD32) drawable; - - vpreq->reqType = __glXSetupForCommand(dpy); - vpreq->glxCode = X_GLXVendorPrivateWithReply; - vpreq->vendorCode = X_GLXvop_GetDrawableAttributesSGIX; - } - - _XReply(dpy, (xReply*) &reply, 0, False); - - length = reply.length; - num_attributes = (use_glx_1_3) ? reply.numAttribs : length / 2; - data = (CARD32 *) Xmalloc( length * sizeof(CARD32) ); - if ( data == NULL ) { - /* Throw data on the floor */ - _XEatData(dpy, length); - } else { - _XRead(dpy, (char *)data, length * sizeof(CARD32) ); - } - - UnlockDisplay(dpy); - SyncHandle(); - - - /* Search the set of returned attributes for the attribute requested by - * the caller. - */ - - for ( i = 0 ; i < num_attributes ; i++ ) { - if ( data[i*2] == attribute ) { - *value = data[ (i*2) + 1 ]; - break; - } - } - - Xfree( data ); - - return 0; -} - - -/** - * Create a non-pbuffer GLX drawable. - * - * \todo - * This function needs to be modified to work with direct-rendering drivers. - */ -static GLXDrawable -CreateDrawable( Display *dpy, const __GLcontextModes * fbconfig, - Drawable drawable, const int *attrib_list, - CARD8 glxCode ) -{ - xGLXCreateWindowReq * req; - CARD32 * data; - unsigned int i; - - i = 0; - if (attrib_list) { - while (attrib_list[i * 2] != None) - i++; - } - - LockDisplay(dpy); - GetReqExtra( GLXCreateWindow, 8 * i, req ); - data = (CARD32 *) (req + 1); - - req->reqType = __glXSetupForCommand(dpy); - req->glxCode = glxCode; - req->screen = (CARD32) fbconfig->screen; - req->fbconfig = fbconfig->fbconfigID; - req->window = (GLXPbuffer) drawable; - req->glxwindow = (GLXWindow) XAllocID(dpy); - req->numAttribs = (CARD32) i; - - memcpy( data, attrib_list, 8 * i ); - - UnlockDisplay(dpy); - SyncHandle(); - - return (GLXDrawable)req->glxwindow; -} - - -/** - * Destroy a non-pbuffer GLX drawable. - * - * \todo - * This function needs to be modified to work with direct-rendering drivers. - */ -static void -DestroyDrawable( Display * dpy, GLXDrawable drawable, CARD32 glxCode ) -{ - xGLXDestroyPbufferReq * req; - - if ( (dpy == NULL) || (drawable == 0) ) { - return; - } - - - LockDisplay(dpy); - - GetReqExtra( GLXDestroyPbuffer, 4, req ); - req->reqType = __glXSetupForCommand(dpy); - req->glxCode = glxCode; - req->pbuffer = (GLXPbuffer) drawable; - - UnlockDisplay(dpy); - SyncHandle(); - - return; -} - - -/** - * Create a pbuffer. - * - * This function is used to implement \c glXCreatePbuffer and - * \c glXCreateGLXPbufferSGIX. - * - * \note - * This function dynamically determines whether to use the SGIX_pbuffer - * version of the protocol or the GLX 1.3 version of the protocol. - * - * \todo - * This function needs to be modified to work with direct-rendering drivers. - */ -static GLXDrawable -CreatePbuffer( Display *dpy, const __GLcontextModes * fbconfig, - unsigned int width, unsigned int height, - const int *attrib_list, GLboolean size_in_attribs ) -{ - __GLXdisplayPrivate *priv = __glXInitialize(dpy); - GLXDrawable id = 0; - CARD32 * data; - unsigned int i; - - i = 0; - if (attrib_list) { - while (attrib_list[i * 2]) - i++; - } - - LockDisplay(dpy); - id = XAllocID(dpy); - - if ( (priv->majorVersion > 1) || (priv->minorVersion >= 3) ) { - xGLXCreatePbufferReq * req; - unsigned int extra = (size_in_attribs) ? 0 : 2; - - GetReqExtra( GLXCreatePbuffer, (8 * (i + extra)), req ); - data = (CARD32 *) (req + 1); - - req->reqType = __glXSetupForCommand(dpy); - req->glxCode = X_GLXCreatePbuffer; - req->screen = (CARD32) fbconfig->screen; - req->fbconfig = fbconfig->fbconfigID; - req->pbuffer = (GLXPbuffer) id; - req->numAttribs = (CARD32) (i + extra); - - if ( ! size_in_attribs ) { - data[(2 * i) + 0] = GLX_PBUFFER_WIDTH; - data[(2 * i) + 1] = width; - data[(2 * i) + 2] = GLX_PBUFFER_HEIGHT; - data[(2 * i) + 3] = height; - data += 4; - } - } - else { - xGLXVendorPrivateReq *vpreq; - - GetReqExtra( GLXVendorPrivate, 20 + (8 * i), vpreq ); - data = (CARD32 *) (vpreq + 1); - - vpreq->reqType = __glXSetupForCommand(dpy); - vpreq->glxCode = X_GLXVendorPrivate; - vpreq->vendorCode = X_GLXvop_CreateGLXPbufferSGIX; - - data[0] = (CARD32) fbconfig->screen; - data[1] = (CARD32) fbconfig->fbconfigID; - data[2] = (CARD32) id; - data[3] = (CARD32) width; - data[4] = (CARD32) height; - data += 5; - } - - (void) memcpy( data, attrib_list, sizeof(CARD32) * 2 * i ); - - UnlockDisplay(dpy); - SyncHandle(); - - return id; -} - - -/** - * Create a new pbuffer. - */ -PUBLIC GLXPbufferSGIX -glXCreateGLXPbufferSGIX(Display *dpy, GLXFBConfigSGIX config, - unsigned int width, unsigned int height, - int *attrib_list) -{ - return (GLXPbufferSGIX) CreatePbuffer( dpy, (__GLcontextModes *) config, - width, height, - attrib_list, GL_FALSE ); -} - - -/** - * Create a new pbuffer. - */ -PUBLIC GLXPbuffer -glXCreatePbuffer(Display *dpy, GLXFBConfig config, const int *attrib_list) -{ - return (GLXPbuffer) CreatePbuffer( dpy, (__GLcontextModes *) config, - 0, 0, - attrib_list, GL_TRUE ); -} - - -/** - * Destroy an existing pbuffer. - */ -PUBLIC void -glXDestroyPbuffer(Display *dpy, GLXPbuffer pbuf) -{ - DestroyPbuffer( dpy, pbuf ); -} - - -/** - * Query an attribute of a drawable. - */ -PUBLIC void -glXQueryDrawable(Display *dpy, GLXDrawable drawable, - int attribute, unsigned int *value) -{ - GetDrawableAttribute( dpy, drawable, attribute, value ); -} - - -/** - * Query an attribute of a pbuffer. - */ -PUBLIC int -glXQueryGLXPbufferSGIX(Display *dpy, GLXPbufferSGIX drawable, - int attribute, unsigned int *value) -{ - return GetDrawableAttribute( dpy, drawable, attribute, value ); -} - - -/** - * Select the event mask for a drawable. - */ -PUBLIC void -glXSelectEvent(Display *dpy, GLXDrawable drawable, unsigned long mask) -{ - CARD32 attribs[2]; - - attribs[0] = (CARD32) GLX_EVENT_MASK; - attribs[1] = (CARD32) mask; - - ChangeDrawableAttribute( dpy, drawable, attribs, 1 ); -} - - -/** - * Get the selected event mask for a drawable. - */ -PUBLIC void -glXGetSelectedEvent(Display *dpy, GLXDrawable drawable, unsigned long *mask) -{ - unsigned int value; - - - /* The non-sense with value is required because on LP64 platforms - * sizeof(unsigned int) != sizeof(unsigned long). On little-endian - * we could just type-cast the pointer, but why? - */ - - GetDrawableAttribute( dpy, drawable, GLX_EVENT_MASK_SGIX, & value ); - *mask = value; -} - - -PUBLIC GLXPixmap -glXCreatePixmap( Display *dpy, GLXFBConfig config, Pixmap pixmap, - const int *attrib_list ) -{ - return CreateDrawable( dpy, (__GLcontextModes *) config, - (Drawable) pixmap, attrib_list, - X_GLXCreatePixmap ); -} - - -PUBLIC GLXWindow -glXCreateWindow( Display *dpy, GLXFBConfig config, Window win, - const int *attrib_list ) -{ - return CreateDrawable( dpy, (__GLcontextModes *) config, - (Drawable) win, attrib_list, - X_GLXCreateWindow ); -} - - -PUBLIC void -glXDestroyPixmap(Display *dpy, GLXPixmap pixmap) -{ - DestroyDrawable( dpy, (GLXDrawable) pixmap, X_GLXDestroyPixmap ); -} - - -PUBLIC void -glXDestroyWindow(Display *dpy, GLXWindow win) -{ - DestroyDrawable( dpy, (GLXDrawable) win, X_GLXDestroyWindow ); -} - - -PUBLIC GLX_ALIAS_VOID(glXDestroyGLXPbufferSGIX, - (Display *dpy, GLXPbufferSGIX pbuf), - (dpy, pbuf), - glXDestroyPbuffer) - -PUBLIC GLX_ALIAS_VOID(glXSelectEventSGIX, - (Display *dpy, GLXDrawable drawable, unsigned long mask), - (dpy, drawable, mask), - glXSelectEvent) - -PUBLIC GLX_ALIAS_VOID(glXGetSelectedEventSGIX, - (Display *dpy, GLXDrawable drawable, unsigned long *mask), - (dpy, drawable, mask), - glXGetSelectedEvent) diff --git a/nx-X11/extras/Mesa/src/glx/x11/glx_query.c b/nx-X11/extras/Mesa/src/glx/x11/glx_query.c deleted file mode 100644 index e93cd2afd..000000000 --- a/nx-X11/extras/Mesa/src/glx/x11/glx_query.c +++ /dev/null @@ -1,102 +0,0 @@ -/* - * (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 - * 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. - */ - -/** - * \file glx_query.c - * Generic utility functions to query internal data from the server. - * - * \author Ian Romanick - */ - -#include "glxclient.h" - -/** - * GLX protocol structure for the ficticious "GXLGenericGetString" request. - * - * This is a non-existant protocol packet. It just so happens that all of - * the real protocol packets used to request a string from the server have - * an identical binary layout. The only difference between them is the - * meaning of the \c for_whom field and the value of the \c glxCode. - */ -typedef struct GLXGenericGetString { - CARD8 reqType; - CARD8 glxCode; - CARD16 length B16; - CARD32 for_whom B32; - CARD32 name B32; -} xGLXGenericGetStringReq; - -/* These defines are only needed to make the GetReq macro happy. - */ -#define sz_xGLXGenericGetStringReq 12 -#define X_GLXGenericGetString 0 - -/** - * Query the Server GLX string and cache it in the display private. - * This routine will allocate the necessay space for the string. - */ -char * -__glXGetStringFromServer( Display * dpy, int opcode, CARD32 glxCode, - CARD32 for_whom, CARD32 name ) -{ - xGLXGenericGetStringReq *req; - xGLXSingleReply reply; - int length; - int numbytes; - char * buf; - - - LockDisplay( dpy ); - - - /* All of the GLX protocol requests for getting a string from the server - * look the same. The exact meaning of the for_whom field is usually - * either the screen number (for glXQueryServerString) or the context tag - * (for GLXSingle). - */ - - GetReq( GLXGenericGetString, req ); - req->reqType = opcode; - req->glxCode = glxCode; - req->for_whom = for_whom; - req->name = name; - - _XReply( dpy, (xReply *) & reply, 0, False ); - - length = reply.length * 4; - numbytes = reply.size; - - buf = (char *) Xmalloc( numbytes ); - if ( buf != NULL ) { - _XRead( dpy, buf, numbytes ); - length -= numbytes; - } - - _XEatData( dpy, length ); - - UnlockDisplay( dpy ); - SyncHandle(); - - return buf; -} diff --git a/nx-X11/extras/Mesa/src/glx/x11/glx_texture_compression.c b/nx-X11/extras/Mesa/src/glx/x11/glx_texture_compression.c deleted file mode 100644 index 567685801..000000000 --- a/nx-X11/extras/Mesa/src/glx/x11/glx_texture_compression.c +++ /dev/null @@ -1,347 +0,0 @@ -/* - * (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 glx_texture_compression.c - * Contains the routines required to implement GLX protocol for - * ARB_texture_compression and related extensions. - * - * \sa http://oss.sgi.com/projects/ogl-sample/registry/ARB/texture_compression.txt - * - * \author Ian Romanick - */ - -#include "packrender.h" -#include "packsingle.h" -#include "indirect.h" - -#include - - -void -__indirect_glGetCompressedTexImageARB( GLenum target, GLint level, - GLvoid * img ) -{ - __GLX_SINGLE_DECLARE_VARIABLES(); - xGLXGetTexImageReply reply; - size_t image_bytes; - - __GLX_SINGLE_LOAD_VARIABLES(); - __GLX_SINGLE_BEGIN( X_GLsop_GetCompressedTexImage, 8 ); - __GLX_SINGLE_PUT_LONG( 0, target ); - __GLX_SINGLE_PUT_LONG( 4, level ); - __GLX_SINGLE_READ_XREPLY(); - - image_bytes = reply.width; - assert( image_bytes <= ((4 * reply.length) - 0) ); - assert( image_bytes >= ((4 * reply.length) - 3) ); - - if ( image_bytes != 0 ) { - _XRead( dpy, (char *) img, image_bytes ); - if ( image_bytes < (4 * reply.length) ) { - _XEatData( dpy, (4 * reply.length) - image_bytes ); - } - } - - __GLX_SINGLE_END(); -} - - -/** - * Internal function used for \c glCompressedTexImage1D and - * \c glCompressedTexImage2D. - */ -static void -CompressedTexImage1D2D( GLenum target, GLint level, - GLenum internal_format, - GLsizei width, GLsizei height, - GLint border, GLsizei image_size, - const GLvoid *data, CARD32 rop ) -{ - __GLX_DECLARE_VARIABLES(); - - __GLX_LOAD_VARIABLES(); - if ( gc->currentDpy == NULL ) { - return; - } - - if ( (target == GL_PROXY_TEXTURE_1D) - || (target == GL_PROXY_TEXTURE_2D) - || (target == GL_PROXY_TEXTURE_CUBE_MAP) ) { - compsize = 0; - } - else { - compsize = image_size; - } - - cmdlen = __GLX_PAD( __GLX_COMPRESSED_TEXIMAGE_CMD_HDR_SIZE - + compsize ); - if ( cmdlen <= gc->maxSmallRenderCommandSize ) { - __GLX_BEGIN_VARIABLE( rop, cmdlen ); - __GLX_PUT_LONG( 4, target ); - __GLX_PUT_LONG( 8, level ); - __GLX_PUT_LONG( 12, internal_format ); - __GLX_PUT_LONG( 16, width ); - __GLX_PUT_LONG( 20, height ); - __GLX_PUT_LONG( 24, border ); - __GLX_PUT_LONG( 28, image_size ); - if ( compsize != 0 ) { - __GLX_PUT_CHAR_ARRAY( __GLX_COMPRESSED_TEXIMAGE_CMD_HDR_SIZE, - data, image_size ); - } - __GLX_END( cmdlen ); - } - else { - assert( compsize != 0 ); - - __GLX_BEGIN_VARIABLE_LARGE( rop, cmdlen + 4 ); - __GLX_PUT_LONG( 8, target ); - __GLX_PUT_LONG( 12, level ); - __GLX_PUT_LONG( 16, internal_format ); - __GLX_PUT_LONG( 20, width ); - __GLX_PUT_LONG( 24, height ); - __GLX_PUT_LONG( 28, border ); - __GLX_PUT_LONG( 32, image_size ); - __glXSendLargeCommand( gc, gc->pc, - __GLX_COMPRESSED_TEXIMAGE_CMD_HDR_SIZE + 4, - data, image_size ); - } -} - - -/** - * Internal function used for \c glCompressedTexSubImage1D and - * \c glCompressedTexSubImage2D. - */ -static void -CompressedTexSubImage1D2D( GLenum target, GLint level, - GLsizei xoffset, GLsizei yoffset, - GLsizei width, GLsizei height, - GLenum format, GLsizei image_size, - const GLvoid *data, CARD32 rop ) -{ - __GLX_DECLARE_VARIABLES(); - - __GLX_LOAD_VARIABLES(); - if ( gc->currentDpy == NULL ) { - return; - } - - if ( target == GL_PROXY_TEXTURE_3D ) { - compsize = 0; - } - else { - compsize = image_size; - } - - cmdlen = __GLX_PAD( __GLX_COMPRESSED_TEXSUBIMAGE_CMD_HDR_SIZE - + compsize ); - if ( cmdlen <= gc->maxSmallRenderCommandSize ) { - __GLX_BEGIN_VARIABLE( rop, cmdlen ); - __GLX_PUT_LONG( 4, target ); - __GLX_PUT_LONG( 8, level ); - __GLX_PUT_LONG( 12, xoffset ); - __GLX_PUT_LONG( 16, yoffset ); - __GLX_PUT_LONG( 20, width ); - __GLX_PUT_LONG( 24, height ); - __GLX_PUT_LONG( 28, format ); - __GLX_PUT_LONG( 32, image_size ); - if ( compsize != 0 ) { - __GLX_PUT_CHAR_ARRAY( __GLX_COMPRESSED_TEXSUBIMAGE_CMD_HDR_SIZE, - data, image_size ); - } - __GLX_END( cmdlen ); - } - else { - assert( compsize != 0 ); - - __GLX_BEGIN_VARIABLE_LARGE( rop, cmdlen + 4 ); - __GLX_PUT_LONG( 8, target ); - __GLX_PUT_LONG( 12, level ); - __GLX_PUT_LONG( 16, xoffset ); - __GLX_PUT_LONG( 20, yoffset ); - __GLX_PUT_LONG( 24, width ); - __GLX_PUT_LONG( 28, height ); - __GLX_PUT_LONG( 32, format ); - __GLX_PUT_LONG( 36, image_size ); - __glXSendLargeCommand( gc, gc->pc, - __GLX_COMPRESSED_TEXSUBIMAGE_CMD_HDR_SIZE + 4, - data, image_size ); - } -} - - -void -__indirect_glCompressedTexImage1DARB( GLenum target, GLint level, - GLenum internal_format, GLsizei width, - GLint border, GLsizei image_size, - const GLvoid *data ) -{ - CompressedTexImage1D2D( target, level, internal_format, width, 0, - border, image_size, data, - X_GLrop_CompressedTexImage1D ); -} - - -void -__indirect_glCompressedTexImage2DARB( GLenum target, GLint level, - GLenum internal_format, - GLsizei width, GLsizei height, - GLint border, GLsizei image_size, - const GLvoid *data ) -{ - CompressedTexImage1D2D( target, level, internal_format, width, height, - border, image_size, data, - X_GLrop_CompressedTexImage2D ); -} - - -void -__indirect_glCompressedTexImage3DARB( GLenum target, GLint level, - GLenum internal_format, - GLsizei width, GLsizei height, GLsizei depth, - GLint border, GLsizei image_size, - const GLvoid *data ) -{ - __GLX_DECLARE_VARIABLES(); - - __GLX_LOAD_VARIABLES(); - if ( gc->currentDpy == NULL ) { - return; - } - - cmdlen = __GLX_PAD( __GLX_COMPRESSED_TEXIMAGE_3D_CMD_HDR_SIZE - + image_size ); - if ( cmdlen <= gc->maxSmallRenderCommandSize ) { - __GLX_BEGIN_VARIABLE( X_GLrop_CompressedTexImage3D, cmdlen ); - __GLX_PUT_LONG( 4, target ); - __GLX_PUT_LONG( 8, level ); - __GLX_PUT_LONG( 12, internal_format ); - __GLX_PUT_LONG( 16, width ); - __GLX_PUT_LONG( 20, height ); - __GLX_PUT_LONG( 24, depth ); - __GLX_PUT_LONG( 28, border ); - __GLX_PUT_LONG( 32, image_size ); - if ( image_size != 0 ) { - __GLX_PUT_CHAR_ARRAY( __GLX_COMPRESSED_TEXIMAGE_3D_CMD_HDR_SIZE, - data, image_size ); - } - __GLX_END( cmdlen ); - } - else { - __GLX_BEGIN_VARIABLE_LARGE( X_GLrop_CompressedTexImage3D, - cmdlen + 4 ); - __GLX_PUT_LONG( 8, target ); - __GLX_PUT_LONG( 12, level ); - __GLX_PUT_LONG( 16, internal_format ); - __GLX_PUT_LONG( 20, width ); - __GLX_PUT_LONG( 24, height ); - __GLX_PUT_LONG( 28, depth ); - __GLX_PUT_LONG( 32, border ); - __GLX_PUT_LONG( 36, image_size ); - __glXSendLargeCommand( gc, gc->pc, - __GLX_COMPRESSED_TEXIMAGE_3D_CMD_HDR_SIZE + 4, - data, image_size ); - } -} - - -void -__indirect_glCompressedTexSubImage1DARB( GLenum target, GLint level, - GLint xoffset, - GLsizei width, - GLenum format, GLsizei image_size, - const GLvoid *data ) -{ - CompressedTexSubImage1D2D( target, level, xoffset, 0, width, 0, - format, image_size, data, - X_GLrop_CompressedTexSubImage1D ); -} - - -void -__indirect_glCompressedTexSubImage2DARB( GLenum target, GLint level, - GLint xoffset, GLint yoffset, - GLsizei width, GLsizei height, - GLenum format, GLsizei image_size, - const GLvoid *data ) -{ - CompressedTexSubImage1D2D( target, level, xoffset, yoffset, width, height, - format, image_size, data, - X_GLrop_CompressedTexSubImage2D ); -} - - -void -__indirect_glCompressedTexSubImage3DARB( GLenum target, GLint level, - GLint xoffset, GLint yoffset, GLint zoffset, - GLsizei width, GLsizei height, GLsizei depth, - GLenum format, GLsizei image_size, - const GLvoid *data ) -{ - __GLX_DECLARE_VARIABLES(); - - __GLX_LOAD_VARIABLES(); - if ( gc->currentDpy == NULL ) { - return; - } - - cmdlen = __GLX_PAD( __GLX_COMPRESSED_TEXSUBIMAGE_3D_CMD_HDR_SIZE - + image_size ); - if ( cmdlen <= gc->maxSmallRenderCommandSize ) { - __GLX_BEGIN_VARIABLE( X_GLrop_CompressedTexSubImage3D, cmdlen ); - __GLX_PUT_LONG( 4, target ); - __GLX_PUT_LONG( 8, level ); - __GLX_PUT_LONG( 12, xoffset ); - __GLX_PUT_LONG( 16, yoffset ); - __GLX_PUT_LONG( 20, zoffset ); - __GLX_PUT_LONG( 24, width ); - __GLX_PUT_LONG( 28, height ); - __GLX_PUT_LONG( 32, depth ); - __GLX_PUT_LONG( 36, format ); - __GLX_PUT_LONG( 40, image_size ); - if ( image_size != 0 ) { - __GLX_PUT_CHAR_ARRAY( __GLX_COMPRESSED_TEXSUBIMAGE_3D_CMD_HDR_SIZE, - data, image_size ); - } - __GLX_END( cmdlen ); - } - else { - __GLX_BEGIN_VARIABLE_LARGE( X_GLrop_CompressedTexSubImage3D, - cmdlen + 4 ); - __GLX_PUT_LONG( 8, target ); - __GLX_PUT_LONG( 12, level ); - __GLX_PUT_LONG( 16, xoffset ); - __GLX_PUT_LONG( 20, yoffset ); - __GLX_PUT_LONG( 24, zoffset ); - __GLX_PUT_LONG( 28, width ); - __GLX_PUT_LONG( 32, height ); - __GLX_PUT_LONG( 36, depth ); - __GLX_PUT_LONG( 40, format ); - __GLX_PUT_LONG( 44, image_size ); - __glXSendLargeCommand( gc, gc->pc, - __GLX_COMPRESSED_TEXSUBIMAGE_3D_CMD_HDR_SIZE + 4, - data, image_size ); - } -} diff --git a/nx-X11/extras/Mesa/src/glx/x11/glxclient.h b/nx-X11/extras/Mesa/src/glx/x11/glxclient.h deleted file mode 100644 index bc9a94c5d..000000000 --- a/nx-X11/extras/Mesa/src/glx/x11/glxclient.h +++ /dev/null @@ -1,690 +0,0 @@ -/* -** License Applicability. Except to the extent portions of this file are -** made subject to an alternative license as permitted in the SGI Free -** Software License B, Version 1.1 (the "License"), the contents of this -** file are subject only to the provisions of the License. You may not use -** this file except in compliance with the License. You may obtain a copy -** of the License at Silicon Graphics, Inc., attn: Legal Services, 1600 -** Amphitheatre Parkway, Mountain View, CA 94043-1351, or at: -** -** http://oss.sgi.com/projects/FreeB -** -** Note that, as provided in the License, the Software is distributed on an -** "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS -** DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND -** CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A -** PARTICULAR PURPOSE, AND NON-INFRINGEMENT. -** -** Original Code. The Original Code is: OpenGL Sample Implementation, -** Version 1.2.1, released January 26, 2000, developed by Silicon Graphics, -** Inc. The Original Code is Copyright (c) 1991-2000 Silicon Graphics, Inc. -** Copyright in any portions created by third parties is as indicated -** elsewhere herein. All Rights Reserved. -** -** Additional Notice Provisions: The application programming interfaces -** established by SGI in conjunction with the Original Code are The -** OpenGL(R) Graphics System: A Specification (Version 1.2.1), released -** April 1, 1999; The OpenGL(R) Graphics System Utility Library (Version -** 1.3), released November 4, 1998; and OpenGL(R) Graphics with the X -** Window System(R) (Version 1.3), released October 19, 1998. This software -** was created using the OpenGL(R) version 1.2.1 Sample Implementation -** published by SGI, but has not been independently verified as being -** compliant with the OpenGL(R) version 1.2.1 Specification. -*/ -/* $XFree86: xc/lib/GL/glx/glxclient.h,v 1.21 2004/02/09 23:46:31 alanh Exp $ */ - -/** - * \file glxclient.h - * Direct rendering support added by Precision Insight, Inc. - * - * \author Kevin E. Martin - */ - -#ifndef _GLX_client_h_ -#define _GLX_client_h_ -#define NEED_REPLIES -#define NEED_EVENTS -#include -#include -#define GLX_GLXEXT_PROTOTYPES -#include -#include -#include -#include -#include -#ifdef WIN32 -#include -#endif -#include "GL/glxint.h" -#include "GL/glxproto.h" -#include "GL/internal/glcore.h" -#include "glapitable.h" -#include "glxextensions.h" -#if defined( USE_XTHREADS ) -# include -#elif defined( PTHREADS ) -# include -#endif - -#define GLX_MAJOR_VERSION 1 /* current version numbers */ -#define GLX_MINOR_VERSION 4 - -#define __GLX_MAX_TEXTURE_UNITS 32 - -typedef struct __GLXcontextRec __GLXcontext; -typedef struct __GLXdisplayPrivateRec __GLXdisplayPrivate; -typedef struct _glapi_table __GLapi; - -/************************************************************************/ - -#ifdef GLX_DIRECT_RENDERING - -#include - - -/** - * Display dependent methods. This structure is initialized during the - * \c driCreateDisplay call. - */ -struct __DRIdisplayRec { - /** - * Method to destroy the private DRI display data. - */ - void (*destroyDisplay)(Display *dpy, void *displayPrivate); - - /** - * Opaque pointer to private per display direct rendering data. - * \c NULL if direct rendering is not supported on this display. - */ - struct __DRIdisplayPrivateRec *private; - - /** - * Array of pointers to methods to create and initialize the private DRI - * screen data. - */ - PFNCREATENEWSCREENFUNC * createNewScreen; -}; - - -/* -** We keep a linked list of these structures, one per DRI device driver. -*/ -struct __DRIdriverRec { - const char *name; - void *handle; - PFNCREATENEWSCREENFUNC createNewScreenFunc; - struct __DRIdriverRec *next; -}; - -/* -** Function to create and DRI display data and initialize the display -** dependent methods. -*/ -extern void *driCreateDisplay(Display *dpy, __DRIdisplay *pdisp); - -extern __DRIdriver *driGetDriver(Display *dpy, int scrNum); - -extern void DRI_glXUseXFont( Font font, int first, int count, int listbase ); - -/* -** Functions to obtain driver configuration information from a direct -** rendering client application -*/ -extern const char *glXGetScreenDriver (Display *dpy, int scrNum); - -extern const char *glXGetDriverConfig (const char *driverName); - -extern Bool __glXWindowExists(Display *dpy, GLXDrawable draw); - -#endif - -/************************************************************************/ - -#define __GL_CLIENT_ATTRIB_STACK_DEPTH 16 - -typedef struct __GLXpixelStoreModeRec { - GLboolean swapEndian; - GLboolean lsbFirst; - GLuint rowLength; - GLuint imageHeight; - GLuint imageDepth; - GLuint skipRows; - GLuint skipPixels; - GLuint skipImages; - GLuint alignment; -} __GLXpixelStoreMode; - - -typedef struct __GLXattributeRec { - GLuint mask; - - /** - * Pixel storage state. Most of the pixel store mode state is kept - * here and used by the client code to manage the packing and - * unpacking of data sent to/received from the server. - */ - __GLXpixelStoreMode storePack, storeUnpack; - - /** - * Is EXT_vertex_array / GL 1.1 DrawArrays protocol specifically - * disabled? - */ - GLboolean NoDrawArraysProtocol; - - /** - * Vertex Array storage state. The vertex array component - * state is stored here and is used to manage the packing of - * DrawArrays data sent to the server. - */ - struct array_state_vector * array_state; -} __GLXattribute; - -typedef struct __GLXattributeMachineRec { - __GLXattribute *stack[__GL_CLIENT_ATTRIB_STACK_DEPTH]; - __GLXattribute **stackPointer; -} __GLXattributeMachine; - -/** - * GLX state that needs to be kept on the client. One of these records - * exist for each context that has been made current by this client. - */ -struct __GLXcontextRec { - /** - * \name Drawing command buffer. - * - * Drawing commands are packed into this buffer before being sent as a - * single GLX protocol request. The buffer is sent when it overflows or - * is flushed by \c __glXFlushRenderBuffer. \c pc is the next location - * in the buffer to be filled. \c limit is described above in the buffer - * slop discussion. - * - * Commands that require large amounts of data to be transfered will - * also use this buffer to hold a header that describes the large - * command. - * - * These must be the first 6 fields since they are static initialized - * in the dummy context in glxext.c - */ - /*@{*/ - GLubyte *buf; - GLubyte *pc; - GLubyte *limit; - GLubyte *bufEnd; - GLint bufSize; - /*@}*/ - - /** - * The XID of this rendering context. When the context is created a - * new XID is allocated. This is set to None when the context is - * destroyed but is still current to some thread. In this case the - * context will be freed on next MakeCurrent. - */ - XID xid; - - /** - * The XID of the \c shareList context. - */ - XID share_xid; - - /** - * Visual id. - * - * \deprecated - * This filed has been largely been replaced by the \c mode field, but - * the work is not quite done. - */ - VisualID vid; - - /** - * Screen number. - */ - GLint screen; - - /** - * \c GL_TRUE if the context was created with ImportContext, which - * means the server-side context was created by another X client. - */ - GLboolean imported; - - /** - * The context tag returned by MakeCurrent when this context is made - * current. This tag is used to identify the context that a thread has - * current so that proper server context management can be done. It is - * used for all context specific commands (i.e., \c Render, \c RenderLarge, - * \c WaitX, \c WaitGL, \c UseXFont, and \c MakeCurrent (for the old - * context)). - */ - GLXContextTag currentContextTag; - - /** - * \name Rendering mode - * - * The rendering mode is kept on the client as well as the server. - * When \c glRenderMode is called, the buffer associated with the - * previous rendering mode (feedback or select) is filled. - */ - /*@{*/ - GLenum renderMode; - GLfloat *feedbackBuf; - GLuint *selectBuf; - /*@}*/ - - /** - * This is \c GL_TRUE if the pixel unpack modes are such that an image - * can be unpacked from the clients memory by just copying. It may - * still be true that the server will have to do some work. This - * just promises that a straight copy will fetch the correct bytes. - */ - GLboolean fastImageUnpack; - - /** - * Fill newImage with the unpacked form of \c oldImage getting it - * ready for transport to the server. - */ - void (*fillImage)(__GLXcontext*, GLint, GLint, GLint, GLint, GLenum, - GLenum, const GLvoid*, GLubyte*, GLubyte*); - - /** - * Client side attribs. - */ - __GLXattributeMachine attributes; - - /** - * Client side error code. This is set when client side gl API - * routines need to set an error because of a bad enumerant or - * running out of memory, etc. - */ - GLenum error; - - /** - * Whether this context does direct rendering. - */ - Bool isDirect; - - /** - * \c dpy of current display for this context. Will be \c NULL if not - * current to any display, or if this is the "dummy context". - */ - Display *currentDpy; - - /** - * The current drawable for this context. Will be None if this - * context is not current to any drawable. currentReadable is below. - */ - GLXDrawable currentDrawable; - - /** - * \name GL Constant Strings - * - * Constant strings that describe the server implementation - * These pertain to GL attributes, not to be confused with - * GLX versioning attributes. - */ - /*@{*/ - GLubyte *vendor; - GLubyte *renderer; - GLubyte *version; - GLubyte *extensions; - /*@}*/ - - /** - * Record the dpy this context was created on for later freeing - */ - Display *createDpy; - - /** - * Maximum small render command size. This is the smaller of 64k and - * the size of the above buffer. - */ - GLint maxSmallRenderCommandSize; - - /** - * Major opcode for the extension. Copied here so a lookup isn't - * needed. - */ - GLint majorOpcode; - -#ifdef GLX_DIRECT_RENDERING - /** - * Per context direct rendering interface functions and data. - */ - __DRIcontext driContext; -#endif - - /** - * \c GLXFBConfigID used to create this context. May be \c None. This - * field has been replaced by the \c mode field. - * - * \since Internal API version 20030317. - * - * \deprecated - * This filed has been largely been replaced by the \c mode field, but - * the work is not quite done. - */ - GLXFBConfigID fbconfigID; - - /** - * The current read-drawable for this context. Will be None if this - * context is not current to any drawable. - * - * \since Internal API version 20030606. - */ - GLXDrawable currentReadable; - - /** - * Pointer to client-state data that is private to libGL. This is only - * used for indirect rendering contexts. - * - * No internal API version change was made for this change. Client-side - * drivers should NEVER use this data or even care that it exists. - */ - void * client_state_private; - - /** - * Stored value for \c glXQueryContext attribute \c GLX_RENDER_TYPE. - */ - int renderType; - - /** - * \name Raw server GL version - * - * True core GL version supported by the server. This is the raw value - * returned by the server, and it may not reflect what is actually - * supported (or reported) by the client-side library. - */ - /*@{*/ - int server_major; /**< Major version number. */ - int server_minor; /**< Minor version number. */ - /*@}*/ - - char gl_extension_bits[ __GL_EXT_BYTES ]; -}; - -#define __glXSetError(gc,code) \ - if (!(gc)->error) { \ - (gc)->error = code; \ - } - -extern void __glFreeAttributeState(__GLXcontext *); - -/************************************************************************/ - -/** - * The size of the largest drawing command known to the implementation - * that will use the GLXRender GLX command. In this case it is - * \c glPolygonStipple. - */ -#define __GLX_MAX_SMALL_RENDER_CMD_SIZE 156 - -/** - * To keep the implementation fast, the code uses a "limit" pointer - * to determine when the drawing command buffer is too full to hold - * another fixed size command. This constant defines the amount of - * space that must always be available in the drawing command buffer - * at all times for the implementation to work. It is important that - * the number be just large enough, but not so large as to reduce the - * efficacy of the buffer. The "+32" is just to keep the code working - * in case somebody counts wrong. - */ -#define __GLX_BUFFER_LIMIT_SIZE (__GLX_MAX_SMALL_RENDER_CMD_SIZE + 32) - -/** - * This implementation uses a smaller threshold for switching - * to the RenderLarge protocol than the protcol requires so that - * large copies don't occur. - */ -#define __GLX_RENDER_CMD_SIZE_LIMIT 4096 - -/** - * One of these records exists per screen of the display. It contains - * a pointer to the config data for that screen (if the screen supports GL). - */ -typedef struct __GLXscreenConfigsRec { - /** - * GLX extension string reported by the X-server. - */ - const char *serverGLXexts; - - /** - * GLX extension string to be reported to applications. This is the - * set of extensions that the application can actually use. - */ - char *effectiveGLXexts; - -#ifdef GLX_DIRECT_RENDERING - /** - * Per screen direct rendering interface functions and data. - */ - __DRIscreen driScreen; -#endif - - /** - * Linked list of configurations for this screen. - */ - __GLcontextModes *configs; - - /** - * Per-screen dynamic GLX extension tracking. The \c direct_support - * field only contains enough bits for 64 extensions. Should libGL - * ever need to track more than 64 GLX extensions, we can safely grow - * this field. The \c __GLXscreenConfigs structure is not used outside - * libGL. - */ - /*@{*/ - unsigned char direct_support[8]; - GLboolean ext_list_first_time; - /*@}*/ - -} __GLXscreenConfigs; - -/** - * Per display private data. One of these records exists for each display - * that is using the OpenGL (GLX) extension. - */ -struct __GLXdisplayPrivateRec { - /** - * Back pointer to the display - */ - Display *dpy; - - /** - * The \c majorOpcode is common to all connections to the same server. - * It is also copied into the context structure. - */ - int majorOpcode; - - /** - * \name Server Version - * - * Major and minor version returned by the server during initialization. - */ - /*@{*/ - int majorVersion, minorVersion; - /*@}*/ - - /** - * \name Storage for the servers GLX vendor and versions strings. - * - * These are the same for all screens on this display. These fields will - * be filled in on demand. - */ - /*@{*/ - const char *serverGLXvendor; - const char *serverGLXversion; - /*@}*/ - - /** - * Configurations of visuals for all screens on this display. - * Also, per screen data which now includes the server \c GLX_EXTENSION - * string. - */ - __GLXscreenConfigs *screenConfigs; - -#ifdef GLX_DIRECT_RENDERING - /** - * Per display direct rendering interface functions and data. - */ - __DRIdisplay driDisplay; -#endif -}; - -void __glXFreeContext(__GLXcontext*); - -extern GLubyte *__glXFlushRenderBuffer(__GLXcontext*, GLubyte*); - -extern void __glXSendLargeChunk(__GLXcontext *gc, GLint requestNumber, - GLint totalRequests, - const GLvoid * data, GLint dataLen); - -extern void __glXSendLargeCommand(__GLXcontext *, const GLvoid *, GLint, - const GLvoid *, GLint); - -/* Initialize the GLX extension for dpy */ -extern __GLXdisplayPrivate *__glXInitialize(Display*); - -/************************************************************************/ - -extern int __glXDebug; - -/* This is per-thread storage in an MT environment */ -#if defined( USE_XTHREADS ) || defined( PTHREADS ) - -extern void __glXSetCurrentContext(__GLXcontext *c); - -# if defined( GLX_USE_TLS ) - -extern __thread void * __glX_tls_Context - __attribute__((tls_model("initial-exec"))); - -# define __glXGetCurrentContext() __glX_tls_Context - -# else - -extern __GLXcontext *__glXGetCurrentContext(void); - -# endif /* defined( GLX_USE_TLS ) */ - -#else - -extern __GLXcontext *__glXcurrentContext; -#define __glXGetCurrentContext() __glXcurrentContext -#define __glXSetCurrentContext(gc) __glXcurrentContext = gc - -#endif /* defined( USE_XTHREADS ) || defined( PTHREADS ) */ - - -/* -** Global lock for all threads in this address space using the GLX -** extension -*/ -#if defined( USE_XTHREADS ) -extern xmutex_rec __glXmutex; -#define __glXLock() xmutex_lock(&__glXmutex) -#define __glXUnlock() xmutex_unlock(&__glXmutex) -#elif defined( PTHREADS ) -extern pthread_mutex_t __glXmutex; -#define __glXLock() pthread_mutex_lock(&__glXmutex) -#define __glXUnlock() pthread_mutex_unlock(&__glXmutex) -#else -#define __glXLock() -#define __glXUnlock() -#endif - -/* -** Setup for a command. Initialize the extension for dpy if necessary. -*/ -extern CARD8 __glXSetupForCommand(Display *dpy); - -/************************************************************************/ - -/* -** Data conversion and packing support. -*/ - -extern const GLuint __glXDefaultPixelStore[9]; - -/* Send an image to the server using RenderLarge. */ -extern void __glXSendLargeImage(__GLXcontext *gc, GLint compsize, GLint dim, - GLint width, GLint height, GLint depth, GLenum format, GLenum type, - const GLvoid *src, GLubyte *pc, GLubyte *modes); - -/* Return the size, in bytes, of some pixel data */ -extern GLint __glImageSize(GLint, GLint, GLint, GLenum, GLenum, GLenum); - -/* Return the number of elements per group of a specified format*/ -extern GLint __glElementsPerGroup(GLenum format, GLenum type); - -/* Return the number of bytes per element, based on the element type (other -** than GL_BITMAP). -*/ -extern GLint __glBytesPerElement(GLenum type); - -/* -** Fill the transport buffer with the data from the users buffer, -** applying some of the pixel store modes (unpack modes) to the data -** first. As a side effect of this call, the "modes" field is -** updated to contain the modes needed by the server to decode the -** sent data. -*/ -extern void __glFillImage(__GLXcontext*, GLint, GLint, GLint, GLint, GLenum, - GLenum, const GLvoid*, GLubyte*, GLubyte*); - -/* Copy map data with a stride into a packed buffer */ -extern void __glFillMap1f(GLint, GLint, GLint, const GLfloat *, GLubyte *); -extern void __glFillMap1d(GLint, GLint, GLint, const GLdouble *, GLubyte *); -extern void __glFillMap2f(GLint, GLint, GLint, GLint, GLint, - const GLfloat *, GLfloat *); -extern void __glFillMap2d(GLint, GLint, GLint, GLint, GLint, - const GLdouble *, GLdouble *); - -/* -** Empty an image out of the reply buffer into the clients memory applying -** the pack modes to pack back into the clients requested format. -*/ -extern void __glEmptyImage(__GLXcontext*, GLint, GLint, GLint, GLint, GLenum, - GLenum, const GLubyte *, GLvoid *); - - -/* -** Allocate and Initialize Vertex Array client state -*/ -extern void __glXInitVertexArrayState(__GLXcontext*); - -/* -** Inform the Server of the major and minor numbers and of the client -** libraries extension string. -*/ -extern void __glXClientInfo ( Display *dpy, int opcode ); - -/************************************************************************/ - -/* -** Declarations that should be in Xlib -*/ -#ifdef __GL_USE_OUR_PROTOTYPES -extern void _XFlush(Display*); -extern Status _XReply(Display*, xReply*, int, Bool); -extern void _XRead(Display*, void*, long); -extern void _XSend(Display*, const void*, long); -#endif - - -extern void __glXInitializeVisualConfigFromTags( __GLcontextModes *config, - int count, const INT32 *bp, Bool tagged_only, Bool fbconfig_style_tags ); - -extern char * __glXGetStringFromServer( Display * dpy, int opcode, - CARD32 glxCode, CARD32 for_whom, CARD32 name ); - -extern char *__glXstrdup(const char *str); - - -extern const char __glXGLClientVersion[]; -extern const char __glXGLClientExtensions[]; - -/* Determine the internal API version */ -extern int __glXGetInternalVersion(void); - -/* Get the unadjusted system time */ -extern int __glXGetUST( int64_t * ust ); - -#endif /* !__GLX_client_h__ */ diff --git a/nx-X11/extras/Mesa/src/glx/x11/glxcmds.c b/nx-X11/extras/Mesa/src/glx/x11/glxcmds.c deleted file mode 100644 index 6a31f24dd..000000000 --- a/nx-X11/extras/Mesa/src/glx/x11/glxcmds.c +++ /dev/null @@ -1,2969 +0,0 @@ -/* $XFree86: xc/lib/GL/glx/glxcmds.c,v 1.30 2004/01/30 20:33:06 alanh Exp $ */ -/* -** License Applicability. Except to the extent portions of this file are -** made subject to an alternative license as permitted in the SGI Free -** Software License B, Version 1.1 (the "License"), the contents of this -** file are subject only to the provisions of the License. You may not use -** this file except in compliance with the License. You may obtain a copy -** of the License at Silicon Graphics, Inc., attn: Legal Services, 1600 -** Amphitheatre Parkway, Mountain View, CA 94043-1351, or at: -** -** http://oss.sgi.com/projects/FreeB -** -** Note that, as provided in the License, the Software is distributed on an -** "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS -** DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND -** CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A -** PARTICULAR PURPOSE, AND NON-INFRINGEMENT. -** -** Original Code. The Original Code is: OpenGL Sample Implementation, -** Version 1.2.1, released January 26, 2000, developed by Silicon Graphics, -** Inc. The Original Code is Copyright (c) 1991-2000 Silicon Graphics, Inc. -** Copyright in any portions created by third parties is as indicated -** elsewhere herein. All Rights Reserved. -** -** Additional Notice Provisions: The application programming interfaces -** established by SGI in conjunction with the Original Code are The -** OpenGL(R) Graphics System: A Specification (Version 1.2.1), released -** April 1, 1999; The OpenGL(R) Graphics System Utility Library (Version -** 1.3), released November 4, 1998; and OpenGL(R) Graphics with the X -** Window System(R) (Version 1.3), released October 19, 1998. This software -** was created using the OpenGL(R) version 1.2.1 Sample Implementation -** published by SGI, but has not been independently verified as being -** compliant with the OpenGL(R) version 1.2.1 Specification. -** -*/ - -/** - * \file glxcmds.c - * Client-side GLX interface. - */ - -#include -#include "glxclient.h" -#include -#include -#include -#include -#include "glapi.h" -#ifdef GLX_DIRECT_RENDERING -#include "indirect_init.h" -#include -#include "xf86dri.h" -#endif -#include "glxextensions.h" -#include "glcontextmodes.h" -#include "glheader.h" -#include - -static const char __glXGLXClientVendorName[] = "SGI"; -static const char __glXGLXClientVersion[] = "1.4"; - - -/****************************************************************************/ -/** - * Get the __DRIdrawable for the drawable associated with a GLXContext - * - * \param dpy The display associated with \c drawable. - * \param drawable GLXDrawable whose __DRIdrawable part is to be retrieved. - * \returns A pointer to the context's __DRIdrawable on success, or NULL if - * the drawable is not associated with a direct-rendering context. - */ - -#ifdef GLX_DIRECT_RENDERING -static __DRIdrawable * -GetDRIDrawable( Display *dpy, GLXDrawable drawable, int * const scrn_num ) -{ - __GLXdisplayPrivate * const priv = __glXInitialize(dpy); - - if ( (priv != NULL) && (priv->driDisplay.private != NULL) ) { - const unsigned screen_count = ScreenCount(dpy); - unsigned i; - - for ( i = 0 ; i < screen_count ; i++ ) { - __DRIscreen * const psc = &priv->screenConfigs[i].driScreen; - __DRIdrawable * const pdraw = (psc->private != NULL) - ? (*psc->getDrawable)(dpy, drawable, psc->private) : NULL; - - if ( pdraw != NULL ) { - if ( scrn_num != NULL ) { - *scrn_num = i; - } - return pdraw; - } - } - } - - return NULL; -} -#endif - - -/** - * Get the GLX per-screen data structure associated with a GLX context. - * - * \param dpy Display for which the GLX per-screen information is to be - * retrieved. - * \param scrn Screen on \c dpy for which the GLX per-screen information is - * to be retrieved. - * \returns A pointer to the GLX per-screen data if \c dpy and \c scrn - * specify a valid GLX screen, or NULL otherwise. - * - * \todo Should this function validate that \c scrn is within the screen - * number range for \c dpy? - */ - -static __GLXscreenConfigs * -GetGLXScreenConfigs(Display *dpy, int scrn) -{ - __GLXdisplayPrivate * const priv = __glXInitialize(dpy); - - return (priv->screenConfigs != NULL) ? &priv->screenConfigs[scrn] : NULL; -} - - -static int -GetGLXPrivScreenConfig( Display *dpy, int scrn, __GLXdisplayPrivate ** ppriv, - __GLXscreenConfigs ** ppsc ) -{ - /* Initialize the extension, if needed . This has the added value - * of initializing/allocating the display private - */ - - if ( dpy == NULL ) { - return GLX_NO_EXTENSION; - } - - *ppriv = __glXInitialize(dpy); - if ( *ppriv == NULL ) { - return GLX_NO_EXTENSION; - } - - /* Check screen number to see if its valid */ - if ((scrn < 0) || (scrn >= ScreenCount(dpy))) { - return GLX_BAD_SCREEN; - } - - /* Check to see if the GL is supported on this screen */ - *ppsc = &((*ppriv)->screenConfigs[scrn]); - if ( (*ppsc)->configs == NULL ) { - /* No support for GL on this screen regardless of visual */ - return GLX_BAD_VISUAL; - } - - return Success; -} - - -/** - * Determine if a \c GLXFBConfig supplied by the application is valid. - * - * \param dpy Application supplied \c Display pointer. - * \param config Application supplied \c GLXFBConfig. - * - * \returns If the \c GLXFBConfig is valid, the a pointer to the matching - * \c __GLcontextModes structure is returned. Otherwise, \c NULL - * is returned. - */ -static __GLcontextModes * -ValidateGLXFBConfig( Display * dpy, GLXFBConfig config ) -{ - __GLXdisplayPrivate * const priv = __glXInitialize(dpy); - const unsigned num_screens = ScreenCount(dpy); - unsigned i; - const __GLcontextModes * modes; - - - if ( priv != NULL ) { - for ( i = 0 ; i < num_screens ; i++ ) { - for ( modes = priv->screenConfigs[i].configs - ; modes != NULL - ; modes = modes->next ) { - if ( modes == (__GLcontextModes *) config ) { - return (__GLcontextModes *) config; - } - } - } - } - - return NULL; -} - - -/** - * \todo It should be possible to move the allocate of \c client_state_private - * later in the function for direct-rendering contexts. Direct-rendering - * contexts don't need to track client state, so they don't need that memory - * at all. - * - * \todo Eliminate \c __glXInitVertexArrayState. Replace it with a new - * function called \c __glXAllocateClientState that allocates the memory and - * does all the initialization (including the pixel pack / unpack). - */ -static -GLXContext AllocateGLXContext( Display *dpy ) -{ - GLXContext gc; - int bufSize; - CARD8 opcode; - __GLXattribute *state; - - if (!dpy) - return NULL; - - opcode = __glXSetupForCommand(dpy); - if (!opcode) { - return NULL; - } - - /* Allocate our context record */ - gc = (GLXContext) Xmalloc(sizeof(struct __GLXcontextRec)); - if (!gc) { - /* Out of memory */ - return NULL; - } - memset(gc, 0, sizeof(struct __GLXcontextRec)); - - state = Xmalloc(sizeof(struct __GLXattributeRec)); - if (state == NULL) { - /* Out of memory */ - Xfree(gc); - return NULL; - } - gc->client_state_private = state; - memset(gc->client_state_private, 0, sizeof(struct __GLXattributeRec)); - state->NoDrawArraysProtocol = (getenv("LIBGL_NO_DRAWARRAYS") != NULL); - - /* - ** Create a temporary buffer to hold GLX rendering commands. The size - ** of the buffer is selected so that the maximum number of GLX rendering - ** commands can fit in a single X packet and still have room in the X - ** packet for the GLXRenderReq header. - */ - - bufSize = (XMaxRequestSize(dpy) * 4) - sz_xGLXRenderReq; - gc->buf = (GLubyte *) Xmalloc(bufSize); - if (!gc->buf) { - Xfree(gc->client_state_private); - Xfree(gc); - return NULL; - } - gc->bufSize = bufSize; - - /* Fill in the new context */ - gc->renderMode = GL_RENDER; - - state->storePack.alignment = 4; - state->storeUnpack.alignment = 4; - - gc->attributes.stackPointer = &gc->attributes.stack[0]; - - /* - ** PERFORMANCE NOTE: A mode dependent fill image can speed things up. - ** Other code uses the fastImageUnpack bit, but it is never set - ** to GL_TRUE. - */ - gc->fastImageUnpack = GL_FALSE; - gc->fillImage = __glFillImage; - gc->isDirect = GL_FALSE; - gc->pc = gc->buf; - gc->bufEnd = gc->buf + bufSize; - if (__glXDebug) { - /* - ** Set limit register so that there will be one command per packet - */ - gc->limit = gc->buf; - } else { - gc->limit = gc->buf + bufSize - __GLX_BUFFER_LIMIT_SIZE; - } - gc->createDpy = dpy; - gc->majorOpcode = opcode; - - /* - ** Constrain the maximum drawing command size allowed to be - ** transfered using the X_GLXRender protocol request. First - ** constrain by a software limit, then constrain by the protocl - ** limit. - */ - if (bufSize > __GLX_RENDER_CMD_SIZE_LIMIT) { - bufSize = __GLX_RENDER_CMD_SIZE_LIMIT; - } - if (bufSize > __GLX_MAX_RENDER_CMD_SIZE) { - bufSize = __GLX_MAX_RENDER_CMD_SIZE; - } - gc->maxSmallRenderCommandSize = bufSize; - return gc; -} - - -/** - * Create a new context. Exactly one of \c vis and \c fbconfig should be - * non-NULL. - * - * \param use_glx_1_3 For FBConfigs, should GLX 1.3 protocol or - * SGIX_fbconfig protocol be used? - * \param renderType For FBConfigs, what is the rendering type? - */ - -static GLXContext -CreateContext(Display *dpy, XVisualInfo *vis, - const __GLcontextModes * const fbconfig, - GLXContext shareList, - Bool allowDirect, GLXContextID contextID, - Bool use_glx_1_3, int renderType) -{ - GLXContext gc; - - if ( dpy == NULL ) - return NULL; - - gc = AllocateGLXContext(dpy); - if (!gc) - return NULL; - - if (None == contextID) { - if ( (vis == NULL) && (fbconfig == NULL) ) - return NULL; - -#ifdef GLX_DIRECT_RENDERING - if (allowDirect) { - int screen = (fbconfig == NULL) ? vis->screen : fbconfig->screen; - __GLXscreenConfigs * const psc = GetGLXScreenConfigs(dpy, screen); - const __GLcontextModes * mode; - - /* The value of fbconfig cannot change because it is tested - * later in the function. - */ - if ( fbconfig == NULL ) { - /* FIXME: Is it possible for the __GLcontextModes structure - * FIXME: to not be found? - */ - mode = _gl_context_modes_find_visual( psc->configs, - vis->visualid ); - assert( mode != NULL ); - assert( mode->screen == screen ); - } - else { - mode = fbconfig; - } - - if (psc && psc->driScreen.private) { - void * const shared = (shareList != NULL) - ? shareList->driContext.private : NULL; - gc->driContext.private = - (*psc->driScreen.createNewContext)( dpy, mode, renderType, - shared, - &gc->driContext ); - if (gc->driContext.private) { - gc->isDirect = GL_TRUE; - gc->screen = mode->screen; - gc->vid = mode->visualID; - gc->fbconfigID = mode->fbconfigID; - gc->driContext.mode = mode; - } - } - } -#endif - - LockDisplay(dpy); - if ( fbconfig == NULL ) { - xGLXCreateContextReq *req; - - /* Send the glXCreateContext request */ - GetReq(GLXCreateContext,req); - req->reqType = gc->majorOpcode; - req->glxCode = X_GLXCreateContext; - req->context = gc->xid = XAllocID(dpy); - req->visual = vis->visualid; - req->screen = vis->screen; - req->shareList = shareList ? shareList->xid : None; - req->isDirect = gc->isDirect; - } - else if ( use_glx_1_3 ) { - xGLXCreateNewContextReq *req; - - /* Send the glXCreateNewContext request */ - GetReq(GLXCreateNewContext,req); - req->reqType = gc->majorOpcode; - req->glxCode = X_GLXCreateNewContext; - req->context = gc->xid = XAllocID(dpy); - req->fbconfig = fbconfig->fbconfigID; - req->screen = fbconfig->screen; - req->renderType = renderType; - req->shareList = shareList ? shareList->xid : None; - req->isDirect = gc->isDirect; - } - else { - xGLXVendorPrivateWithReplyReq *vpreq; - xGLXCreateContextWithConfigSGIXReq *req; - - /* Send the glXCreateNewContext request */ - GetReqExtra(GLXVendorPrivateWithReply, - sz_xGLXCreateContextWithConfigSGIXReq-sz_xGLXVendorPrivateWithReplyReq,vpreq); - req = (xGLXCreateContextWithConfigSGIXReq *)vpreq; - req->reqType = gc->majorOpcode; - req->glxCode = X_GLXVendorPrivateWithReply; - req->vendorCode = X_GLXvop_CreateContextWithConfigSGIX; - req->context = gc->xid = XAllocID(dpy); - req->fbconfig = fbconfig->fbconfigID; - req->screen = fbconfig->screen; - req->renderType = renderType; - req->shareList = shareList ? shareList->xid : None; - req->isDirect = gc->isDirect; - } - - UnlockDisplay(dpy); - SyncHandle(); - gc->imported = GL_FALSE; - } - else { - gc->xid = contextID; - gc->imported = GL_TRUE; - } - - return gc; -} - -PUBLIC GLXContext glXCreateContext(Display *dpy, XVisualInfo *vis, - GLXContext shareList, Bool allowDirect) -{ - return CreateContext(dpy, vis, NULL, shareList, allowDirect, None, - False, 0); -} - -void __glXFreeContext(__GLXcontext *gc) -{ - if (gc->vendor) XFree((char *) gc->vendor); - if (gc->renderer) XFree((char *) gc->renderer); - if (gc->version) XFree((char *) gc->version); - if (gc->extensions) XFree((char *) gc->extensions); - __glFreeAttributeState(gc); - XFree((char *) gc->buf); - Xfree((char *) gc->client_state_private); - XFree((char *) gc); - -} - -/* -** Destroy the named context -*/ -static void -DestroyContext(Display *dpy, GLXContext gc) -{ - xGLXDestroyContextReq *req; - GLXContextID xid; - CARD8 opcode; - GLboolean imported; - - opcode = __glXSetupForCommand(dpy); - if (!opcode || !gc) { - return; - } - - __glXLock(); - xid = gc->xid; - imported = gc->imported; - gc->xid = None; - -#ifdef GLX_DIRECT_RENDERING - /* Destroy the direct rendering context */ - if (gc->isDirect) { - if (gc->driContext.private) { - (*gc->driContext.destroyContext)(dpy, gc->screen, - gc->driContext.private); - gc->driContext.private = NULL; - } - } -#endif - - if (gc->currentDpy) { - /* Have to free later cuz it's in use now */ - __glXUnlock(); - } else { - /* Destroy the handle if not current to anybody */ - __glXUnlock(); - __glXFreeContext(gc); - } - - if (!imported) { - /* - ** This dpy also created the server side part of the context. - ** Send the glXDestroyContext request. - */ - LockDisplay(dpy); - GetReq(GLXDestroyContext,req); - req->reqType = opcode; - req->glxCode = X_GLXDestroyContext; - req->context = xid; - UnlockDisplay(dpy); - SyncHandle(); - } -} - -PUBLIC void glXDestroyContext(Display *dpy, GLXContext gc) -{ - DestroyContext(dpy, gc); -} - -/* -** Return the major and minor version #s for the GLX extension -*/ -PUBLIC Bool glXQueryVersion(Display *dpy, int *major, int *minor) -{ - __GLXdisplayPrivate *priv; - - /* Init the extension. This fetches the major and minor version. */ - priv = __glXInitialize(dpy); - if (!priv) return GL_FALSE; - - if (major) *major = priv->majorVersion; - if (minor) *minor = priv->minorVersion; - return GL_TRUE; -} - -/* -** Query the existance of the GLX extension -*/ -PUBLIC Bool glXQueryExtension(Display *dpy, int *errorBase, int *eventBase) -{ - int major_op, erb, evb; - Bool rv; - - rv = XQueryExtension(dpy, GLX_EXTENSION_NAME, &major_op, &evb, &erb); - if (rv) { - if (errorBase) *errorBase = erb; - if (eventBase) *eventBase = evb; - } - return rv; -} - -/* -** Put a barrier in the token stream that forces the GL to finish its -** work before X can proceed. -*/ -PUBLIC void glXWaitGL(void) -{ - xGLXWaitGLReq *req; - GLXContext gc = __glXGetCurrentContext(); - Display *dpy = gc->currentDpy; - - if (!dpy) return; - - /* Flush any pending commands out */ - __glXFlushRenderBuffer(gc, gc->pc); - -#ifdef GLX_DIRECT_RENDERING - if (gc->isDirect) { -/* This bit of ugliness unwraps the glFinish function */ -#ifdef glFinish -#undef glFinish -#endif - glFinish(); - return; - } -#endif - - /* Send the glXWaitGL request */ - LockDisplay(dpy); - GetReq(GLXWaitGL,req); - req->reqType = gc->majorOpcode; - req->glxCode = X_GLXWaitGL; - req->contextTag = gc->currentContextTag; - UnlockDisplay(dpy); - SyncHandle(); -} - -/* -** Put a barrier in the token stream that forces X to finish its -** work before GL can proceed. -*/ -PUBLIC void glXWaitX(void) -{ - xGLXWaitXReq *req; - GLXContext gc = __glXGetCurrentContext(); - Display *dpy = gc->currentDpy; - - if (!dpy) return; - - /* Flush any pending commands out */ - __glXFlushRenderBuffer(gc, gc->pc); - -#ifdef GLX_DIRECT_RENDERING - if (gc->isDirect) { - XSync(dpy, False); - return; - } -#endif - - /* - ** Send the glXWaitX request. - */ - LockDisplay(dpy); - GetReq(GLXWaitX,req); - req->reqType = gc->majorOpcode; - req->glxCode = X_GLXWaitX; - req->contextTag = gc->currentContextTag; - UnlockDisplay(dpy); - SyncHandle(); -} - -PUBLIC void glXUseXFont(Font font, int first, int count, int listBase) -{ - xGLXUseXFontReq *req; - GLXContext gc = __glXGetCurrentContext(); - Display *dpy = gc->currentDpy; - - if (!dpy) return; - - /* Flush any pending commands out */ - (void) __glXFlushRenderBuffer(gc, gc->pc); - -#ifdef GLX_DIRECT_RENDERING - if (gc->isDirect) { - DRI_glXUseXFont(font, first, count, listBase); - return; - } -#endif - - /* Send the glXUseFont request */ - LockDisplay(dpy); - GetReq(GLXUseXFont,req); - req->reqType = gc->majorOpcode; - req->glxCode = X_GLXUseXFont; - req->contextTag = gc->currentContextTag; - req->font = font; - req->first = first; - req->count = count; - req->listBase = listBase; - UnlockDisplay(dpy); - SyncHandle(); -} - -/************************************************************************/ - -/* -** Copy the source context to the destination context using the -** attribute "mask". -*/ -PUBLIC void glXCopyContext(Display *dpy, GLXContext source, - GLXContext dest, unsigned long mask) -{ - xGLXCopyContextReq *req; - GLXContext gc = __glXGetCurrentContext(); - GLXContextTag tag; - CARD8 opcode; - - opcode = __glXSetupForCommand(dpy); - if (!opcode) { - return; - } - -#ifdef GLX_DIRECT_RENDERING - if (gc->isDirect) { - /* NOT_DONE: This does not work yet */ - } -#endif - - /* - ** If the source is the current context, send its tag so that the context - ** can be flushed before the copy. - */ - if (source == gc && dpy == gc->currentDpy) { - tag = gc->currentContextTag; - } else { - tag = 0; - } - - /* Send the glXCopyContext request */ - LockDisplay(dpy); - GetReq(GLXCopyContext,req); - req->reqType = opcode; - req->glxCode = X_GLXCopyContext; - req->source = source ? source->xid : None; - req->dest = dest ? dest->xid : None; - req->mask = mask; - req->contextTag = tag; - UnlockDisplay(dpy); - SyncHandle(); -} - - -/** - * Determine if a context uses direct rendering. - * - * \param dpy Display where the context was created. - * \param contextID ID of the context to be tested. - * - * \returns \c GL_TRUE if the context is direct rendering or not. - */ -static Bool __glXIsDirect(Display *dpy, GLXContextID contextID) -{ - xGLXIsDirectReq *req; - xGLXIsDirectReply reply; - CARD8 opcode; - - opcode = __glXSetupForCommand(dpy); - if (!opcode) { - return GL_FALSE; - } - - /* Send the glXIsDirect request */ - LockDisplay(dpy); - GetReq(GLXIsDirect,req); - req->reqType = opcode; - req->glxCode = X_GLXIsDirect; - req->context = contextID; - _XReply(dpy, (xReply*) &reply, 0, False); - UnlockDisplay(dpy); - SyncHandle(); - - return reply.isDirect; -} - -/** - * \todo - * Shouldn't this function \b always return \c GL_FALSE when - * \c GLX_DIRECT_RENDERING is not defined? Do we really need to bother with - * the GLX protocol here at all? - */ -PUBLIC Bool glXIsDirect(Display *dpy, GLXContext gc) -{ - if (!gc) { - return GL_FALSE; -#ifdef GLX_DIRECT_RENDERING - } else if (gc->isDirect) { - return GL_TRUE; -#endif - } - return __glXIsDirect(dpy, gc->xid); -} - -PUBLIC GLXPixmap glXCreateGLXPixmap(Display *dpy, XVisualInfo *vis, - Pixmap pixmap) -{ - xGLXCreateGLXPixmapReq *req; - GLXPixmap xid; - CARD8 opcode; - - opcode = __glXSetupForCommand(dpy); - if (!opcode) { - return None; - } - - /* Send the glXCreateGLXPixmap request */ - LockDisplay(dpy); - GetReq(GLXCreateGLXPixmap,req); - req->reqType = opcode; - req->glxCode = X_GLXCreateGLXPixmap; - req->screen = vis->screen; - req->visual = vis->visualid; - req->pixmap = pixmap; - req->glxpixmap = xid = XAllocID(dpy); - UnlockDisplay(dpy); - SyncHandle(); - return xid; -} - -/* -** Destroy the named pixmap -*/ -PUBLIC void glXDestroyGLXPixmap(Display *dpy, GLXPixmap glxpixmap) -{ - xGLXDestroyGLXPixmapReq *req; - CARD8 opcode; - - opcode = __glXSetupForCommand(dpy); - if (!opcode) { - return; - } - - /* Send the glXDestroyGLXPixmap request */ - LockDisplay(dpy); - GetReq(GLXDestroyGLXPixmap,req); - req->reqType = opcode; - req->glxCode = X_GLXDestroyGLXPixmap; - req->glxpixmap = glxpixmap; - UnlockDisplay(dpy); - SyncHandle(); -} - -PUBLIC void glXSwapBuffers(Display *dpy, GLXDrawable drawable) -{ - xGLXSwapBuffersReq *req; - GLXContext gc; - GLXContextTag tag; - CARD8 opcode; -#ifdef GLX_DIRECT_RENDERING - __DRIdrawable *pdraw = GetDRIDrawable( dpy, drawable, NULL ); - - if ( pdraw != NULL ) { - (*pdraw->swapBuffers)(dpy, pdraw->private); - return; - } -#endif - - opcode = __glXSetupForCommand(dpy); - if (!opcode) { - return; - } - - /* - ** The calling thread may or may not have a current context. If it - ** does, send the context tag so the server can do a flush. - */ - gc = __glXGetCurrentContext(); - if ((gc != NULL) && (dpy == gc->currentDpy) && - ((drawable == gc->currentDrawable) || (drawable == gc->currentReadable)) ) { - tag = gc->currentContextTag; - } else { - tag = 0; - } - - /* Send the glXSwapBuffers request */ - LockDisplay(dpy); - GetReq(GLXSwapBuffers,req); - req->reqType = opcode; - req->glxCode = X_GLXSwapBuffers; - req->drawable = drawable; - req->contextTag = tag; - UnlockDisplay(dpy); - SyncHandle(); - XFlush(dpy); -} - - -/* -** Return configuration information for the given display, screen and -** visual combination. -*/ -PUBLIC int glXGetConfig(Display *dpy, XVisualInfo *vis, int attribute, - int *value_return) -{ - __GLXdisplayPrivate *priv; - __GLXscreenConfigs *psc; - int status; - - status = GetGLXPrivScreenConfig( dpy, vis->screen, & priv, & psc ); - if ( status == Success ) { - const __GLcontextModes * const modes = _gl_context_modes_find_visual( - psc->configs, vis->visualid ); - - /* Lookup attribute after first finding a match on the visual */ - if ( modes != NULL ) { - return _gl_get_context_mode_data( modes, attribute, value_return ); - } - - status = GLX_BAD_VISUAL; - } - - /* - ** If we can't find the config for this visual, this visual is not - ** supported by the OpenGL implementation on the server. - */ - if ( (status == GLX_BAD_VISUAL) && (attribute == GLX_USE_GL) ) { - *value_return = GL_FALSE; - status = Success; - } - - return status; -} - -/************************************************************************/ - -static void -init_fbconfig_for_chooser( __GLcontextModes * config, - GLboolean fbconfig_style_tags ) -{ - memset( config, 0, sizeof( __GLcontextModes ) ); - config->visualID = (XID) GLX_DONT_CARE; - config->visualType = GLX_DONT_CARE; - - /* glXChooseFBConfig specifies different defaults for these two than - * glXChooseVisual. - */ - if ( fbconfig_style_tags ) { - config->rgbMode = GL_TRUE; - config->doubleBufferMode = GLX_DONT_CARE; - } - - config->visualRating = GLX_DONT_CARE; - config->transparentPixel = GLX_NONE; - config->transparentRed = GLX_DONT_CARE; - config->transparentGreen = GLX_DONT_CARE; - config->transparentBlue = GLX_DONT_CARE; - config->transparentAlpha = GLX_DONT_CARE; - config->transparentIndex = GLX_DONT_CARE; - - config->drawableType = GLX_WINDOW_BIT; - config->renderType = (config->rgbMode) ? GLX_RGBA_BIT : GLX_COLOR_INDEX_BIT; - config->xRenderable = GLX_DONT_CARE; - config->fbconfigID = (GLXFBConfigID)(GLX_DONT_CARE); - - config->swapMethod = GLX_DONT_CARE; -} - -#define MATCH_DONT_CARE( param ) \ - do { \ - if ( (a-> param != GLX_DONT_CARE) \ - && (a-> param != b-> param) ) { \ - return False; \ - } \ - } while ( 0 ) - -#define MATCH_MINIMUM( param ) \ - do { \ - if ( (a-> param != GLX_DONT_CARE) \ - && (a-> param > b-> param) ) { \ - return False; \ - } \ - } while ( 0 ) - -#define MATCH_EXACT( param ) \ - do { \ - if ( a-> param != b-> param) { \ - return False; \ - } \ - } while ( 0 ) - -/** - * Determine if two GLXFBConfigs are compatible. - * - * \param a Application specified config to test. - * \param b Server specified config to test against \c a. - */ -static Bool -fbconfigs_compatible( const __GLcontextModes * const a, - const __GLcontextModes * const b ) -{ - MATCH_DONT_CARE( doubleBufferMode ); - MATCH_DONT_CARE( visualType ); - MATCH_DONT_CARE( visualRating ); - MATCH_DONT_CARE( xRenderable ); - MATCH_DONT_CARE( fbconfigID ); - MATCH_DONT_CARE( swapMethod ); - - MATCH_MINIMUM( rgbBits ); - MATCH_MINIMUM( numAuxBuffers ); - MATCH_MINIMUM( redBits ); - MATCH_MINIMUM( greenBits ); - MATCH_MINIMUM( blueBits ); - MATCH_MINIMUM( alphaBits ); - MATCH_MINIMUM( depthBits ); - MATCH_MINIMUM( stencilBits ); - MATCH_MINIMUM( accumRedBits ); - MATCH_MINIMUM( accumGreenBits ); - MATCH_MINIMUM( accumBlueBits ); - MATCH_MINIMUM( accumAlphaBits ); - MATCH_MINIMUM( sampleBuffers ); - MATCH_MINIMUM( maxPbufferWidth ); - MATCH_MINIMUM( maxPbufferHeight ); - MATCH_MINIMUM( maxPbufferPixels ); - MATCH_MINIMUM( samples ); - - MATCH_DONT_CARE( stereoMode ); - MATCH_EXACT( level ); - - if ( ((a->drawableType & b->drawableType) == 0) - || ((a->renderType & b->renderType) == 0) ) { - return False; - } - - - /* There is a bug in a few of the XFree86 DDX drivers. They contain - * visuals with a "transparent type" of 0 when they really mean GLX_NONE. - * Technically speaking, it is a bug in the DDX driver, but there is - * enough of an installed base to work around the problem here. In any - * case, 0 is not a valid value of the transparent type, so we'll treat 0 - * from the app as GLX_DONT_CARE. We'll consider GLX_NONE from the app and - * 0 from the server to be a match to maintain backward compatibility with - * the (broken) drivers. - */ - - if ( a->transparentPixel != GLX_DONT_CARE - && a->transparentPixel != 0 ) { - if ( a->transparentPixel == GLX_NONE ) { - if ( b->transparentPixel != GLX_NONE && b->transparentPixel != 0 ) - return False; - } else { - MATCH_EXACT( transparentPixel ); - } - - switch ( a->transparentPixel ) { - case GLX_TRANSPARENT_RGB: - MATCH_DONT_CARE( transparentRed ); - MATCH_DONT_CARE( transparentGreen ); - MATCH_DONT_CARE( transparentBlue ); - MATCH_DONT_CARE( transparentAlpha ); - break; - - case GLX_TRANSPARENT_INDEX: - MATCH_DONT_CARE( transparentIndex ); - break; - - default: - break; - } - } - - return True; -} - - -/* There's some trickly language in the GLX spec about how this is supposed - * to work. Basically, if a given component size is either not specified - * or the requested size is zero, it is supposed to act like PERFER_SMALLER. - * Well, that's really hard to do with the code as-is. This behavior is - * closer to correct, but still not technically right. - */ -#define PREFER_LARGER_OR_ZERO(comp) \ - do { \ - if ( ((*a)-> comp) != ((*b)-> comp) ) { \ - if ( ((*a)-> comp) == 0 ) { \ - return -1; \ - } \ - else if ( ((*b)-> comp) == 0 ) { \ - return 1; \ - } \ - else { \ - return ((*b)-> comp) - ((*a)-> comp) ; \ - } \ - } \ - } while( 0 ) - -#define PREFER_LARGER(comp) \ - do { \ - if ( ((*a)-> comp) != ((*b)-> comp) ) { \ - return ((*b)-> comp) - ((*a)-> comp) ; \ - } \ - } while( 0 ) - -#define PREFER_SMALLER(comp) \ - do { \ - if ( ((*a)-> comp) != ((*b)-> comp) ) { \ - return ((*a)-> comp) - ((*b)-> comp) ; \ - } \ - } while( 0 ) - -/** - * Compare two GLXFBConfigs. This function is intended to be used as the - * compare function passed in to qsort. - * - * \returns If \c a is a "better" config, according to the specification of - * SGIX_fbconfig, a number less than zero is returned. If \c b is - * better, then a number greater than zero is return. If both are - * equal, zero is returned. - * \sa qsort, glXChooseVisual, glXChooseFBConfig, glXChooseFBConfigSGIX - */ -static int -fbconfig_compare( const __GLcontextModes * const * const a, - const __GLcontextModes * const * const b ) -{ - /* The order of these comparisons must NOT change. It is defined by - * the GLX 1.3 spec and ARB_multisample. - */ - - PREFER_SMALLER( visualSelectGroup ); - - /* The sort order for the visualRating is GLX_NONE, GLX_SLOW, and - * GLX_NON_CONFORMANT_CONFIG. It just so happens that this is the - * numerical sort order of the enums (0x8000, 0x8001, and 0x800D). - */ - PREFER_SMALLER( visualRating ); - - /* This isn't quite right. It is supposed to compare the sum of the - * components the user specifically set minimums for. - */ - PREFER_LARGER_OR_ZERO( redBits ); - PREFER_LARGER_OR_ZERO( greenBits ); - PREFER_LARGER_OR_ZERO( blueBits ); - PREFER_LARGER_OR_ZERO( alphaBits ); - - PREFER_SMALLER( rgbBits ); - - if ( ((*a)->doubleBufferMode != (*b)->doubleBufferMode) ) { - /* Prefer single-buffer. - */ - return ( !(*a)->doubleBufferMode ) ? -1 : 1; - } - - PREFER_SMALLER( numAuxBuffers ); - - PREFER_LARGER_OR_ZERO( depthBits ); - PREFER_SMALLER( stencilBits ); - - /* This isn't quite right. It is supposed to compare the sum of the - * components the user specifically set minimums for. - */ - PREFER_LARGER_OR_ZERO( accumRedBits ); - PREFER_LARGER_OR_ZERO( accumGreenBits ); - PREFER_LARGER_OR_ZERO( accumBlueBits ); - PREFER_LARGER_OR_ZERO( accumAlphaBits ); - - PREFER_SMALLER( visualType ); - - /* None of the multisample specs say where this comparison should happen, - * so I put it near the end. - */ - PREFER_SMALLER( sampleBuffers ); - PREFER_SMALLER( samples ); - - /* None of the pbuffer or fbconfig specs say that this comparison needs - * to happen at all, but it seems like it should. - */ - PREFER_LARGER( maxPbufferWidth ); - PREFER_LARGER( maxPbufferHeight ); - PREFER_LARGER( maxPbufferPixels ); - - return 0; -} - - -/** - * Selects and sorts a subset of the supplied configs based on the attributes. - * This function forms to basis of \c glXChooseVisual, \c glXChooseFBConfig, - * and \c glXChooseFBConfigSGIX. - * - * \param configs Array of pointers to possible configs. The elements of - * this array that do not meet the criteria will be set to - * NULL. The remaining elements will be sorted according to - * the various visual / FBConfig selection rules. - * \param num_configs Number of elements in the \c configs array. - * \param attribList Attributes used select from \c configs. This array is - * terminated by a \c None tag. The array can either take - * the form expected by \c glXChooseVisual (where boolean - * tags do not have a value) or by \c glXChooseFBConfig - * (where every tag has a value). - * \param fbconfig_style_tags Selects whether \c attribList is in - * \c glXChooseVisual style or - * \c glXChooseFBConfig style. - * \returns The number of valid elements left in \c configs. - * - * \sa glXChooseVisual, glXChooseFBConfig, glXChooseFBConfigSGIX - */ -static int -choose_visual( __GLcontextModes ** configs, int num_configs, - const int *attribList, GLboolean fbconfig_style_tags ) -{ - __GLcontextModes test_config; - int base; - int i; - - /* This is a fairly direct implementation of the selection method - * described by GLX_SGIX_fbconfig. Start by culling out all the - * configs that are not compatible with the selected parameter - * list. - */ - - init_fbconfig_for_chooser( & test_config, fbconfig_style_tags ); - __glXInitializeVisualConfigFromTags( & test_config, 512, - (const INT32 *) attribList, - GL_TRUE, fbconfig_style_tags ); - - base = 0; - for ( i = 0 ; i < num_configs ; i++ ) { - if ( fbconfigs_compatible( & test_config, configs[i] ) ) { - configs[ base ] = configs[ i ]; - base++; - } - } - - if ( base == 0 ) { - return 0; - } - - if ( base < num_configs ) { - (void) memset( & configs[ base ], 0, - sizeof( void * ) * (num_configs - base) ); - } - - /* After the incompatible configs are removed, the resulting - * list is sorted according to the rules set out in the various - * specifications. - */ - - qsort( configs, base, sizeof( __GLcontextModes * ), - (int (*)(const void*, const void*)) fbconfig_compare ); - return base; -} - - - - -/* -** Return the visual that best matches the template. Return None if no -** visual matches the template. -*/ -PUBLIC XVisualInfo *glXChooseVisual(Display *dpy, int screen, int *attribList) -{ - XVisualInfo *visualList = NULL; - __GLXdisplayPrivate *priv; - __GLXscreenConfigs *psc; - __GLcontextModes test_config; - __GLcontextModes *modes; - const __GLcontextModes *best_config = NULL; - - /* - ** Get a list of all visuals, return if list is empty - */ - if ( GetGLXPrivScreenConfig( dpy, screen, & priv, & psc ) != Success ) { - return None; - } - - - /* - ** Build a template from the defaults and the attribute list - ** Free visual list and return if an unexpected token is encountered - */ - init_fbconfig_for_chooser( & test_config, GL_FALSE ); - __glXInitializeVisualConfigFromTags( & test_config, 512, - (const INT32 *) attribList, - GL_TRUE, GL_FALSE ); - - /* - ** Eliminate visuals that don't meet minimum requirements - ** Compute a score for those that do - ** Remember which visual, if any, got the highest score - */ - for ( modes = psc->configs ; modes != NULL ; modes = modes->next ) { - if ( fbconfigs_compatible( & test_config, modes ) - && ((best_config == NULL) - || (fbconfig_compare( (const __GLcontextModes * const * const)&modes, &best_config ) < 0)) ) { - best_config = modes; - } - } - - /* - ** If no visual is acceptable, return None - ** Otherwise, create an XVisualInfo list with just the selected X visual - ** and return this. - */ - if (best_config != NULL) { - XVisualInfo visualTemplate; - int i; - - visualTemplate.screen = screen; - visualTemplate.visualid = best_config->visualID; - visualList = XGetVisualInfo( dpy, VisualScreenMask|VisualIDMask, - &visualTemplate, &i ); - } - - return visualList; -} - - -PUBLIC const char *glXQueryExtensionsString( Display *dpy, int screen ) -{ - __GLXscreenConfigs *psc; - __GLXdisplayPrivate *priv; - - if ( GetGLXPrivScreenConfig( dpy, screen, & priv, & psc ) != Success ) { - return NULL; - } - - if (!psc->effectiveGLXexts) { - if (!psc->serverGLXexts) { - psc->serverGLXexts = __glXGetStringFromServer(dpy, priv->majorOpcode, - X_GLXQueryServerString, - screen, GLX_EXTENSIONS); - } - - __glXCalculateUsableExtensions(psc, -#ifdef GLX_DIRECT_RENDERING - (psc->driScreen.private != NULL), -#else - GL_FALSE, -#endif - priv->minorVersion); - } - - return psc->effectiveGLXexts; -} - -PUBLIC const char *glXGetClientString( Display *dpy, int name ) -{ - switch(name) { - case GLX_VENDOR: - return (__glXGLXClientVendorName); - case GLX_VERSION: - return (__glXGLXClientVersion); - case GLX_EXTENSIONS: - return (__glXGetClientExtensions()); - default: - return NULL; - } -} - -PUBLIC const char *glXQueryServerString( Display *dpy, int screen, int name ) -{ - __GLXscreenConfigs *psc; - __GLXdisplayPrivate *priv; - const char ** str; - - - if ( GetGLXPrivScreenConfig( dpy, screen, & priv, & psc ) != Success ) { - return NULL; - } - - switch(name) { - case GLX_VENDOR: - str = & priv->serverGLXvendor; - break; - case GLX_VERSION: - str = & priv->serverGLXversion; - break; - case GLX_EXTENSIONS: - str = & psc->serverGLXexts; - break; - default: - return NULL; - } - - if ( *str == NULL ) { - *str = __glXGetStringFromServer(dpy, priv->majorOpcode, - X_GLXQueryServerString, screen, name); - } - - return *str; -} - -void __glXClientInfo ( Display *dpy, int opcode ) -{ - xGLXClientInfoReq *req; - int size; - char * ext_str = __glXGetClientGLExtensionString(); - - /* Send the glXClientInfo request */ - LockDisplay(dpy); - GetReq(GLXClientInfo,req); - req->reqType = opcode; - req->glxCode = X_GLXClientInfo; - req->major = GLX_MAJOR_VERSION; - req->minor = GLX_MINOR_VERSION; - - size = strlen( ext_str ) + 1; - req->length += (size + 3) >> 2; - req->numbytes = size; - Data(dpy, ext_str, size); - - UnlockDisplay(dpy); - SyncHandle(); - - Xfree( ext_str ); -} - - -/* -** EXT_import_context -*/ - -PUBLIC Display *glXGetCurrentDisplay(void) -{ - GLXContext gc = __glXGetCurrentContext(); - if (NULL == gc) return NULL; - return gc->currentDpy; -} - -PUBLIC GLX_ALIAS(Display *, glXGetCurrentDisplayEXT, (void), (), - glXGetCurrentDisplay) - -/** - * Used internally by libGL to send \c xGLXQueryContextinfoExtReq requests - * to the X-server. - * - * \param dpy Display where \c ctx was created. - * \param ctx Context to query. - * \returns \c Success on success. \c GLX_BAD_CONTEXT if \c ctx is invalid, - * or zero if the request failed due to internal problems (i.e., - * unable to allocate temporary memory, etc.) - * - * \note - * This function dynamically determines whether to use the EXT_import_context - * version of the protocol or the GLX 1.3 version of the protocol. - */ -static int __glXQueryContextInfo(Display *dpy, GLXContext ctx) -{ - __GLXdisplayPrivate *priv = __glXInitialize(dpy); - xGLXQueryContextReply reply; - CARD8 opcode; - GLuint numValues; - int retval; - - if (ctx == NULL) { - return GLX_BAD_CONTEXT; - } - opcode = __glXSetupForCommand(dpy); - if (!opcode) { - return 0; - } - - /* Send the glXQueryContextInfoEXT request */ - LockDisplay(dpy); - - if ( (priv->majorVersion > 1) || (priv->minorVersion >= 3) ) { - xGLXQueryContextReq *req; - - GetReq(GLXQueryContext, req); - - req->reqType = opcode; - req->glxCode = X_GLXQueryContext; - req->context = (unsigned int)(ctx->xid); - } - else { - xGLXVendorPrivateReq *vpreq; - xGLXQueryContextInfoEXTReq *req; - - GetReqExtra( GLXVendorPrivate, - sz_xGLXQueryContextInfoEXTReq - sz_xGLXVendorPrivateReq, - vpreq ); - req = (xGLXQueryContextInfoEXTReq *)vpreq; - req->reqType = opcode; - req->glxCode = X_GLXVendorPrivateWithReply; - req->vendorCode = X_GLXvop_QueryContextInfoEXT; - req->context = (unsigned int)(ctx->xid); - } - - _XReply(dpy, (xReply*) &reply, 0, False); - - numValues = reply.n; - if (numValues == 0) - retval = Success; - else if (numValues > __GLX_MAX_CONTEXT_PROPS) - retval = 0; - else - { - int *propList, *pProp; - int nPropListBytes; - int i; - - nPropListBytes = numValues << 3; - propList = (int *) Xmalloc(nPropListBytes); - if (NULL == propList) { - retval = 0; - } else { - _XRead(dpy, (char *)propList, nPropListBytes); - pProp = propList; - for (i=0; i < numValues; i++) { - switch (*pProp++) { - case GLX_SHARE_CONTEXT_EXT: - ctx->share_xid = *pProp++; - break; - case GLX_VISUAL_ID_EXT: - ctx->vid = *pProp++; - break; - case GLX_SCREEN: - ctx->screen = *pProp++; - break; - case GLX_FBCONFIG_ID: - ctx->fbconfigID = *pProp++; - break; - case GLX_RENDER_TYPE: - ctx->renderType = *pProp++; - break; - default: - pProp++; - continue; - } - } - Xfree((char *)propList); - retval = Success; - } - } - UnlockDisplay(dpy); - SyncHandle(); - return retval; -} - -PUBLIC int -glXQueryContext(Display *dpy, GLXContext ctx, int attribute, int *value) -{ - int retVal; - - /* get the information from the server if we don't have it already */ - if (!ctx->isDirect && (ctx->vid == None)) { - retVal = __glXQueryContextInfo(dpy, ctx); - if (Success != retVal) return retVal; - } - switch (attribute) { - case GLX_SHARE_CONTEXT_EXT: - *value = (int)(ctx->share_xid); - break; - case GLX_VISUAL_ID_EXT: - *value = (int)(ctx->vid); - break; - case GLX_SCREEN: - *value = (int)(ctx->screen); - break; - case GLX_FBCONFIG_ID: - *value = (int)(ctx->fbconfigID); - break; - case GLX_RENDER_TYPE: - *value = (int)(ctx->renderType); - break; - default: - return GLX_BAD_ATTRIBUTE; - } - return Success; -} - -PUBLIC GLX_ALIAS( int, glXQueryContextInfoEXT, - (Display *dpy, GLXContext ctx, int attribute, int *value), - (dpy, ctx, attribute, value), - glXQueryContext ) - -PUBLIC GLXContextID glXGetContextIDEXT(const GLXContext ctx) -{ - return ctx->xid; -} - -PUBLIC GLXContext glXImportContextEXT(Display *dpy, GLXContextID contextID) -{ - GLXContext ctx; - - if (contextID == None) { - return NULL; - } - if (__glXIsDirect(dpy, contextID)) { - return NULL; - } - - ctx = CreateContext(dpy, NULL, NULL, NULL, False, contextID, False, 0); - if (NULL != ctx) { - if (Success != __glXQueryContextInfo(dpy, ctx)) { - return NULL; - } - } - return ctx; -} - -PUBLIC void glXFreeContextEXT(Display *dpy, GLXContext ctx) -{ - DestroyContext(dpy, ctx); -} - - - -/* - * GLX 1.3 functions - these are just stubs for now! - */ - -PUBLIC GLXFBConfig *glXChooseFBConfig(Display *dpy, int screen, - const int *attribList, int *nitems) -{ - __GLcontextModes ** config_list; - int list_size; - - - config_list = (__GLcontextModes **) - glXGetFBConfigs( dpy, screen, & list_size ); - - if ( (config_list != NULL) && (list_size > 0) && (attribList != NULL) ) { - list_size = choose_visual( config_list, list_size, attribList, - GL_TRUE ); - if ( list_size == 0 ) { - XFree( config_list ); - config_list = NULL; - } - } - - *nitems = list_size; - return (GLXFBConfig *) config_list; -} - - -PUBLIC GLXContext glXCreateNewContext(Display *dpy, GLXFBConfig config, - int renderType, GLXContext shareList, - Bool allowDirect) -{ - return CreateContext( dpy, NULL, (__GLcontextModes *) config, shareList, - allowDirect, None, True, renderType ); -} - - -PUBLIC GLXDrawable glXGetCurrentReadDrawable(void) -{ - GLXContext gc = __glXGetCurrentContext(); - return gc->currentReadable; -} - - -PUBLIC GLXFBConfig *glXGetFBConfigs(Display *dpy, int screen, int *nelements) -{ - __GLXdisplayPrivate *priv = __glXInitialize(dpy); - __GLcontextModes ** config = NULL; - int i; - - if ( (priv->screenConfigs != NULL) - && (screen >= 0) && (screen <= ScreenCount(dpy)) - && (priv->screenConfigs[screen].configs != NULL) - && (priv->screenConfigs[screen].configs->fbconfigID != GLX_DONT_CARE) ) { - unsigned num_configs = 0; - __GLcontextModes * modes; - - - for ( modes = priv->screenConfigs[screen].configs - ; modes != NULL - ; modes = modes->next ) { - if ( modes->fbconfigID != GLX_DONT_CARE ) { - num_configs++; - } - } - - config = (__GLcontextModes **) Xmalloc( sizeof(__GLcontextModes *) - * num_configs ); - if ( config != NULL ) { - *nelements = num_configs; - i = 0; - for ( modes = priv->screenConfigs[screen].configs - ; modes != NULL - ; modes = modes->next ) { - config[i] = modes; - i++; - } - } - } - return (GLXFBConfig *) config; -} - - -PUBLIC int glXGetFBConfigAttrib(Display *dpy, GLXFBConfig config, - int attribute, int *value) -{ - __GLcontextModes * const modes = ValidateGLXFBConfig( dpy, config ); - - return (modes != NULL) - ? _gl_get_context_mode_data( modes, attribute, value ) - : GLXBadFBConfig; -} - - -PUBLIC XVisualInfo *glXGetVisualFromFBConfig(Display *dpy, GLXFBConfig config) -{ - XVisualInfo visualTemplate; - __GLcontextModes * fbconfig = (__GLcontextModes *) config; - int count; - - /* - ** Get a list of all visuals, return if list is empty - */ - visualTemplate.visualid = fbconfig->visualID; - return XGetVisualInfo(dpy,VisualIDMask,&visualTemplate,&count); -} - - -/* -** GLX_SGI_make_current_read -*/ - -PUBLIC GLX_ALIAS(GLXDrawable, glXGetCurrentReadDrawableSGI, (void), (), - glXGetCurrentReadDrawable) - - -/* -** GLX_SGI_swap_control -*/ -PUBLIC int glXSwapIntervalSGI(int interval) -{ - xGLXVendorPrivateReq *req; - GLXContext gc = __glXGetCurrentContext(); - Display * dpy; - CARD32 * interval_ptr; - CARD8 opcode; - - if ( gc == NULL ) { - return GLX_BAD_CONTEXT; - } - - if ( interval <= 0 ) { - return GLX_BAD_VALUE; - } - -#ifdef GLX_DIRECT_RENDERING - if ( gc->isDirect ) { - __GLXscreenConfigs * const psc = GetGLXScreenConfigs( gc->currentDpy, - gc->screen ); - __DRIdrawable * const pdraw = GetDRIDrawable( gc->currentDpy, - gc->currentDrawable, - NULL ); - if ( __glXExtensionBitIsEnabled( psc, SGI_swap_control_bit ) - && (pdraw != NULL) ) { - pdraw->swap_interval = interval; - return 0; - } - else { - return GLX_BAD_CONTEXT; - } - } -#endif - dpy = gc->currentDpy; - opcode = __glXSetupForCommand(dpy); - if (!opcode) { - return 0; - } - - /* Send the glXSwapIntervalSGI request */ - LockDisplay(dpy); - GetReqExtra(GLXVendorPrivate,sizeof(CARD32),req); - req->reqType = opcode; - req->glxCode = X_GLXVendorPrivate; - req->vendorCode = X_GLXvop_SwapIntervalSGI; - req->contextTag = gc->currentContextTag; - - interval_ptr = (CARD32 *) req + 1; - *interval_ptr = interval; - - UnlockDisplay(dpy); - SyncHandle(); - XFlush(dpy); - - return 0; -} - - -/* -** GLX_MESA_swap_control -*/ -PUBLIC GLint glXSwapIntervalMESA(unsigned interval) -{ -#ifdef GLX_DIRECT_RENDERING - GLXContext gc = __glXGetCurrentContext(); - - if ( interval < 0 ) { - return GLX_BAD_VALUE; - } - - if ( (gc != NULL) && gc->isDirect ) { - __GLXscreenConfigs * const psc = GetGLXScreenConfigs( gc->currentDpy, - gc->screen ); - - if ( (psc != NULL) && (psc->driScreen.private != NULL) - && __glXExtensionBitIsEnabled( psc, MESA_swap_control_bit ) ) { - __DRIdrawable * const pdraw = - (*psc->driScreen.getDrawable)(gc->currentDpy, - gc->currentDrawable, - psc->driScreen.private); - if ( pdraw != NULL ) { - pdraw->swap_interval = interval; - return 0; - } - } - } -#else - (void) interval; -#endif - - return GLX_BAD_CONTEXT; -} - -PUBLIC GLint glXGetSwapIntervalMESA( void ) -{ -#ifdef GLX_DIRECT_RENDERING - GLXContext gc = __glXGetCurrentContext(); - - if ( (gc != NULL) && gc->isDirect ) { - __GLXscreenConfigs * const psc = GetGLXScreenConfigs( gc->currentDpy, - gc->screen ); - - if ( (psc != NULL) && (psc->driScreen.private != NULL) - && __glXExtensionBitIsEnabled( psc, MESA_swap_control_bit ) ) { - __DRIdrawable * const pdraw = - (*psc->driScreen.getDrawable)(gc->currentDpy, - gc->currentDrawable, - psc->driScreen.private); - if ( pdraw != NULL ) { - return pdraw->swap_interval; - } - } - } -#endif - - return 0; -} - - -/* -** GLX_MESA_swap_frame_usage -*/ - -PUBLIC GLint glXBeginFrameTrackingMESA(Display *dpy, GLXDrawable drawable) -{ - int status = GLX_BAD_CONTEXT; -#ifdef GLX_DIRECT_RENDERING - int screen; - __DRIdrawable * const pdraw = GetDRIDrawable(dpy, drawable, & screen); - __GLXscreenConfigs * const psc = GetGLXScreenConfigs(dpy, screen); - - if ( (pdraw != NULL) && (pdraw->frameTracking != NULL) - && __glXExtensionBitIsEnabled( psc, MESA_swap_frame_usage_bit ) ) { - status = pdraw->frameTracking( dpy, pdraw->private, GL_TRUE ); - } -#else - (void) dpy; - (void) drawable; -#endif - return status; -} - - -PUBLIC GLint glXEndFrameTrackingMESA(Display *dpy, GLXDrawable drawable) -{ - int status = GLX_BAD_CONTEXT; -#ifdef GLX_DIRECT_RENDERING - int screen; - __DRIdrawable * const pdraw = GetDRIDrawable(dpy, drawable, & screen); - __GLXscreenConfigs * const psc = GetGLXScreenConfigs(dpy, screen); - - if ( (pdraw != NULL) && (pdraw->frameTracking != NULL) - && __glXExtensionBitIsEnabled( psc, MESA_swap_frame_usage_bit ) ) { - status = pdraw->frameTracking( dpy, pdraw->private, GL_FALSE ); - } -#else - (void) dpy; - (void) drawable; -#endif - return status; -} - - -PUBLIC GLint glXGetFrameUsageMESA(Display *dpy, GLXDrawable drawable, - GLfloat *usage) -{ - int status = GLX_BAD_CONTEXT; -#ifdef GLX_DIRECT_RENDERING - int screen; - __DRIdrawable * const pdraw = GetDRIDrawable(dpy, drawable, & screen); - __GLXscreenConfigs * const psc = GetGLXScreenConfigs(dpy, screen); - - if ( (pdraw != NULL ) && (pdraw->queryFrameTracking != NULL) - && __glXExtensionBitIsEnabled( psc, MESA_swap_frame_usage_bit ) ) { - int64_t sbc, missedFrames; - float lastMissedUsage; - - status = pdraw->queryFrameTracking( dpy, pdraw->private, &sbc, - &missedFrames, &lastMissedUsage, - usage ); - } -#else - (void) dpy; - (void) drawable; - (void) usage; -#endif - return status; -} - - -PUBLIC GLint glXQueryFrameTrackingMESA(Display *dpy, GLXDrawable drawable, - int64_t *sbc, int64_t *missedFrames, - GLfloat *lastMissedUsage) -{ - int status = GLX_BAD_CONTEXT; -#ifdef GLX_DIRECT_RENDERING - int screen; - __DRIdrawable * const pdraw = GetDRIDrawable(dpy, drawable, & screen); - __GLXscreenConfigs * const psc = GetGLXScreenConfigs(dpy, screen); - - if ( (pdraw != NULL ) && (pdraw->queryFrameTracking != NULL) - && __glXExtensionBitIsEnabled( psc, MESA_swap_frame_usage_bit ) ) { - float usage; - - status = pdraw->queryFrameTracking( dpy, pdraw->private, sbc, - missedFrames, lastMissedUsage, - & usage ); - } -#else - (void) dpy; - (void) drawable; - (void) sbc; - (void) missedFrames; - (void) lastMissedUsage; -#endif - return status; -} - - -/* -** GLX_SGI_video_sync -*/ -PUBLIC int glXGetVideoSyncSGI(unsigned int *count) -{ - /* FIXME: Looking at the GLX_SGI_video_sync spec in the extension registry, - * FIXME: there should be a GLX encoding for this call. I can find no - * FIXME: documentation for the GLX encoding. - */ -#ifdef GLX_DIRECT_RENDERING - GLXContext gc = __glXGetCurrentContext(); - - - if ( (gc != NULL) && gc->isDirect ) { - __GLXscreenConfigs * const psc = GetGLXScreenConfigs( gc->currentDpy, - gc->screen ); - if ( __glXExtensionBitIsEnabled( psc, SGI_video_sync_bit ) - && psc->driScreen.private && psc->driScreen.getMSC) { - int ret; - int64_t temp; - - ret = psc->driScreen.getMSC( psc->driScreen.private, & temp ); - *count = (unsigned) temp; - return (ret == 0) ? 0 : GLX_BAD_CONTEXT; - } - } -#else - (void) count; -#endif - return GLX_BAD_CONTEXT; -} - -PUBLIC int glXWaitVideoSyncSGI(int divisor, int remainder, unsigned int *count) -{ -#ifdef GLX_DIRECT_RENDERING - GLXContext gc = __glXGetCurrentContext(); - - if ( divisor <= 0 || remainder < 0 ) - return GLX_BAD_VALUE; - - if ( (gc != NULL) && gc->isDirect ) { - __GLXscreenConfigs * const psc = GetGLXScreenConfigs( gc->currentDpy, - gc->screen ); - if ( __glXExtensionBitIsEnabled( psc, SGI_video_sync_bit ) - && psc->driScreen.private ) { - __DRIdrawable * const pdraw = - (*psc->driScreen.getDrawable)(gc->currentDpy, - gc->currentDrawable, - psc->driScreen.private); - if ( (pdraw != NULL) && (pdraw->waitForMSC != NULL) ) { - int ret; - int64_t msc; - int64_t sbc; - - ret = (*pdraw->waitForMSC)( gc->currentDpy, pdraw->private, - 0, divisor, remainder, - & msc, & sbc ); - *count = (unsigned) msc; - return (ret == 0) ? 0 : GLX_BAD_CONTEXT; - } - } - } -#else - (void) count; -#endif - return GLX_BAD_CONTEXT; -} - - -/* -** GLX_SGIS_video_source -*/ -#if defined(_VL_H) - -PUBLIC GLXVideoSourceSGIX glXCreateGLXVideoSourceSGIX(Display *dpy, - int screen, VLServer server, VLPath path, - int nodeClass, VLNode drainNode) -{ - (void) dpy; - (void) screen; - (void) server; - (void) path; - (void) nodeClass; - (void) drainNode; - return 0; -} - -PUBLIC void glXDestroyGLXVideoSourceSGIX(Display *dpy, GLXVideoSourceSGIX src) -{ - (void) dpy; - (void) src; -} - -#endif - - -/* -** GLX_SGIX_fbconfig -** Many of these functions are aliased to GLX 1.3 entry points in the -** GLX_functions table. -*/ - -PUBLIC GLX_ALIAS(int, glXGetFBConfigAttribSGIX, - (Display *dpy, GLXFBConfigSGIX config, int attribute, int *value), - (dpy, config, attribute, value), - glXGetFBConfigAttrib) - -PUBLIC GLX_ALIAS(GLXFBConfigSGIX *, glXChooseFBConfigSGIX, - (Display *dpy, int screen, int *attrib_list, int *nelements), - (dpy, screen, attrib_list, nelements), - glXChooseFBConfig) - -PUBLIC GLX_ALIAS(XVisualInfo *, glXGetVisualFromFBConfigSGIX, - (Display * dpy, GLXFBConfigSGIX config), - (dpy, config), - glXGetVisualFromFBConfig) - -PUBLIC GLXPixmap glXCreateGLXPixmapWithConfigSGIX(Display *dpy, - GLXFBConfigSGIX config, Pixmap pixmap) -{ - xGLXVendorPrivateWithReplyReq *vpreq; - xGLXCreateGLXPixmapWithConfigSGIXReq *req; - GLXPixmap xid = None; - CARD8 opcode; - const __GLcontextModes * const fbconfig = (__GLcontextModes *) config; - __GLXscreenConfigs * psc; - - - if ( (dpy == NULL) || (config == NULL) ) { - return None; - } - - psc = GetGLXScreenConfigs( dpy, fbconfig->screen ); - if ( (psc != NULL) - && __glXExtensionBitIsEnabled( psc, SGIX_fbconfig_bit ) ) { - opcode = __glXSetupForCommand(dpy); - if (!opcode) { - return None; - } - - /* Send the glXCreateGLXPixmapWithConfigSGIX request */ - LockDisplay(dpy); - GetReqExtra(GLXVendorPrivateWithReply, - sz_xGLXCreateGLXPixmapWithConfigSGIXReq-sz_xGLXVendorPrivateWithReplyReq,vpreq); - req = (xGLXCreateGLXPixmapWithConfigSGIXReq *)vpreq; - req->reqType = opcode; - req->glxCode = X_GLXVendorPrivateWithReply; - req->vendorCode = X_GLXvop_CreateGLXPixmapWithConfigSGIX; - req->screen = fbconfig->screen; - req->fbconfig = fbconfig->fbconfigID; - req->pixmap = pixmap; - req->glxpixmap = xid = XAllocID(dpy); - UnlockDisplay(dpy); - SyncHandle(); - } - - return xid; -} - -PUBLIC GLXContext glXCreateContextWithConfigSGIX(Display *dpy, - GLXFBConfigSGIX config, int renderType, - GLXContext shareList, Bool allowDirect) -{ - GLXContext gc = NULL; - const __GLcontextModes * const fbconfig = (__GLcontextModes *) config; - __GLXscreenConfigs * psc; - - - if ( (dpy == NULL) || (config == NULL) ) { - return None; - } - - psc = GetGLXScreenConfigs( dpy, fbconfig->screen ); - if ( (psc != NULL) - && __glXExtensionBitIsEnabled( psc, SGIX_fbconfig_bit ) ) { - gc = CreateContext( dpy, NULL, (__GLcontextModes *) config, shareList, - allowDirect, None, False, renderType ); - } - - return gc; -} - - -PUBLIC GLXFBConfigSGIX glXGetFBConfigFromVisualSGIX(Display *dpy, - XVisualInfo *vis) -{ - __GLXdisplayPrivate *priv; - __GLXscreenConfigs *psc; - - if ( (GetGLXPrivScreenConfig( dpy, vis->screen, & priv, & psc ) != Success) - && __glXExtensionBitIsEnabled( psc, SGIX_fbconfig_bit ) - && (psc->configs->fbconfigID != GLX_DONT_CARE) ) { - return (GLXFBConfigSGIX) _gl_context_modes_find_visual( psc->configs, - vis->visualid ); - } - - return NULL; -} - - -/* -** GLX_SGI_cushion -*/ -PUBLIC void glXCushionSGI(Display *dpy, Window win, float cushion) -{ - (void) dpy; - (void) win; - (void) cushion; -} - - -/* -** GLX_SGIX_video_resize -*/ -PUBLIC int glXBindChannelToWindowSGIX(Display *dpy, int screen, - int channel , Window window) -{ - (void) dpy; - (void) screen; - (void) channel; - (void) window; - return 0; -} - -PUBLIC int glXChannelRectSGIX(Display *dpy, int screen, int channel, - int x, int y, int w, int h) -{ - (void) dpy; - (void) screen; - (void) channel; - (void) x; - (void) y; - (void) w; - (void) h; - return 0; -} - -PUBLIC int glXQueryChannelRectSGIX(Display *dpy, int screen, int channel, - int *x, int *y, int *w, int *h) -{ - (void) dpy; - (void) screen; - (void) channel; - (void) x; - (void) y; - (void) w; - (void) h; - return 0; -} - -int glXQueryChannelDeltasSGIX(Display *dpy, int screen, int channel, - int *dx, int *dy, int *dw, int *dh) -{ - (void) dpy; - (void) screen; - (void) channel; - (void) dx; - (void) dy; - (void) dw; - (void) dh; - return 0; -} - -PUBLIC int glXChannelRectSyncSGIX(Display *dpy, int screen, - int channel, GLenum synctype) -{ - (void) dpy; - (void) screen; - (void) channel; - (void) synctype; - return 0; -} - - -#if defined(_DM_BUFFER_H_) - -PUBLIC Bool glXAssociateDMPbufferSGIX(Display *dpy, GLXPbufferSGIX pbuffer, - DMparams *params, DMbuffer dmbuffer) -{ - (void) dpy; - (void) pbuffer; - (void) params; - (void) dmbuffer; - return False; -} - -#endif - - -/* -** GLX_SGIX_swap_group -*/ -PUBLIC void glXJoinSwapGroupSGIX(Display *dpy, GLXDrawable drawable, - GLXDrawable member) -{ - (void) dpy; - (void) drawable; - (void) member; -} - - -/* -** GLX_SGIX_swap_barrier -*/ -PUBLIC void glXBindSwapBarrierSGIX(Display *dpy, GLXDrawable drawable, - int barrier) -{ - (void) dpy; - (void) drawable; - (void) barrier; -} - -PUBLIC Bool glXQueryMaxSwapBarriersSGIX(Display *dpy, int screen, int *max) -{ - (void) dpy; - (void) screen; - (void) max; - return False; -} - - -/* -** GLX_SUN_get_transparent_index -*/ -PUBLIC Status glXGetTransparentIndexSUN(Display *dpy, Window overlay, - Window underlay, long *pTransparent) -{ - (void) dpy; - (void) overlay; - (void) underlay; - (void) pTransparent; - return 0; -} - - -/* -** GLX_OML_sync_control -*/ -PUBLIC Bool glXGetSyncValuesOML(Display *dpy, GLXDrawable drawable, - int64_t *ust, int64_t *msc, int64_t *sbc) -{ -#ifdef GLX_DIRECT_RENDERING - __GLXdisplayPrivate * const priv = __glXInitialize(dpy); - - if ( priv != NULL ) { - int i; - __DRIdrawable * const pdraw = GetDRIDrawable( dpy, drawable, & i ); - __GLXscreenConfigs * const psc = &priv->screenConfigs[i]; - - assert( (pdraw == NULL) || (i != -1) ); - return ( (pdraw && pdraw->getSBC && psc->driScreen.getMSC) - && __glXExtensionBitIsEnabled( psc, OML_sync_control_bit ) - && ((*psc->driScreen.getMSC)( psc->driScreen.private, msc ) == 0) - && ((*pdraw->getSBC)( dpy, psc->driScreen.private, sbc ) == 0) - && (__glXGetUST( ust ) == 0) ); - } -#else - (void) dpy; - (void) drawable; - (void) ust; - (void) msc; - (void) sbc; -#endif - return False; -} - - -/** - * Determine the refresh rate of the specified drawable and display. - * - * \param dpy Display whose refresh rate is to be determined. - * \param drawable Drawable whose refresh rate is to be determined. - * \param numerator Numerator of the refresh rate. - * \param demoninator Denominator of the refresh rate. - * \return If the refresh rate for the specified display and drawable could - * be calculated, True is returned. Otherwise False is returned. - * - * \note This function is implemented entirely client-side. A lot of other - * functionality is required to export GLX_OML_sync_control, so on - * XFree86 this function can be called for direct-rendering contexts - * when GLX_OML_sync_control appears in the client extension string. - */ - -PUBLIC Bool glXGetMscRateOML(Display * dpy, GLXDrawable drawable, - int32_t * numerator, int32_t * denominator) -{ -#if defined( GLX_DIRECT_RENDERING ) && defined( XF86VIDMODE ) - __GLXdisplayPrivate * const priv = __glXInitialize(dpy); - - - if ( priv != NULL ) { - XF86VidModeModeLine mode_line; - int dot_clock; - int screen_num; - int i; - - - GetDRIDrawable( dpy, drawable, & screen_num ); - if ( (screen_num != -1) - && XF86VidModeQueryVersion( dpy, & i, & i ) - && XF86VidModeGetModeLine( dpy, screen_num, & dot_clock, - & mode_line ) ) { - unsigned n = dot_clock * 1000; - unsigned d = mode_line.vtotal * mode_line.htotal; - -# define V_INTERLACE 0x010 -# define V_DBLSCAN 0x020 - - if ( (mode_line.flags & V_INTERLACE) ) { - n *= 2; - } - else if ( (mode_line.flags & V_DBLSCAN) ) { - d *= 2; - } - - /* The OML_sync_control spec requires that if the refresh rate is a - * whole number, that the returned numerator be equal to the refresh - * rate and the denominator be 1. - */ - - if ( (n % d) == 0 ) { - n /= d; - d = 1; - } - else { - static const unsigned f[] = { 13, 11, 7, 5, 3, 2, 0 }; - - - /* This is a poor man's way to reduce a fraction. It's far from - * perfect, but it will work well enough for this situation. - */ - - for ( i = 0 ; f[i] != 0 ; i++ ) { - while ( ((n % f[i]) == 0) && ((d % f[i]) == 0) ) { - d /= f[i]; - n /= f[i]; - } - } - } - - *numerator = n; - *denominator = d; - - (void) drawable; - return True; - } - } -#else - (void) dpy; - (void) drawable; - (void) numerator; - (void) denominator; -#endif - return False; -} - - -PUBLIC int64_t glXSwapBuffersMscOML(Display *dpy, GLXDrawable drawable, - int64_t target_msc, int64_t divisor, - int64_t remainder) -{ -#ifdef GLX_DIRECT_RENDERING - int screen; - __DRIdrawable *pdraw = GetDRIDrawable( dpy, drawable, & screen ); - __GLXscreenConfigs * const psc = GetGLXScreenConfigs( dpy, screen ); - - /* The OML_sync_control spec says these should "generate a GLX_BAD_VALUE - * error", but it also says "It [glXSwapBuffersMscOML] will return a value - * of -1 if the function failed because of errors detected in the input - * parameters" - */ - if ( divisor < 0 || remainder < 0 || target_msc < 0 ) - return -1; - if ( divisor > 0 && remainder >= divisor ) - return -1; - - if ( (pdraw != NULL) && (pdraw->swapBuffersMSC != NULL) - && __glXExtensionBitIsEnabled( psc, OML_sync_control_bit ) ) { - return (*pdraw->swapBuffersMSC)(dpy, pdraw->private, target_msc, - divisor, remainder); - } -#else - (void) dpy; - (void) drawable; - (void) target_msc; - (void) divisor; - (void) remainder; -#endif - return 0; -} - - -PUBLIC 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) -{ -#ifdef GLX_DIRECT_RENDERING - int screen; - __DRIdrawable *pdraw = GetDRIDrawable( dpy, drawable, & screen ); - __GLXscreenConfigs * const psc = GetGLXScreenConfigs( dpy, screen ); - int ret; - - /* The OML_sync_control spec says these should "generate a GLX_BAD_VALUE - * error", but the return type in the spec is Bool. - */ - if ( divisor < 0 || remainder < 0 || target_msc < 0 ) - return False; - if ( divisor > 0 && remainder >= divisor ) - return False; - - if ( (pdraw != NULL) && (pdraw->waitForMSC != NULL) - && __glXExtensionBitIsEnabled( psc, OML_sync_control_bit ) ) { - ret = (*pdraw->waitForMSC)( dpy, pdraw->private, target_msc, - divisor, remainder, msc, sbc ); - - /* __glXGetUST returns zero on success and non-zero on failure. - * This function returns True on success and False on failure. - */ - return ( (ret == 0) && (__glXGetUST( ust ) == 0) ); - } -#else - (void) dpy; - (void) drawable; - (void) target_msc; - (void) divisor; - (void) remainder; - (void) ust; - (void) msc; - (void) sbc; -#endif - return False; -} - - -PUBLIC Bool glXWaitForSbcOML(Display * dpy, GLXDrawable drawable, - int64_t target_sbc, int64_t *ust, - int64_t *msc, int64_t *sbc ) -{ -#ifdef GLX_DIRECT_RENDERING - int screen; - __DRIdrawable *pdraw = GetDRIDrawable( dpy, drawable, & screen ); - __GLXscreenConfigs * const psc = GetGLXScreenConfigs( dpy, screen ); - int ret; - - /* The OML_sync_control spec says this should "generate a GLX_BAD_VALUE - * error", but the return type in the spec is Bool. - */ - if ( target_sbc < 0 ) - return False; - - if ( (pdraw != NULL) && (pdraw->waitForSBC != NULL) - && __glXExtensionBitIsEnabled( psc, OML_sync_control_bit )) { - ret = (*pdraw->waitForSBC)( dpy, pdraw->private, target_sbc, msc, sbc ); - - /* __glXGetUST returns zero on success and non-zero on failure. - * This function returns True on success and False on failure. - */ - return( (ret == 0) && (__glXGetUST( ust ) == 0) ); - } -#else - (void) dpy; - (void) drawable; - (void) target_sbc; - (void) ust; - (void) msc; - (void) sbc; -#endif - return False; -} - - -/** - * GLX_MESA_allocate_memory - */ -/*@{*/ - -PUBLIC void *glXAllocateMemoryMESA(Display *dpy, int scrn, - size_t size, float readFreq, - float writeFreq, float priority) -{ -#ifdef GLX_DIRECT_RENDERING - __GLXscreenConfigs * const psc = GetGLXScreenConfigs( dpy, scrn ); - - if ( __glXExtensionBitIsEnabled( psc, MESA_allocate_memory_bit ) ) { - if (psc && psc->driScreen.private && psc->driScreen.allocateMemory) { - return (*psc->driScreen.allocateMemory)( dpy, scrn, size, - readFreq, writeFreq, - priority ); - } - } -#else - (void) dpy; - (void) scrn; - (void) size; - (void) readFreq; - (void) writeFreq; - (void) priority; -#endif /* GLX_DIRECT_RENDERING */ - - return NULL; -} - - -PUBLIC void glXFreeMemoryMESA(Display *dpy, int scrn, void *pointer) -{ -#ifdef GLX_DIRECT_RENDERING - __GLXscreenConfigs * const psc = GetGLXScreenConfigs( dpy, scrn ); - - if ( __glXExtensionBitIsEnabled( psc, MESA_allocate_memory_bit ) ) { - if (psc && psc->driScreen.private && psc->driScreen.freeMemory) { - (*psc->driScreen.freeMemory)( dpy, scrn, pointer ); - } - } -#else - (void) dpy; - (void) scrn; - (void) pointer; -#endif /* GLX_DIRECT_RENDERING */ -} - - -PUBLIC GLuint glXGetMemoryOffsetMESA( Display *dpy, int scrn, - const void *pointer ) -{ -#ifdef GLX_DIRECT_RENDERING - __GLXscreenConfigs * const psc = GetGLXScreenConfigs( dpy, scrn ); - - if ( __glXExtensionBitIsEnabled( psc, MESA_allocate_memory_bit ) ) { - if (psc && psc->driScreen.private && psc->driScreen.memoryOffset) { - return (*psc->driScreen.memoryOffset)( dpy, scrn, pointer ); - } - } -#else - (void) dpy; - (void) scrn; - (void) pointer; -#endif /* GLX_DIRECT_RENDERING */ - - return ~0L; -} -/*@}*/ - - -/** - * Mesa extension stubs. These will help reduce portability problems. - */ -/*@{*/ - -/** - * Release all buffers associated with the specified GLX drawable. - * - * \todo - * This function was intended for stand-alone Mesa. The issue there is that - * the library doesn't get any notification when a window is closed. In - * DRI there is a similar but slightly different issue. When GLX 1.3 is - * supported, there are 3 different functions to destroy a drawable. It - * should be possible to create GLX protocol (or have it determine which - * protocol to use based on the type of the drawable) to have one function - * do the work of 3. For the direct-rendering case, this function could - * just call the driver's \c __DRIdrawableRec::destroyDrawable function. - * This would reduce the frequency with which \c __driGarbageCollectDrawables - * would need to be used. This really should be done as part of the new DRI - * interface work. - * - * \sa http://oss.sgi.com/projects/ogl-sample/registry/MESA/release_buffers.txt - * __driGarbageCollectDrawables - * glXDestroyGLXPixmap - * glXDestroyPbuffer glXDestroyPixmap glXDestroyWindow - * glXDestroyGLXPbufferSGIX glXDestroyGLXVideoSourceSGIX - */ -PUBLIC Bool glXReleaseBuffersMESA( Display *dpy, GLXDrawable d ) -{ - (void) dpy; - (void) d; - return False; -} - - -PUBLIC GLXPixmap glXCreateGLXPixmapMESA( Display *dpy, XVisualInfo *visual, - Pixmap pixmap, Colormap cmap ) -{ - (void) dpy; - (void) visual; - (void) pixmap; - (void) cmap; - return 0; -} - - -PUBLIC void glXCopySubBufferMESA(Display *dpy, GLXDrawable drawable, - int x, int y, int width, int height) -{ - (void) dpy; - (void) drawable; - (void) x; - (void) y; - (void) width; - (void) height; -} - - -PUBLIC Bool glXSet3DfxModeMESA( int mode ) -{ - (void) mode; - return GL_FALSE; -} -/*@}*/ - - - -/** - * \c strdup is actually not a standard ANSI C or POSIX routine. - * Irix will not define it if ANSI mode is in effect. - * - * \sa strdup - */ -char * -__glXstrdup(const char *str) -{ - char *copy; - copy = (char *) Xmalloc(strlen(str) + 1); - if (!copy) - return NULL; - strcpy(copy, str); - return copy; -} - -/* -** glXGetProcAddress support -*/ - -struct name_address_pair { - const char *Name; - GLvoid *Address; -}; - -#define GLX_FUNCTION(f) { # f, (GLvoid *) f } -#define GLX_FUNCTION2(n,f) { # n, (GLvoid *) f } - -static const struct name_address_pair GLX_functions[] = { - /*** GLX_VERSION_1_0 ***/ - GLX_FUNCTION( glXChooseVisual ), - GLX_FUNCTION( glXCopyContext ), - GLX_FUNCTION( glXCreateContext ), - GLX_FUNCTION( glXCreateGLXPixmap ), - GLX_FUNCTION( glXDestroyContext ), - GLX_FUNCTION( glXDestroyGLXPixmap ), - GLX_FUNCTION( glXGetConfig ), - GLX_FUNCTION( glXGetCurrentContext ), - GLX_FUNCTION( glXGetCurrentDrawable ), - GLX_FUNCTION( glXIsDirect ), - GLX_FUNCTION( glXMakeCurrent ), - GLX_FUNCTION( glXQueryExtension ), - GLX_FUNCTION( glXQueryVersion ), - GLX_FUNCTION( glXSwapBuffers ), - GLX_FUNCTION( glXUseXFont ), - GLX_FUNCTION( glXWaitGL ), - GLX_FUNCTION( glXWaitX ), - - /*** GLX_VERSION_1_1 ***/ - GLX_FUNCTION( glXGetClientString ), - GLX_FUNCTION( glXQueryExtensionsString ), - GLX_FUNCTION( glXQueryServerString ), - - /*** GLX_VERSION_1_2 ***/ - GLX_FUNCTION( glXGetCurrentDisplay ), - - /*** GLX_VERSION_1_3 ***/ - GLX_FUNCTION( glXChooseFBConfig ), - GLX_FUNCTION( glXCreateNewContext ), - GLX_FUNCTION( glXCreatePbuffer ), - GLX_FUNCTION( glXCreatePixmap ), - GLX_FUNCTION( glXCreateWindow ), - GLX_FUNCTION( glXDestroyPbuffer ), - GLX_FUNCTION( glXDestroyPixmap ), - GLX_FUNCTION( glXDestroyWindow ), - GLX_FUNCTION( glXGetCurrentReadDrawable ), - GLX_FUNCTION( glXGetFBConfigAttrib ), - GLX_FUNCTION( glXGetFBConfigs ), - GLX_FUNCTION( glXGetSelectedEvent ), - GLX_FUNCTION( glXGetVisualFromFBConfig ), - GLX_FUNCTION( glXMakeContextCurrent ), - GLX_FUNCTION( glXQueryContext ), - GLX_FUNCTION( glXQueryDrawable ), - GLX_FUNCTION( glXSelectEvent ), - - /*** GLX_SGI_swap_control ***/ - GLX_FUNCTION( glXSwapIntervalSGI ), - - /*** GLX_SGI_video_sync ***/ - GLX_FUNCTION( glXGetVideoSyncSGI ), - GLX_FUNCTION( glXWaitVideoSyncSGI ), - - /*** GLX_SGI_make_current_read ***/ - GLX_FUNCTION2( glXMakeCurrentReadSGI, glXMakeContextCurrent ), - GLX_FUNCTION2( glXGetCurrentReadDrawableSGI, glXGetCurrentReadDrawable ), - - /*** GLX_SGIX_video_source ***/ -#if defined(_VL_H) - GLX_FUNCTION( glXCreateGLXVideoSourceSGIX ), - GLX_FUNCTION( glXDestroyGLXVideoSourceSGIX ), -#endif - - /*** GLX_EXT_import_context ***/ - GLX_FUNCTION( glXFreeContextEXT ), - GLX_FUNCTION( glXGetContextIDEXT ), - GLX_FUNCTION2( glXGetCurrentDisplayEXT, glXGetCurrentDisplay ), - GLX_FUNCTION( glXImportContextEXT ), - GLX_FUNCTION2( glXQueryContextInfoEXT, glXQueryContext ), - - /*** GLX_SGIX_fbconfig ***/ - GLX_FUNCTION2( glXGetFBConfigAttribSGIX, glXGetFBConfigAttrib ), - GLX_FUNCTION2( glXChooseFBConfigSGIX, glXChooseFBConfig ), - GLX_FUNCTION( glXCreateGLXPixmapWithConfigSGIX ), - GLX_FUNCTION( glXCreateContextWithConfigSGIX ), - GLX_FUNCTION2( glXGetVisualFromFBConfigSGIX, glXGetVisualFromFBConfig ), - GLX_FUNCTION( glXGetFBConfigFromVisualSGIX ), - - /*** GLX_SGIX_pbuffer ***/ - GLX_FUNCTION( glXCreateGLXPbufferSGIX ), - GLX_FUNCTION( glXDestroyGLXPbufferSGIX ), - GLX_FUNCTION( glXQueryGLXPbufferSGIX ), - GLX_FUNCTION( glXSelectEventSGIX ), - GLX_FUNCTION( glXGetSelectedEventSGIX ), - - /*** GLX_SGI_cushion ***/ - GLX_FUNCTION( glXCushionSGI ), - - /*** GLX_SGIX_video_resize ***/ - GLX_FUNCTION( glXBindChannelToWindowSGIX ), - GLX_FUNCTION( glXChannelRectSGIX ), - GLX_FUNCTION( glXQueryChannelRectSGIX ), - GLX_FUNCTION( glXQueryChannelDeltasSGIX ), - GLX_FUNCTION( glXChannelRectSyncSGIX ), - - /*** GLX_SGIX_dmbuffer **/ -#if defined(_DM_BUFFER_H_) - GLX_FUNCTION( glXAssociateDMPbufferSGIX ), -#endif - - /*** GLX_SGIX_swap_group ***/ - GLX_FUNCTION( glXJoinSwapGroupSGIX ), - - /*** GLX_SGIX_swap_barrier ***/ - GLX_FUNCTION( glXBindSwapBarrierSGIX ), - GLX_FUNCTION( glXQueryMaxSwapBarriersSGIX ), - - /*** GLX_SUN_get_transparent_index ***/ - GLX_FUNCTION( glXGetTransparentIndexSUN ), - - /*** GLX_MESA_allocate_memory ***/ - GLX_FUNCTION( glXAllocateMemoryMESA ), - GLX_FUNCTION( glXFreeMemoryMESA ), - GLX_FUNCTION( glXGetMemoryOffsetMESA ), - - /*** GLX_MESA_copy_sub_buffer ***/ - GLX_FUNCTION( glXCopySubBufferMESA ), - - /*** GLX_MESA_pixmap_colormap ***/ - GLX_FUNCTION( glXCreateGLXPixmapMESA ), - - /*** GLX_MESA_release_buffers ***/ - GLX_FUNCTION( glXReleaseBuffersMESA ), - - /*** GLX_MESA_set_3dfx_mode ***/ - GLX_FUNCTION( glXSet3DfxModeMESA ), - - /*** GLX_MESA_swap_control ***/ - GLX_FUNCTION( glXSwapIntervalMESA ), - GLX_FUNCTION( glXGetSwapIntervalMESA ), - - /*** GLX_MESA_swap_frame_usage ***/ - GLX_FUNCTION( glXBeginFrameTrackingMESA ), - GLX_FUNCTION( glXEndFrameTrackingMESA ), - GLX_FUNCTION( glXGetFrameUsageMESA ), - GLX_FUNCTION( glXQueryFrameTrackingMESA ), - - /*** GLX_ARB_get_proc_address ***/ - GLX_FUNCTION( glXGetProcAddressARB ), - - /*** GLX 1.4 ***/ - GLX_FUNCTION2( glXGetProcAddress, glXGetProcAddressARB ), - - /*** GLX_OML_sync_control ***/ - GLX_FUNCTION( glXWaitForSbcOML ), - GLX_FUNCTION( glXWaitForMscOML ), - GLX_FUNCTION( glXSwapBuffersMscOML ), - GLX_FUNCTION( glXGetMscRateOML ), - GLX_FUNCTION( glXGetSyncValuesOML ), - -#ifdef GLX_DIRECT_RENDERING - /*** DRI configuration ***/ - GLX_FUNCTION( glXGetScreenDriver ), - GLX_FUNCTION( glXGetDriverConfig ), -#endif - - { NULL, NULL } /* end of list */ -}; - - -static const GLvoid * -get_glx_proc_address(const char *funcName) -{ - GLuint i; - - /* try static functions */ - for (i = 0; GLX_functions[i].Name; i++) { - if (strcmp(GLX_functions[i].Name, funcName) == 0) - return GLX_functions[i].Address; - } - - return NULL; -} - - -/** - * Get the address of a named GL function. This is the pre-GLX 1.4 name for - * \c glXGetProcAddress. - * - * \param procName Name of a GL or GLX function. - * \returns A pointer to the named function - * - * \sa glXGetProcAddress - */ -PUBLIC void (*glXGetProcAddressARB(const GLubyte *procName))( void ) -{ - typedef void (*gl_function)( void ); - gl_function f; - - - /* Search the table of GLX and internal functions first. If that - * fails and the supplied name could be a valid core GL name, try - * searching the core GL function table. This check is done to prevent - * DRI based drivers from searching the core GL function table for - * internal API functions. - */ - - f = (gl_function) get_glx_proc_address((const char *) procName); - if ( (f == NULL) && (procName[0] == 'g') && (procName[1] == 'l') - && (procName[2] != 'X') ) { - f = (gl_function) _glapi_get_proc_address((const char *) procName); - } - - return f; -} - -/** - * Get the address of a named GL function. This is the GLX 1.4 name for - * \c glXGetProcAddressARB. - * - * \param procName Name of a GL or GLX function. - * \returns A pointer to the named function - * - * \sa glXGetProcAddressARB - */ -PUBLIC void (*glXGetProcAddress(const GLubyte *procName))( void ) -#if defined(__GNUC__) && !defined(GLX_ALIAS_UNSUPPORTED) - __attribute__ ((alias ("glXGetProcAddressARB"))); -#else -{ - return glXGetProcAddressARB(procName); -} -#endif /* __GNUC__ */ - - -#ifdef GLX_DIRECT_RENDERING -/** - * Retrieves the verion of the internal libGL API in YYYYMMDD format. This - * might be used by the DRI drivers to determine how new libGL is at runtime. - * Drivers should not call this function directly. They should instead use - * \c glXGetProcAddress to obtain a pointer to the function. - * - * \returns An 8-digit decimal number representing the internal libGL API in - * YYYYMMDD format. - * - * \sa glXGetProcAddress, PFNGLXGETINTERNALVERSIONPROC - * - * \since Internal API version 20021121. - */ -int __glXGetInternalVersion(void) -{ - /* History: - * 20021121 - Initial version - * 20021128 - Added __glXWindowExists() function - * 20021207 - Added support for dynamic GLX extensions, - * GLX_SGI_swap_control, GLX_SGI_video_sync, - * GLX_OML_sync_control, and GLX_MESA_swap_control. - * Never officially released. Do NOT test against - * this version. Use 20030317 instead. - * 20030317 - Added support GLX_SGIX_fbconfig, - * GLX_MESA_swap_frame_usage, GLX_OML_swap_method, - * GLX_{ARB,SGIS}_multisample, and - * GLX_SGIX_visual_select_group. - * 20030606 - Added support for GLX_SGI_make_current_read. - * 20030813 - Made support for dynamic extensions multi-head aware. - * 20030818 - Added support for GLX_MESA_allocate_memory in place of the - * deprecated GLX_NV_vertex_array_range & GLX_MESA_agp_offset - * interfaces. - * 20031201 - Added support for the first round of DRI interface changes. - * Do NOT test against this version! It has binary - * compatibility bugs, use 20040317 instead. - * 20040317 - Added the 'mode' field to __DRIcontextRec. - * 20040415 - Added support for bindContext3 and unbindContext3. - * 20040602 - Add __glXGetDrawableInfo. I though that was there - * months ago. :( - * 20050727 - Gut all the old interfaces. This breaks compatability with - * any DRI driver built to any previous version. - */ - return 20050727; -} - - - -static Bool windowExistsFlag; - -static int windowExistsErrorHandler(Display *dpy, XErrorEvent *xerr) -{ - if (xerr->error_code == BadWindow) { - windowExistsFlag = GL_FALSE; - } - return 0; -} - -/** - * Determine if a window associated with a \c GLXDrawable exists on the - * X-server. This function is not used internally by libGL. It is provided - * as a utility function for DRI drivers. - * Drivers should not call this function directly. They should instead use - * \c glXGetProcAddress to obtain a pointer to the function. - * - * \param dpy Display associated with the drawable to be queried. - * \param draw \c GLXDrawable to test. - * - * \returns \c GL_TRUE if a window exists that is associated with \c draw, - * otherwise \c GL_FALSE is returned. - * - * \warning This function is not currently thread-safe. - * - * \sa glXGetProcAddress - * - * \since Internal API version 20021128. - */ -Bool __glXWindowExists(Display *dpy, GLXDrawable draw) -{ - XWindowAttributes xwa; - int (*oldXErrorHandler)(Display *, XErrorEvent *); - - XSync(dpy, GL_FALSE); - windowExistsFlag = GL_TRUE; - oldXErrorHandler = XSetErrorHandler(windowExistsErrorHandler); - XGetWindowAttributes(dpy, draw, &xwa); /* dummy request */ - XSetErrorHandler(oldXErrorHandler); - return windowExistsFlag; -} - - -/** - * Get the unadjusted system time (UST). Currently, the UST is measured in - * microseconds since Epoc. The actual resolution of the UST may vary from - * system to system, and the units may vary from release to release. - * Drivers should not call this function directly. They should instead use - * \c glXGetProcAddress to obtain a pointer to the function. - * - * \param ust Location to store the 64-bit UST - * \returns Zero on success or a negative errno value on failure. - * - * \sa glXGetProcAddress, PFNGLXGETUSTPROC - * - * \since Internal API version 20030317. - */ -int __glXGetUST( int64_t * ust ) -{ - struct timeval tv; - - if ( ust == NULL ) { - return -EFAULT; - } - - if ( gettimeofday( & tv, NULL ) == 0 ) { - ust[0] = (tv.tv_sec * 1000000) + tv.tv_usec; - return 0; - } else { - return -errno; - } -} -#endif /* GLX_DIRECT_RENDERING */ diff --git a/nx-X11/extras/Mesa/src/glx/x11/glxext.c b/nx-X11/extras/Mesa/src/glx/x11/glxext.c deleted file mode 100644 index eb6e870e9..000000000 --- a/nx-X11/extras/Mesa/src/glx/x11/glxext.c +++ /dev/null @@ -1,1864 +0,0 @@ -/* $XFree86: xc/lib/GL/glx/glxext.c,v 1.22 2003/12/08 17:35:28 dawes Exp $ */ - -/* -** License Applicability. Except to the extent portions of this file are -** made subject to an alternative license as permitted in the SGI Free -** Software License B, Version 1.1 (the "License"), the contents of this -** file are subject only to the provisions of the License. You may not use -** this file except in compliance with the License. You may obtain a copy -** of the License at Silicon Graphics, Inc., attn: Legal Services, 1600 -** Amphitheatre Parkway, Mountain View, CA 94043-1351, or at: -** -** http://oss.sgi.com/projects/FreeB -** -** Note that, as provided in the License, the Software is distributed on an -** "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS -** DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND -** CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A -** PARTICULAR PURPOSE, AND NON-INFRINGEMENT. -** -** Original Code. The Original Code is: OpenGL Sample Implementation, -** Version 1.2.1, released January 26, 2000, developed by Silicon Graphics, -** Inc. The Original Code is Copyright (c) 1991-2000 Silicon Graphics, Inc. -** Copyright in any portions created by third parties is as indicated -** elsewhere herein. All Rights Reserved. -** -** Additional Notice Provisions: The application programming interfaces -** established by SGI in conjunction with the Original Code are The -** OpenGL(R) Graphics System: A Specification (Version 1.2.1), released -** April 1, 1999; The OpenGL(R) Graphics System Utility Library (Version -** 1.3), released November 4, 1998; and OpenGL(R) Graphics with the X -** Window System(R) (Version 1.3), released October 19, 1998. This software -** was created using the OpenGL(R) version 1.2.1 Sample Implementation -** published by SGI, but has not been independently verified as being -** compliant with the OpenGL(R) version 1.2.1 Specification. -** -*/ - -/** - * \file glxext.c - * GLX protocol interface boot-strap code. - * - * Direct rendering support added by Precision Insight, Inc. - * - * \author Kevin E. Martin - */ - -#include "glxclient.h" -#include -#include -#include -#include -#include "indirect_init.h" -#include "glapi.h" -#include "glxextensions.h" -#include "glcontextmodes.h" -#include "glheader.h" - -#ifdef GLX_DIRECT_RENDERING -#include -#include -#include "xf86dri.h" -#include "sarea.h" -#include "dri_glx.h" -#endif - -#ifdef USE_XCB -#include -#include -#include -#endif - -#include - -#ifdef DEBUG -void __glXDumpDrawBuffer(__GLXcontext *ctx); -#endif - -#ifdef USE_SPARC_ASM -/* - * This is where our dispatch table's bounds are. - * And the static mesa_init is taken directly from - * Mesa's 'sparc.c' initializer. - * - * We need something like this here, because this version - * of openGL/glx never initializes a Mesa context, and so - * the address of the dispatch table pointer never gets stuffed - * into the dispatch jump table otherwise. - * - * It matters only on SPARC, and only if you are using assembler - * code instead of C-code indirect dispatch. - * - * -- FEM, 04.xii.03 - */ -extern unsigned int _mesa_sparc_glapi_begin; -extern unsigned int _mesa_sparc_glapi_end; -extern void __glapi_sparc_icache_flush(unsigned int *); -static void _glx_mesa_init_sparc_glapi_relocs(void); -static int _mesa_sparc_needs_init = 1; -#define INIT_MESA_SPARC { \ - if(_mesa_sparc_needs_init) { \ - _glx_mesa_init_sparc_glapi_relocs(); \ - _mesa_sparc_needs_init = 0; \ - } \ -} -#else -#define INIT_MESA_SPARC -#endif - -#ifdef GLX_DIRECT_RENDERING -static __DRIscreen *__glXFindDRIScreen(__DRInativeDisplay *dpy, int scrn); -#endif /* GLX_DIRECT_RENDERING */ - -static Bool MakeContextCurrent(Display *dpy, GLXDrawable draw, - GLXDrawable read, GLXContext gc); - -/* -** We setup some dummy structures here so that the API can be used -** even if no context is current. -*/ - -static GLubyte dummyBuffer[__GLX_BUFFER_LIMIT_SIZE]; - -/* -** Dummy context used by small commands when there is no current context. -** All the -** gl and glx entry points are designed to operate as nop's when using -** the dummy context structure. -*/ -static __GLXcontext dummyContext = { - &dummyBuffer[0], - &dummyBuffer[0], - &dummyBuffer[0], - &dummyBuffer[__GLX_BUFFER_LIMIT_SIZE], - sizeof(dummyBuffer), -}; - - -/* -** All indirect rendering contexts will share the same indirect dispatch table. -*/ -static __GLapi *IndirectAPI = NULL; - - -/* - * Current context management and locking - */ - -#if defined( USE_XTHREADS ) - -/* thread safe */ -static GLboolean TSDinitialized = GL_FALSE; -static xthread_key_t ContextTSD; - -__GLXcontext *__glXGetCurrentContext(void) -{ - if (!TSDinitialized) { - xthread_key_create(&ContextTSD, NULL); - TSDinitialized = GL_TRUE; - return &dummyContext; - } - else { - void *p; - xthread_get_specific(ContextTSD, &p); - if (!p) - return &dummyContext; - else - return (__GLXcontext *) p; - } -} - -void __glXSetCurrentContext(__GLXcontext *c) -{ - if (!TSDinitialized) { - xthread_key_create(&ContextTSD, NULL); - TSDinitialized = GL_TRUE; - } - xthread_set_specific(ContextTSD, c); -} - - -/* Used by the __glXLock() and __glXUnlock() macros */ -xmutex_rec __glXmutex; - -#elif defined( PTHREADS ) - -pthread_mutex_t __glXmutex = PTHREAD_MUTEX_INITIALIZER; - -# if defined( GLX_USE_TLS ) - -/** - * Per-thread GLX context pointer. - * - * \c __glXSetCurrentContext is written is such a way that this pointer can - * \b never be \c NULL. This is important! Because of this - * \c __glXGetCurrentContext can be implemented as trivial macro. - */ -__thread void * __glX_tls_Context __attribute__((tls_model("initial-exec"))) - = &dummyContext; - -void __glXSetCurrentContext( __GLXcontext * c ) -{ - __glX_tls_Context = (c != NULL) ? c : &dummyContext; -} - -# else - -static pthread_once_t once_control = PTHREAD_ONCE_INIT; - -/** - * Per-thread data key. - * - * Once \c init_thread_data has been called, the per-thread data key will - * take a value of \c NULL. As each new thread is created the default - * value, in that thread, will be \c NULL. - */ -static pthread_key_t ContextTSD; - -/** - * Initialize the per-thread data key. - * - * This function is called \b exactly once per-process (not per-thread!) to - * initialize the per-thread data key. This is ideally done using the - * \c pthread_once mechanism. - */ -static void init_thread_data( void ) -{ - if ( pthread_key_create( & ContextTSD, NULL ) != 0 ) { - perror( "pthread_key_create" ); - exit( -1 ); - } -} - -void __glXSetCurrentContext( __GLXcontext * c ) -{ - pthread_once( & once_control, init_thread_data ); - pthread_setspecific( ContextTSD, c ); -} - -__GLXcontext * __glXGetCurrentContext( void ) -{ - void * v; - - pthread_once( & once_control, init_thread_data ); - - v = pthread_getspecific( ContextTSD ); - return (v == NULL) ? & dummyContext : (__GLXcontext *) v; -} - -# endif /* defined( GLX_USE_TLS ) */ - -#elif defined( THREADS ) - -#error Unknown threading method specified. - -#else - -/* not thread safe */ -__GLXcontext *__glXcurrentContext = &dummyContext; - -#endif - - -/* -** You can set this cell to 1 to force the gl drawing stuff to be -** one command per packet -*/ -int __glXDebug = 0; - -/* -** forward prototype declarations -*/ -int __glXCloseDisplay(Display *dpy, XExtCodes *codes); - - -/************************************************************************/ - -/* Extension required boiler plate */ - -static char *__glXExtensionName = GLX_EXTENSION_NAME; -XExtensionInfo *__glXExtensionInfo = NULL; - -static /* const */ char *error_list[] = { - "GLXBadContext", - "GLXBadContextState", - "GLXBadDrawable", - "GLXBadPixmap", - "GLXBadContextTag", - "GLXBadCurrentWindow", - "GLXBadRenderRequest", - "GLXBadLargeRequest", - "GLXUnsupportedPrivateRequest", -}; - -int __glXCloseDisplay(Display *dpy, XExtCodes *codes) -{ - GLXContext gc; - - gc = __glXGetCurrentContext(); - if (dpy == gc->currentDpy) { - __glXSetCurrentContext(&dummyContext); -#ifdef GLX_DIRECT_RENDERING - _glapi_set_dispatch(NULL); /* no-op functions */ -#endif - __glXFreeContext(gc); - } - - return XextRemoveDisplay(__glXExtensionInfo, dpy); -} - - -static XEXT_GENERATE_ERROR_STRING(__glXErrorString, __glXExtensionName, - __GLX_NUMBER_ERRORS, error_list) - -static /* const */ XExtensionHooks __glXExtensionHooks = { - NULL, /* create_gc */ - NULL, /* copy_gc */ - NULL, /* flush_gc */ - NULL, /* free_gc */ - NULL, /* create_font */ - NULL, /* free_font */ - __glXCloseDisplay, /* close_display */ - NULL, /* wire_to_event */ - NULL, /* event_to_wire */ - NULL, /* error */ - __glXErrorString, /* error_string */ -}; - -static -XEXT_GENERATE_FIND_DISPLAY(__glXFindDisplay, __glXExtensionInfo, - __glXExtensionName, &__glXExtensionHooks, - __GLX_NUMBER_EVENTS, NULL) - -/************************************************************************/ - -/* -** Free the per screen configs data as well as the array of -** __glXScreenConfigs. -*/ -static void FreeScreenConfigs(__GLXdisplayPrivate *priv) -{ - __GLXscreenConfigs *psc; - GLint i, screens; - - /* Free screen configuration information */ - psc = priv->screenConfigs; - screens = ScreenCount(priv->dpy); - for (i = 0; i < screens; i++, psc++) { - if (psc->configs) { - _gl_context_modes_destroy( psc->configs ); - if(psc->effectiveGLXexts) - Xfree(psc->effectiveGLXexts); - - psc->configs = NULL; /* NOTE: just for paranoia */ - } - -#ifdef GLX_DIRECT_RENDERING - /* Free the direct rendering per screen data */ - if (psc->driScreen.private) - (*psc->driScreen.destroyScreen)(priv->dpy, i, - psc->driScreen.private); - psc->driScreen.private = NULL; -#endif - } - XFree((char*) priv->screenConfigs); -} - -/* -** Release the private memory referred to in a display private -** structure. The caller will free the extension structure. -*/ -static int __glXFreeDisplayPrivate(XExtData *extension) -{ - __GLXdisplayPrivate *priv; - - priv = (__GLXdisplayPrivate*) extension->private_data; - FreeScreenConfigs(priv); - if(priv->serverGLXvendor) { - Xfree((char*)priv->serverGLXvendor); - priv->serverGLXvendor = 0x0; /* to protect against double free's */ - } - if(priv->serverGLXversion) { - Xfree((char*)priv->serverGLXversion); - priv->serverGLXversion = 0x0; /* to protect against double free's */ - } - -#if 0 /* GLX_DIRECT_RENDERING */ - /* Free the direct rendering per display data */ - if (priv->driDisplay.private) - (*priv->driDisplay.destroyDisplay)(priv->dpy, - priv->driDisplay.private); - priv->driDisplay.private = NULL; -#endif - - Xfree((char*) priv); - return 0; -} - -/************************************************************************/ - -/* -** Query the version of the GLX extension. This procedure works even if -** the client extension is not completely set up. -*/ -static Bool QueryVersion(Display *dpy, int opcode, int *major, int *minor) -{ - xGLXQueryVersionReq *req; - xGLXQueryVersionReply reply; - - /* Send the glXQueryVersion request */ - LockDisplay(dpy); - GetReq(GLXQueryVersion,req); - req->reqType = opcode; - req->glxCode = X_GLXQueryVersion; - req->majorVersion = GLX_MAJOR_VERSION; - req->minorVersion = GLX_MINOR_VERSION; - _XReply(dpy, (xReply*) &reply, 0, False); - UnlockDisplay(dpy); - SyncHandle(); - - if (reply.majorVersion != GLX_MAJOR_VERSION) { - /* - ** The server does not support the same major release as this - ** client. - */ - return GL_FALSE; - } - *major = reply.majorVersion; - *minor = min(reply.minorVersion, GLX_MINOR_VERSION); - return GL_TRUE; -} - - -void -__glXInitializeVisualConfigFromTags( __GLcontextModes *config, int count, - const INT32 *bp, Bool tagged_only, - Bool fbconfig_style_tags ) -{ - int i; - - if (!tagged_only) { - /* Copy in the first set of properties */ - config->visualID = *bp++; - - config->visualType = _gl_convert_from_x_visual_type( *bp++ ); - - config->rgbMode = *bp++; - - config->redBits = *bp++; - config->greenBits = *bp++; - config->blueBits = *bp++; - config->alphaBits = *bp++; - config->accumRedBits = *bp++; - config->accumGreenBits = *bp++; - config->accumBlueBits = *bp++; - config->accumAlphaBits = *bp++; - - config->doubleBufferMode = *bp++; - config->stereoMode = *bp++; - - config->rgbBits = *bp++; - config->depthBits = *bp++; - config->stencilBits = *bp++; - config->numAuxBuffers = *bp++; - config->level = *bp++; - - count -= __GLX_MIN_CONFIG_PROPS; - } - - /* - ** Additional properties may be in a list at the end - ** of the reply. They are in pairs of property type - ** and property value. - */ - -#define FETCH_OR_SET(tag) \ - config-> tag = ( fbconfig_style_tags ) ? *bp++ : 1 - - for (i = 0; i < count; i += 2 ) { - switch(*bp++) { - case GLX_RGBA: - FETCH_OR_SET( rgbMode ); - break; - case GLX_BUFFER_SIZE: - config->rgbBits = *bp++; - break; - case GLX_LEVEL: - config->level = *bp++; - break; - case GLX_DOUBLEBUFFER: - FETCH_OR_SET( doubleBufferMode ); - break; - case GLX_STEREO: - FETCH_OR_SET( stereoMode ); - break; - case GLX_AUX_BUFFERS: - config->numAuxBuffers = *bp++; - break; - case GLX_RED_SIZE: - config->redBits = *bp++; - break; - case GLX_GREEN_SIZE: - config->greenBits = *bp++; - break; - case GLX_BLUE_SIZE: - config->blueBits = *bp++; - break; - case GLX_ALPHA_SIZE: - config->alphaBits = *bp++; - break; - case GLX_DEPTH_SIZE: - config->depthBits = *bp++; - break; - case GLX_STENCIL_SIZE: - config->stencilBits = *bp++; - break; - case GLX_ACCUM_RED_SIZE: - config->accumRedBits = *bp++; - break; - case GLX_ACCUM_GREEN_SIZE: - config->accumGreenBits = *bp++; - break; - case GLX_ACCUM_BLUE_SIZE: - config->accumBlueBits = *bp++; - break; - case GLX_ACCUM_ALPHA_SIZE: - config->accumAlphaBits = *bp++; - break; - case GLX_VISUAL_CAVEAT_EXT: - config->visualRating = *bp++; - break; - case GLX_X_VISUAL_TYPE: - config->visualType = *bp++; - break; - case GLX_TRANSPARENT_TYPE: - config->transparentPixel = *bp++; - break; - case GLX_TRANSPARENT_INDEX_VALUE: - config->transparentIndex = *bp++; - break; - case GLX_TRANSPARENT_RED_VALUE: - config->transparentRed = *bp++; - break; - case GLX_TRANSPARENT_GREEN_VALUE: - config->transparentGreen = *bp++; - break; - case GLX_TRANSPARENT_BLUE_VALUE: - config->transparentBlue = *bp++; - break; - case GLX_TRANSPARENT_ALPHA_VALUE: - config->transparentAlpha = *bp++; - break; - case GLX_VISUAL_ID: - config->visualID = *bp++; - break; - case GLX_DRAWABLE_TYPE: - config->drawableType = *bp++; - break; - case GLX_RENDER_TYPE: - config->renderType = *bp++; - break; - case GLX_X_RENDERABLE: - config->xRenderable = *bp++; - break; - case GLX_FBCONFIG_ID: - config->fbconfigID = *bp++; - break; - case GLX_MAX_PBUFFER_WIDTH: - config->maxPbufferWidth = *bp++; - break; - case GLX_MAX_PBUFFER_HEIGHT: - config->maxPbufferHeight = *bp++; - break; - case GLX_MAX_PBUFFER_PIXELS: - config->maxPbufferPixels = *bp++; - break; - case GLX_OPTIMAL_PBUFFER_WIDTH_SGIX: - config->optimalPbufferWidth = *bp++; - break; - case GLX_OPTIMAL_PBUFFER_HEIGHT_SGIX: - config->optimalPbufferHeight = *bp++; - break; - case GLX_VISUAL_SELECT_GROUP_SGIX: - config->visualSelectGroup = *bp++; - break; - case GLX_SWAP_METHOD_OML: - config->swapMethod = *bp++; - break; - case GLX_SAMPLE_BUFFERS_SGIS: - config->sampleBuffers = *bp++; - break; - case GLX_SAMPLES_SGIS: - config->samples = *bp++; - break; - case None: - i = count; - break; - default: - break; - } - } - - config->renderType = (config->rgbMode) ? GLX_RGBA_BIT : GLX_COLOR_INDEX_BIT; - - config->haveAccumBuffer = ((config->accumRedBits + - config->accumGreenBits + - config->accumBlueBits + - config->accumAlphaBits) > 0); - config->haveDepthBuffer = (config->depthBits > 0); - config->haveStencilBuffer = (config->stencilBits > 0); -} - - -#ifdef GLX_DIRECT_RENDERING -static unsigned -filter_modes( __GLcontextModes ** server_modes, - const __GLcontextModes * driver_modes ) -{ - __GLcontextModes * m; - __GLcontextModes ** prev_next; - const __GLcontextModes * check; - unsigned modes_count = 0; - - if ( driver_modes == NULL ) { - fprintf(stderr, "libGL warning: 3D driver returned no fbconfigs.\n"); - return 0; - } - - /* For each mode in server_modes, check to see if a matching mode exists - * in driver_modes. If not, then the mode is not available. - */ - - prev_next = server_modes; - for ( m = *prev_next ; m != NULL ; m = *prev_next ) { - GLboolean do_delete = GL_TRUE; - - for ( check = driver_modes ; check != NULL ; check = check->next ) { - if ( _gl_context_modes_are_same( m, check ) ) { - do_delete = GL_FALSE; - break; - } - } - - /* The 3D has to support all the modes that match the GLX visuals - * sent from the X server. - */ - if ( do_delete && (m->visualID != 0) ) { - do_delete = GL_FALSE; - - fprintf(stderr, "libGL warning: 3D driver claims to not support " - "visual 0x%02x\n", m->visualID); - } - - if ( do_delete ) { - *prev_next = m->next; - - m->next = NULL; - _gl_context_modes_destroy( m ); - } - else { - modes_count++; - prev_next = & m->next; - } - } - - return modes_count; -} - - -/** - * Implement \c __DRIinterfaceMethods::getProcAddress. - */ -static __DRIfuncPtr get_proc_address( const char * proc_name ) -{ - if (strcmp( proc_name, "glxEnableExtension" ) == 0) { - return (__DRIfuncPtr) __glXScrEnableExtension; - } - - return NULL; -} - - -/** - * Table of functions exported by the loader to the driver. - */ -static const __DRIinterfaceMethods interface_methods = { - get_proc_address, - - _gl_context_modes_create, - _gl_context_modes_destroy, - - __glXFindDRIScreen, - __glXWindowExists, - - XF86DRICreateContextWithConfig, - XF86DRIDestroyContext, - - XF86DRICreateDrawable, - XF86DRIDestroyDrawable, - XF86DRIGetDrawableInfo, - - __glXGetUST, - glXGetMscRateOML, -}; - - -/** - * Perform the required libGL-side initialization and call the client-side - * driver's \c __driCreateNewScreen function. - * - * \param dpy Display pointer. - * \param scrn Screen number on the display. - * \param psc DRI screen information. - * \param driDpy DRI display information. - * \param createNewScreen Pointer to the client-side driver's - * \c __driCreateNewScreen function. - * \returns A pointer to the \c __DRIscreenPrivate structure returned by - * the client-side driver on success, or \c NULL on failure. - * - * \todo This function needs to be modified to remove context-modes from the - * list stored in the \c __GLXscreenConfigsRec to match the list - * returned by the client-side driver. - */ -static void * -CallCreateNewScreen(Display *dpy, int scrn, __DRIscreen *psc, - __DRIdisplay * driDpy, - PFNCREATENEWSCREENFUNC createNewScreen) -{ - __DRIscreenPrivate *psp = NULL; -#ifndef GLX_USE_APPLEGL - drm_handle_t hSAREA; - drmAddress pSAREA = MAP_FAILED; - char *BusID; - __DRIversion ddx_version; - __DRIversion dri_version; - __DRIversion drm_version; - __DRIframebuffer framebuffer; - int fd = -1; - int status; - const char * err_msg; - const char * err_extra; - int api_ver = __glXGetInternalVersion(); - - - dri_version.major = driDpy->private->driMajor; - dri_version.minor = driDpy->private->driMinor; - dri_version.patch = driDpy->private->driPatch; - - - err_msg = "XF86DRIOpenConnection"; - err_extra = NULL; - - framebuffer.base = MAP_FAILED; - framebuffer.dev_priv = NULL; - - if (XF86DRIOpenConnection(dpy, scrn, &hSAREA, &BusID)) { - fd = drmOpen(NULL,BusID); - Xfree(BusID); /* No longer needed */ - - err_msg = "open DRM"; - err_extra = strerror( -fd ); - - if (fd >= 0) { - drm_magic_t magic; - - err_msg = "drmGetMagic"; - err_extra = NULL; - - if (!drmGetMagic(fd, &magic)) { - drmVersionPtr version = drmGetVersion(fd); - if (version) { - drm_version.major = version->version_major; - drm_version.minor = version->version_minor; - drm_version.patch = version->version_patchlevel; - drmFreeVersion(version); - } - else { - drm_version.major = -1; - drm_version.minor = -1; - drm_version.patch = -1; - } - - err_msg = "XF86DRIAuthConnection"; - if (XF86DRIAuthConnection(dpy, scrn, magic)) { - char *driverName; - - /* - * Get device name (like "tdfx") and the ddx version - * numbers. We'll check the version in each DRI driver's - * "createNewScreen" function. - */ - err_msg = "XF86DRIGetClientDriverName"; - if (XF86DRIGetClientDriverName(dpy, scrn, - &ddx_version.major, - &ddx_version.minor, - &ddx_version.patch, - &driverName)) { - drm_handle_t hFB; - int junk; - - /* No longer needed. */ - Xfree( driverName ); - - - /* - * Get device-specific info. pDevPriv will point to a struct - * (such as DRIRADEONRec in xfree86/driver/ati/radeon_dri.h) - * that has information about the screen size, depth, pitch, - * ancilliary buffers, DRM mmap handles, etc. - */ - err_msg = "XF86DRIGetDeviceInfo"; - if (XF86DRIGetDeviceInfo(dpy, scrn, - &hFB, - &junk, - &framebuffer.size, - &framebuffer.stride, - &framebuffer.dev_priv_size, - &framebuffer.dev_priv)) { - framebuffer.width = DisplayWidth(dpy, scrn); - framebuffer.height = DisplayHeight(dpy, scrn); - - /* - * Map the framebuffer region. - */ - status = drmMap(fd, hFB, framebuffer.size, - (drmAddressPtr)&framebuffer.base); - - err_msg = "drmMap of framebuffer"; - err_extra = strerror( -status ); - - if ( status == 0 ) { - /* - * Map the SAREA region. Further mmap regions - * may be setup in each DRI driver's - * "createNewScreen" function. - */ - status = drmMap(fd, hSAREA, SAREA_MAX, - &pSAREA); - - err_msg = "drmMap of sarea"; - err_extra = strerror( -status ); - - if ( status == 0 ) { - __GLcontextModes * driver_modes = NULL; - __GLXscreenConfigs *configs = psc->screenConfigs; - - err_msg = "InitDriver"; - err_extra = NULL; - psp = (*createNewScreen)(dpy, scrn, - psc, - configs->configs, - & ddx_version, - & dri_version, - & drm_version, - & framebuffer, - pSAREA, - fd, - api_ver, - & interface_methods, - & driver_modes ); - - filter_modes( & configs->configs, - driver_modes ); - _gl_context_modes_destroy( driver_modes ); - } - } - } - } - } - } - } - } - - if ( psp == NULL ) { - if ( pSAREA != MAP_FAILED ) { - (void)drmUnmap(pSAREA, SAREA_MAX); - } - - if ( framebuffer.base != MAP_FAILED ) { - (void)drmUnmap((drmAddress)framebuffer.base, framebuffer.size); - } - - if ( framebuffer.dev_priv != NULL ) { - Xfree(framebuffer.dev_priv); - } - - if ( fd >= 0 ) { - (void)drmClose(fd); - } - - (void)XF86DRICloseConnection(dpy, scrn); - - if ( err_extra != NULL ) { - fprintf(stderr, "libGL error: %s failed (%s)\n", err_msg, - err_extra); - } - else { - fprintf(stderr, "libGL error: %s failed\n", err_msg ); - } - - fprintf(stderr, "libGL error: reverting to (slow) indirect rendering\n"); - } -#endif /* !GLX_USE_APPLEGL */ - - return psp; -} -#endif /* GLX_DIRECT_RENDERING */ - - -/* -** Allocate the memory for the per screen configs for each screen. -** If that works then fetch the per screen configs data. -*/ -static Bool AllocAndFetchScreenConfigs(Display *dpy, __GLXdisplayPrivate *priv) -{ - xGLXGetVisualConfigsReq *req; - xGLXGetFBConfigsReq *fb_req; - xGLXVendorPrivateWithReplyReq *vpreq; - xGLXGetFBConfigsSGIXReq *sgi_req; - xGLXGetVisualConfigsReply reply; - __GLXscreenConfigs *psc; - __GLcontextModes *config; - GLint i, j, nprops, screens; - INT32 buf[__GLX_TOTAL_CONFIG], *props; - unsigned supported_request = 0; - unsigned prop_size; - - /* - ** First allocate memory for the array of per screen configs. - */ - screens = ScreenCount(dpy); - psc = (__GLXscreenConfigs*) Xmalloc(screens * sizeof(__GLXscreenConfigs)); - if (!psc) { - return GL_FALSE; - } - memset(psc, 0, screens * sizeof(__GLXscreenConfigs)); - priv->screenConfigs = psc; - - priv->serverGLXversion = __glXGetStringFromServer(dpy, priv->majorOpcode, - X_GLXQueryServerString, - 0, GLX_VERSION); - if ( priv->serverGLXversion == NULL ) { - FreeScreenConfigs(priv); - return GL_FALSE; - } - - if ( atof( priv->serverGLXversion ) >= 1.3 ) { - supported_request = 1; - } - - /* - ** Now fetch each screens configs structures. If a screen supports - ** GL (by returning a numVisuals > 0) then allocate memory for our - ** config structure and then fill it in. - */ - for (i = 0; i < screens; i++, psc++) { - if ( supported_request != 1 ) { - psc->serverGLXexts = __glXGetStringFromServer(dpy, priv->majorOpcode, - X_GLXQueryServerString, - i, GLX_EXTENSIONS); - if ( strstr( psc->serverGLXexts, "GLX_SGIX_fbconfig" ) != NULL ) { - supported_request = 2; - } - else { - supported_request = 3; - } - } - - - LockDisplay(dpy); - switch( supported_request ) { - case 1: - GetReq(GLXGetFBConfigs,fb_req); - fb_req->reqType = priv->majorOpcode; - fb_req->glxCode = X_GLXGetFBConfigs; - fb_req->screen = i; - break; - - case 2: - GetReqExtra(GLXVendorPrivateWithReply, - sz_xGLXGetFBConfigsSGIXReq-sz_xGLXVendorPrivateWithReplyReq,vpreq); - sgi_req = (xGLXGetFBConfigsSGIXReq *) vpreq; - sgi_req->reqType = priv->majorOpcode; - sgi_req->glxCode = X_GLXVendorPrivateWithReply; - sgi_req->vendorCode = X_GLXvop_GetFBConfigsSGIX; - sgi_req->screen = i; - break; - - case 3: - GetReq(GLXGetVisualConfigs,req); - req->reqType = priv->majorOpcode; - req->glxCode = X_GLXGetVisualConfigs; - req->screen = i; - break; - } - - if (!_XReply(dpy, (xReply*) &reply, 0, False)) { - /* Something is busted. Punt. */ - UnlockDisplay(dpy); - FreeScreenConfigs(priv); - return GL_FALSE; - } - - UnlockDisplay(dpy); - if (!reply.numVisuals) { - /* This screen does not support GL rendering */ - UnlockDisplay(dpy); - continue; - } - - /* FIXME: Is the __GLX_MIN_CONFIG_PROPS test correct for - * FIXME: FBconfigs? - */ - /* Check number of properties */ - nprops = reply.numProps; - if ((nprops < __GLX_MIN_CONFIG_PROPS) || - (nprops > __GLX_MAX_CONFIG_PROPS)) { - /* Huh? Not in protocol defined limits. Punt */ - UnlockDisplay(dpy); - SyncHandle(); - FreeScreenConfigs(priv); - return GL_FALSE; - } - - /* Allocate memory for our config structure */ - psc->configs = _gl_context_modes_create(reply.numVisuals, - sizeof(__GLcontextModes)); - if (!psc->configs) { - UnlockDisplay(dpy); - SyncHandle(); - FreeScreenConfigs(priv); - return GL_FALSE; - } - - /* Allocate memory for the properties, if needed */ - if ( supported_request != 3 ) { - nprops *= 2; - } - - prop_size = nprops * __GLX_SIZE_INT32; - - if (prop_size <= sizeof(buf)) { - props = buf; - } else { - props = (INT32 *) Xmalloc(prop_size); - } - - /* Read each config structure and convert it into our format */ - config = psc->configs; - for (j = 0; j < reply.numVisuals; j++) { - assert( config != NULL ); - _XRead(dpy, (char *)props, prop_size); - - if ( supported_request != 3 ) { - config->rgbMode = GL_TRUE; - config->drawableType = GLX_WINDOW_BIT; - } - else { - config->drawableType = GLX_WINDOW_BIT | GLX_PIXMAP_BIT; - } - - __glXInitializeVisualConfigFromTags( config, nprops, props, - (supported_request != 3), - GL_TRUE ); - if ( config->fbconfigID == GLX_DONT_CARE ) { - config->fbconfigID = config->visualID; - } - config->screen = i; - config = config->next; - } - if (props != buf) { - Xfree((char *)props); - } - UnlockDisplay(dpy); - -#ifdef GLX_DIRECT_RENDERING - /* Initialize per screen dynamic client GLX extensions */ - psc->ext_list_first_time = GL_TRUE; - /* Initialize the direct rendering per screen data and functions */ - if (priv->driDisplay.private != NULL) { - /* FIXME: Should it be some sort of an error if createNewScreen[i] - * FIXME: is NULL? - */ - if (priv->driDisplay.createNewScreen && - priv->driDisplay.createNewScreen[i]) { - - psc->driScreen.screenConfigs = (void *)psc; - psc->driScreen.private = - CallCreateNewScreen(dpy, i, & psc->driScreen, - & priv->driDisplay, - priv->driDisplay.createNewScreen[i] ); - } - } -#endif - } - SyncHandle(); - return GL_TRUE; -} - -/* -** Initialize the client side extension code. -*/ -__GLXdisplayPrivate *__glXInitialize(Display* dpy) -{ - XExtDisplayInfo *info = __glXFindDisplay(dpy); - XExtData **privList, *private, *found; - __GLXdisplayPrivate *dpyPriv; - XEDataObject dataObj; - int major, minor; - -#if defined(USE_XTHREADS) - { - static int firstCall = 1; - if (firstCall) { - /* initialize the GLX mutexes */ - xmutex_init(&__glXmutex); - firstCall = 0; - } - } -#endif - - INIT_MESA_SPARC - /* The one and only long long lock */ - __glXLock(); - - if (!XextHasExtension(info)) { - /* No GLX extension supported by this server. Oh well. */ - __glXUnlock(); - XMissingExtension(dpy, __glXExtensionName); - return 0; - } - - /* See if a display private already exists. If so, return it */ - dataObj.display = dpy; - privList = XEHeadOfExtensionList(dataObj); - found = XFindOnExtensionList(privList, info->codes->extension); - if (found) { - __glXUnlock(); - return (__GLXdisplayPrivate *) found->private_data; - } - - /* See if the versions are compatible */ - if (!QueryVersion(dpy, info->codes->major_opcode, &major, &minor)) { - /* The client and server do not agree on versions. Punt. */ - __glXUnlock(); - return 0; - } - - /* - ** Allocate memory for all the pieces needed for this buffer. - */ - private = (XExtData *) Xmalloc(sizeof(XExtData)); - if (!private) { - __glXUnlock(); - return 0; - } - dpyPriv = (__GLXdisplayPrivate *) Xmalloc(sizeof(__GLXdisplayPrivate)); - if (!dpyPriv) { - __glXUnlock(); - Xfree((char*) private); - return 0; - } - - /* - ** Init the display private and then read in the screen config - ** structures from the server. - */ - dpyPriv->majorOpcode = info->codes->major_opcode; - dpyPriv->majorVersion = major; - dpyPriv->minorVersion = minor; - dpyPriv->dpy = dpy; - - dpyPriv->serverGLXvendor = 0x0; - dpyPriv->serverGLXversion = 0x0; - -#ifdef GLX_DIRECT_RENDERING - /* - ** Initialize the direct rendering per display data and functions. - ** Note: This _must_ be done before calling any other DRI routines - ** (e.g., those called in AllocAndFetchScreenConfigs). - */ - if (getenv("LIBGL_ALWAYS_INDIRECT")) { - /* Assinging zero here assures we'll never go direct */ - dpyPriv->driDisplay.private = 0; - dpyPriv->driDisplay.destroyDisplay = 0; - } - else { - dpyPriv->driDisplay.private = - driCreateDisplay(dpy, &dpyPriv->driDisplay); - } -#endif - - if (!AllocAndFetchScreenConfigs(dpy, dpyPriv)) { - __glXUnlock(); - Xfree((char*) dpyPriv); - Xfree((char*) private); - return 0; - } - - /* - ** Fill in the private structure. This is the actual structure that - ** hangs off of the Display structure. Our private structure is - ** referred to by this structure. Got that? - */ - private->number = info->codes->extension; - private->next = 0; - private->free_private = __glXFreeDisplayPrivate; - private->private_data = (char *) dpyPriv; - XAddToExtensionList(privList, private); - - if (dpyPriv->majorVersion == 1 && dpyPriv->minorVersion >= 1) { - __glXClientInfo(dpy, dpyPriv->majorOpcode); - } - __glXUnlock(); - - return dpyPriv; -} - -/* -** Setup for sending a GLX command on dpy. Make sure the extension is -** initialized. Try to avoid calling __glXInitialize as its kinda slow. -*/ -CARD8 __glXSetupForCommand(Display *dpy) -{ - GLXContext gc; - __GLXdisplayPrivate *priv; - - /* If this thread has a current context, flush its rendering commands */ - gc = __glXGetCurrentContext(); - if (gc->currentDpy) { - /* Flush rendering buffer of the current context, if any */ - (void) __glXFlushRenderBuffer(gc, gc->pc); - - if (gc->currentDpy == dpy) { - /* Use opcode from gc because its right */ - INIT_MESA_SPARC - return gc->majorOpcode; - } else { - /* - ** Have to get info about argument dpy because it might be to - ** a different server - */ - } - } - - /* Forced to lookup extension via the slow initialize route */ - priv = __glXInitialize(dpy); - if (!priv) { - return 0; - } - return priv->majorOpcode; -} - -/** - * Flush the drawing command transport buffer. - * - * \param ctx Context whose transport buffer is to be flushed. - * \param pc Pointer to first unused buffer location. - * - * \todo - * Modify this function to use \c ctx->pc instead of the explicit - * \c pc parameter. - */ -GLubyte *__glXFlushRenderBuffer(__GLXcontext *ctx, GLubyte *pc) -{ - Display * const dpy = ctx->currentDpy; -#ifdef USE_XCB - XCBConnection *c = XCBConnectionOfDisplay(dpy); -#else - xGLXRenderReq *req; -#endif /* USE_XCB */ - const GLint size = pc - ctx->buf; - - if ( (dpy != NULL) && (size > 0) ) { -#ifdef USE_XCB - XCBGlxRender(c, ctx->currentContextTag, size, (char *)ctx->buf); -#else - /* Send the entire buffer as an X request */ - LockDisplay(dpy); - GetReq(GLXRender,req); - req->reqType = ctx->majorOpcode; - req->glxCode = X_GLXRender; - req->contextTag = ctx->currentContextTag; - req->length += (size + 3) >> 2; - _XSend(dpy, (char *)ctx->buf, size); - UnlockDisplay(dpy); - SyncHandle(); -#endif - } - - /* Reset pointer and return it */ - ctx->pc = ctx->buf; - return ctx->pc; -} - - -/** - * Send a portion of a GLXRenderLarge command to the server. The advantage of - * this function over \c __glXSendLargeCommand is that callers can use the - * data buffer in the GLX context and may be able to avoid allocating an - * extra buffer. The disadvantage is the clients will have to do more - * GLX protocol work (i.e., calculating \c totalRequests, etc.). - * - * \sa __glXSendLargeCommand - * - * \param gc GLX context - * \param requestNumber Which part of the whole command is this? The first - * request is 1. - * \param totalRequests How many requests will there be? - * \param data Command data. - * \param dataLen Size, in bytes, of the command data. - */ -void __glXSendLargeChunk(__GLXcontext *gc, GLint requestNumber, - GLint totalRequests, - const GLvoid * data, GLint dataLen) -{ - Display *dpy = gc->currentDpy; -#ifdef USE_XCB - XCBConnection *c = XCBConnectionOfDisplay(dpy); - XCBGlxRenderLarge(c, gc->currentContextTag, requestNumber, totalRequests, dataLen, data); -#else - xGLXRenderLargeReq *req; - - if ( requestNumber == 1 ) { - LockDisplay(dpy); - } - - GetReq(GLXRenderLarge,req); - req->reqType = gc->majorOpcode; - req->glxCode = X_GLXRenderLarge; - req->contextTag = gc->currentContextTag; - req->length += (dataLen + 3) >> 2; - req->requestNumber = requestNumber; - req->requestTotal = totalRequests; - req->dataBytes = dataLen; - Data(dpy, data, dataLen); - - if ( requestNumber == totalRequests ) { - UnlockDisplay(dpy); - SyncHandle(); - } -#endif /* USE_XCB */ -} - - -/** - * Send a command that is too large for the GLXRender protocol request. - * - * Send a large command, one that is too large for some reason to - * send using the GLXRender protocol request. One reason to send - * a large command is to avoid copying the data. - * - * \param ctx GLX context - * \param header Header data. - * \param headerLen Size, in bytes, of the header data. It is assumed that - * the header data will always be small enough to fit in - * a single X protocol packet. - * \param data Command data. - * \param dataLen Size, in bytes, of the command data. - */ -void __glXSendLargeCommand(__GLXcontext *ctx, - const GLvoid *header, GLint headerLen, - const GLvoid *data, GLint dataLen) -{ - GLint maxSize; - GLint totalRequests, requestNumber; - - /* - ** Calculate the maximum amount of data can be stuffed into a single - ** packet. sz_xGLXRenderReq is added because bufSize is the maximum - ** packet size minus sz_xGLXRenderReq. - */ - maxSize = (ctx->bufSize + sz_xGLXRenderReq) - sz_xGLXRenderLargeReq; - totalRequests = 1 + (dataLen / maxSize); - if (dataLen % maxSize) totalRequests++; - - /* - ** Send all of the command, except the large array, as one request. - */ - assert( headerLen <= maxSize ); - __glXSendLargeChunk(ctx, 1, totalRequests, header, headerLen); - - /* - ** Send enough requests until the whole array is sent. - */ - for ( requestNumber = 2 ; requestNumber <= (totalRequests - 1) ; requestNumber++ ) { - __glXSendLargeChunk(ctx, requestNumber, totalRequests, data, maxSize); - data = (const GLvoid *) (((const GLubyte *) data) + maxSize); - dataLen -= maxSize; - assert( dataLen > 0 ); - } - - assert( dataLen <= maxSize ); - __glXSendLargeChunk(ctx, requestNumber, totalRequests, data, dataLen); -} - -/************************************************************************/ - -GLXContext glXGetCurrentContext(void) -{ - GLXContext cx = __glXGetCurrentContext(); - - if (cx == &dummyContext) { - return NULL; - } else { - return cx; - } -} - -GLXDrawable glXGetCurrentDrawable(void) -{ - GLXContext gc = __glXGetCurrentContext(); - return gc->currentDrawable; -} - - -/************************************************************************/ - -#ifdef GLX_DIRECT_RENDERING -/* Return the DRI per screen structure */ -__DRIscreen *__glXFindDRIScreen(__DRInativeDisplay *dpy, int scrn) -{ - __DRIscreen *pDRIScreen = NULL; - XExtDisplayInfo *info = __glXFindDisplay(dpy); - XExtData **privList, *found; - __GLXdisplayPrivate *dpyPriv; - XEDataObject dataObj; - - __glXLock(); - dataObj.display = dpy; - privList = XEHeadOfExtensionList(dataObj); - found = XFindOnExtensionList(privList, info->codes->extension); - __glXUnlock(); - - if (found) { - dpyPriv = (__GLXdisplayPrivate *)found->private_data; - pDRIScreen = &dpyPriv->screenConfigs[scrn].driScreen; - } - - return pDRIScreen; -} -#endif - -/************************************************************************/ - -static Bool SendMakeCurrentRequest( Display *dpy, CARD8 opcode, - GLXContextID gc, GLXContextTag old_gc, GLXDrawable draw, GLXDrawable read, - xGLXMakeCurrentReply * reply ); - -/** - * Sends a GLX protocol message to the specified display to make the context - * and the drawables current. - * - * \param dpy Display to send the message to. - * \param opcode Major opcode value for the display. - * \param gc_id Context tag for the context to be made current. - * \param draw Drawable ID for the "draw" drawable. - * \param read Drawable ID for the "read" drawable. - * \param reply Space to store the X-server's reply. - * - * \warning - * This function assumes that \c dpy is locked with \c LockDisplay on entry. - */ -static Bool SendMakeCurrentRequest( Display *dpy, CARD8 opcode, - GLXContextID gc_id, GLXContextTag gc_tag, - GLXDrawable draw, GLXDrawable read, - xGLXMakeCurrentReply * reply ) -{ - if ( draw == read ) { - xGLXMakeCurrentReq *req; - - GetReq(GLXMakeCurrent,req); - req->reqType = opcode; - req->glxCode = X_GLXMakeCurrent; - req->drawable = draw; - req->context = gc_id; - req->oldContextTag = gc_tag; - } - else { - __GLXdisplayPrivate *priv = __glXInitialize(dpy); - - /* If the server can support the GLX 1.3 version, we should - * perfer that. Not only that, some servers support GLX 1.3 but - * not the SGI extension. - */ - - if ( (priv->majorVersion > 1) || (priv->minorVersion >= 3) ) { - xGLXMakeContextCurrentReq *req; - - GetReq(GLXMakeContextCurrent,req); - req->reqType = opcode; - req->glxCode = X_GLXMakeContextCurrent; - req->drawable = draw; - req->readdrawable = read; - req->context = gc_id; - req->oldContextTag = gc_tag; - } - else { - xGLXVendorPrivateWithReplyReq *vpreq; - xGLXMakeCurrentReadSGIReq *req; - - GetReqExtra(GLXVendorPrivateWithReply, - sz_xGLXMakeCurrentReadSGIReq-sz_xGLXVendorPrivateWithReplyReq,vpreq); - req = (xGLXMakeCurrentReadSGIReq *)vpreq; - req->reqType = opcode; - req->glxCode = X_GLXVendorPrivateWithReply; - req->vendorCode = X_GLXvop_MakeCurrentReadSGI; - req->drawable = draw; - req->readable = read; - req->context = gc_id; - req->oldContextTag = gc_tag; - } - } - - return _XReply(dpy, (xReply*) reply, 0, False); -} - - -#ifdef GLX_DIRECT_RENDERING -static Bool BindContextWrapper( Display *dpy, GLXContext gc, - GLXDrawable draw, GLXDrawable read ) -{ - return (*gc->driContext.bindContext)(dpy, gc->screen, draw, read, - & gc->driContext); -} - - -static Bool UnbindContextWrapper( GLXContext gc ) -{ - return (*gc->driContext.unbindContext)(gc->currentDpy, gc->screen, - gc->currentDrawable, - gc->currentReadable, - & gc->driContext ); -} -#endif /* GLX_DIRECT_RENDERING */ - - -/* -** Make a particular context current. -** NOTE: this is in this file so that it can access dummyContext. -*/ -USED static Bool MakeContextCurrent(Display *dpy, GLXDrawable draw, - GLXDrawable read, GLXContext gc) -{ - xGLXMakeCurrentReply reply; - GLXContext oldGC; - CARD8 opcode, oldOpcode; - Bool sentRequestToOldDpy = False; - Bool bindReturnValue = True; - - opcode = __glXSetupForCommand(dpy); - if (!opcode) { - return GL_FALSE; - } - - /* - ** Make sure that the new context has a nonzero ID. In the request, - ** a zero context ID is used only to mean that we bind to no current - ** context. - */ - if ((gc != NULL) && (gc->xid == None)) { - return GL_FALSE; - } - - oldGC = __glXGetCurrentContext(); - oldOpcode = (gc == oldGC) ? opcode : __glXSetupForCommand(dpy); - if (!oldOpcode) { - return GL_FALSE; - } - - if ((dpy != oldGC->currentDpy || (gc && gc->isDirect)) && - !oldGC->isDirect && oldGC != &dummyContext) { - /* - ** We are either switching from one dpy to another and have to - ** send a request to the previous dpy to unbind the previous - ** context, or we are switching away from a indirect context to - ** a direct context and have to send a request to the dpy to - ** unbind the previous context. - */ - sentRequestToOldDpy = True; - LockDisplay(oldGC->currentDpy); - if ( ! SendMakeCurrentRequest( oldGC->currentDpy, oldOpcode, None, - oldGC->currentContextTag, None, None, - &reply ) ) { - /* The make current failed. Just return GL_FALSE. */ - UnlockDisplay(oldGC->currentDpy); - SyncHandle(); - return GL_FALSE; - } - - oldGC->currentContextTag = 0; - } - - _glapi_check_multithread(); - -#ifdef GLX_DIRECT_RENDERING - /* Unbind the old direct rendering context */ - if (oldGC->isDirect) { - if (oldGC->driContext.private) { - if (! UnbindContextWrapper( oldGC )) { - /* The make current failed. Just return GL_FALSE. */ - return GL_FALSE; - } - } - oldGC->currentContextTag = 0; - } - - /* Bind the direct rendering context to the drawable */ - if (gc && gc->isDirect) { - if (gc->driContext.private) { - bindReturnValue = BindContextWrapper( dpy, gc, draw, read ); - } - } else { -#endif - /* Send a glXMakeCurrent request to bind the new context. */ - LockDisplay(dpy); - - bindReturnValue = SendMakeCurrentRequest( dpy, opcode, - gc ? gc->xid : None, - oldGC->currentContextTag, - draw, read, &reply ); - UnlockDisplay(dpy); -#ifdef GLX_DIRECT_RENDERING - } -#endif - - - if (!bindReturnValue) { - /* The make current failed. */ - if (gc && !gc->isDirect) { - SyncHandle(); - } - -#ifdef GLX_DIRECT_RENDERING - /* If the old context was direct rendering, then re-bind to it. */ - if (oldGC->isDirect) { - if (oldGC->driContext.private) { - if (! BindContextWrapper( oldGC->currentDpy, oldGC, - oldGC->currentDrawable, - oldGC->currentReadable )) { - /* - ** The request failed; this cannot happen with the - ** current API. If in the future the API is - ** extended to allow context sharing between - ** clients, then this may fail (because another - ** client may have grabbed the context); in that - ** case, we cannot undo the previous request, and - ** cannot adhere to the "no-op" behavior. - */ - } - } - } else -#endif - /* - ** If we had just sent a request to a previous dpy, we have to - ** undo that request (because if a command fails, it should act - ** like a no-op) by making current to the previous context and - ** drawable. - */ - if (sentRequestToOldDpy) { - if ( !SendMakeCurrentRequest( oldGC->currentDpy, oldOpcode, - oldGC->xid, 0, - oldGC->currentDrawable, - oldGC->currentReadable, &reply ) ) { - UnlockDisplay(oldGC->currentDpy); - SyncHandle(); - /* - ** The request failed; this cannot happen with the - ** current API. If in the future the API is extended to - ** allow context sharing between clients, then this may - ** fail (because another client may have grabbed the - ** context); in that case, we cannot undo the previous - ** request, and cannot adhere to the "no-op" behavior. - */ - } - else { - UnlockDisplay(oldGC->currentDpy); - } - oldGC->currentContextTag = reply.contextTag; - } - return GL_FALSE; - } - - /* Update our notion of what is current */ - __glXLock(); - if (gc == oldGC) { - /* - ** Even though the contexts are the same the drawable might have - ** changed. Note that gc cannot be the dummy, and that oldGC - ** cannot be NULL, therefore if they are the same, gc is not - ** NULL and not the dummy. - */ - gc->currentDrawable = draw; - gc->currentReadable = read; - } else { - if (oldGC != &dummyContext) { - /* Old current context is no longer current to anybody */ - oldGC->currentDpy = 0; - oldGC->currentDrawable = None; - oldGC->currentReadable = None; - oldGC->currentContextTag = 0; - - if (oldGC->xid == None) { - /* - ** We are switching away from a context that was - ** previously destroyed, so we need to free the memory - ** for the old handle. - */ -#ifdef GLX_DIRECT_RENDERING - /* Destroy the old direct rendering context */ - if (oldGC->isDirect) { - if (oldGC->driContext.private) { - (*oldGC->driContext.destroyContext) - (dpy, oldGC->screen, oldGC->driContext.private); - oldGC->driContext.private = NULL; - } - } -#endif - __glXFreeContext(oldGC); - } - } - if (gc) { - __glXSetCurrentContext(gc); -#ifdef GLX_DIRECT_RENDERING - if (!gc->isDirect) { - if (!IndirectAPI) - IndirectAPI = __glXNewIndirectAPI(); - _glapi_set_dispatch(IndirectAPI); -# ifdef GLX_USE_APPLEGL - do { - extern void XAppleDRIUseIndirectDispatch(void); - XAppleDRIUseIndirectDispatch(); - } while (0); -# endif - } -#else - /* if not direct rendering, always need indirect dispatch */ - if (!IndirectAPI) - IndirectAPI = __glXNewIndirectAPI(); - _glapi_set_dispatch(IndirectAPI); -#endif - gc->currentDpy = dpy; - gc->currentDrawable = draw; - gc->currentReadable = read; - - if ( ! gc->isDirect ) { - __GLXattribute * state = (__GLXattribute *)(gc->client_state_private); - - gc->currentContextTag = reply.contextTag; - if ( state->array_state == NULL ) { - (void) glGetString( GL_EXTENSIONS ); - (void) glGetString( GL_VERSION ); - __glXInitVertexArrayState(gc); - } - } - else { - gc->currentContextTag = -1; - } - } else { - __glXSetCurrentContext(&dummyContext); -#ifdef GLX_DIRECT_RENDERING - _glapi_set_dispatch(NULL); /* no-op functions */ -#endif - } - } - __glXUnlock(); - return GL_TRUE; -} - - -PUBLIC Bool glXMakeCurrent(Display *dpy, GLXDrawable draw, GLXContext gc) -{ - return MakeContextCurrent( dpy, draw, draw, gc ); -} - -PUBLIC GLX_ALIAS(Bool, glXMakeCurrentReadSGI, - (Display *dpy, GLXDrawable d, GLXDrawable r, GLXContext ctx), - (dpy, d, r, ctx), MakeContextCurrent) - -PUBLIC GLX_ALIAS(Bool, glXMakeContextCurrent, - (Display *dpy, GLXDrawable d, GLXDrawable r, GLXContext ctx), - (dpy, d, r, ctx), MakeContextCurrent) - - -#ifdef DEBUG -void __glXDumpDrawBuffer(__GLXcontext *ctx) -{ - GLubyte *p = ctx->buf; - GLubyte *end = ctx->pc; - GLushort opcode, length; - - while (p < end) { - /* Fetch opcode */ - opcode = *((GLushort*) p); - length = *((GLushort*) (p + 2)); - printf("%2x: %5d: ", opcode, length); - length -= 4; - p += 4; - while (length > 0) { - printf("%08x ", *((unsigned *) p)); - p += 4; - length -= 4; - } - printf("\n"); - } -} -#endif - -#ifdef USE_SPARC_ASM -/* - * Used only when we are sparc, using sparc assembler. - * - */ - -static void -_glx_mesa_init_sparc_glapi_relocs(void) -{ - unsigned int *insn_ptr, *end_ptr; - unsigned long disp_addr; - - insn_ptr = &_mesa_sparc_glapi_begin; - end_ptr = &_mesa_sparc_glapi_end; - disp_addr = (unsigned long) &_glapi_Dispatch; - - /* - * Verbatim from Mesa sparc.c. It's needed because there doesn't - * seem to be a better way to do this: - * - * UNCONDITIONAL_JUMP ( (*_glapi_Dispatch) + entry_offset ) - * - * This code is patching in the ADDRESS of the pointer to the - * dispatch table. Hence, it must be called exactly once, because - * that address is not going to change. - * - * What it points to can change, but Mesa (and hence, we) assume - * that there is only one pointer. - * - */ - while (insn_ptr < end_ptr) { -#if ( defined(__sparc_v9__) && ( !defined(__linux__) || defined(__linux_64__) ) ) -/* - This code patches for 64-bit addresses. This had better - not happen for Sparc/Linux, no matter what architecture we - are building for. So, don't do this. - - The 'defined(__linux_64__)' is used here as a placeholder for - when we do do 64-bit usermode on sparc linux. - */ - insn_ptr[0] |= (disp_addr >> (32 + 10)); - insn_ptr[1] |= ((disp_addr & 0xffffffff) >> 10); - __glapi_sparc_icache_flush(&insn_ptr[0]); - insn_ptr[2] |= ((disp_addr >> 32) & ((1 << 10) - 1)); - insn_ptr[3] |= (disp_addr & ((1 << 10) - 1)); - __glapi_sparc_icache_flush(&insn_ptr[2]); - insn_ptr += 11; -#else - insn_ptr[0] |= (disp_addr >> 10); - insn_ptr[1] |= (disp_addr & ((1 << 10) - 1)); - __glapi_sparc_icache_flush(&insn_ptr[0]); - insn_ptr += 5; -#endif - } -} -#endif /* sparc ASM in use */ - diff --git a/nx-X11/extras/Mesa/src/glx/x11/glxextensions.c b/nx-X11/extras/Mesa/src/glx/x11/glxextensions.c deleted file mode 100644 index d2597981c..000000000 --- a/nx-X11/extras/Mesa/src/glx/x11/glxextensions.c +++ /dev/null @@ -1,717 +0,0 @@ -/* - * (C) Copyright IBM Corporation 2002, 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 glxextensions.c - * - * \author Ian Romanick - */ - -#include "glxclient.h" -#include -#include -#include -#include "glapi.h" -#include "glxextensions.h" -#include "simple_list.h" - -#define SET_BIT(m,b) (m[ (b) / 8 ] |= (1U << ((b) % 8))) -#define CLR_BIT(m,b) (m[ (b) / 8 ] &= ~(1U << ((b) % 8))) -#define IS_SET(m,b) ((m[ (b) / 8 ] & (1U << ((b) % 8))) != 0) -#define CONCAT(a,b) a ## b -#define GLX(n) "GLX_" # n, 4 + sizeof( # n ) - 1, CONCAT(n,_bit) -#define GL(n) "GL_" # n, 3 + sizeof( # n ) - 1, GL_ ## n ## _bit -#define VER(a,b) a, b -#define Y 1 -#define N 0 -#define EXT_ENABLED(bit,supported) (IS_SET( supported, bit )) - - -struct extension_info { - const char * const name; - unsigned name_len; - - unsigned char bit; - - /* This is the lowest version of GLX that "requires" this extension. - * For example, GLX 1.3 requires SGIX_fbconfig, SGIX_pbuffer, and - * SGI_make_current_read. If the extension is not required by any known - * version of GLX, use 0, 0. - */ - unsigned char version_major; - unsigned char version_minor; - unsigned char client_support; - unsigned char direct_support; - unsigned char client_only; /** Is the extension client-side only? */ - unsigned char direct_only; /** Is the extension for direct - * contexts only? - */ -}; - -static const struct extension_info known_glx_extensions[] = { - { GLX(ARB_get_proc_address), VER(1,4), Y, N, Y, N }, - { GLX(ARB_multisample), VER(1,4), Y, Y, N, N }, - { GLX(ARB_render_texture), VER(0,0), N, N, N, N }, - { GLX(ATI_pixel_format_float), VER(0,0), N, N, N, N }, - { GLX(EXT_import_context), VER(0,0), Y, Y, N, N }, - { GLX(EXT_visual_info), VER(0,0), Y, Y, N, N }, - { GLX(EXT_visual_rating), VER(0,0), Y, Y, N, N }, - { GLX(MESA_agp_offset), VER(0,0), N, N, N, Y }, /* Deprecated */ - { GLX(MESA_allocate_memory), VER(0,0), Y, N, N, Y }, - { GLX(MESA_copy_sub_buffer), VER(0,0), N, N, N, N }, /* Deprecated? */ - { GLX(MESA_pixmap_colormap), VER(0,0), N, N, N, N }, /* Deprecated */ - { GLX(MESA_release_buffers), VER(0,0), N, N, N, N }, /* Deprecated */ - { GLX(MESA_set_3dfx_mode), VER(0,0), N, N, N, N }, /* Deprecated */ - { GLX(MESA_swap_control), VER(0,0), Y, N, N, Y }, - { GLX(MESA_swap_frame_usage), VER(0,0), Y, N, N, Y }, - { GLX(NV_float_buffer), VER(0,0), N, N, N, N }, - { GLX(NV_render_depth_texture), VER(0,0), N, N, N, N }, - { GLX(NV_render_texture_rectangle), VER(0,0), N, N, N, N }, - { GLX(NV_vertex_array_range), VER(0,0), N, N, N, Y }, /* Deprecated */ - { GLX(OML_swap_method), VER(0,0), Y, Y, N, N }, - { GLX(OML_sync_control), VER(0,0), Y, N, N, Y }, - { GLX(SGI_cushion), VER(0,0), N, N, N, N }, - { GLX(SGI_make_current_read), VER(1,3), Y, N, N, N }, - { GLX(SGI_swap_control), VER(0,0), Y, N, N, N }, - { GLX(SGI_video_sync), VER(0,0), Y, N, N, Y }, - { GLX(SGIS_blended_overlay), VER(0,0), N, N, N, N }, - { GLX(SGIS_color_range), VER(0,0), N, N, N, N }, - { GLX(SGIS_multisample), VER(0,0), Y, Y, N, N }, - { GLX(SGIX_dm_buffer), VER(0,0), N, N, N, N }, - { GLX(SGIX_fbconfig), VER(1,3), Y, Y, N, N }, - { GLX(SGIX_pbuffer), VER(1,3), Y, N, N, N }, - { GLX(SGIX_swap_barrier), VER(0,0), N, N, N, N }, - { GLX(SGIX_swap_group), VER(0,0), N, N, N, N }, - { GLX(SGIX_video_resize), VER(0,0), N, N, N, N }, - { GLX(SGIX_video_source), VER(0,0), N, N, N, N }, - { GLX(SGIX_visual_select_group), VER(0,0), Y, Y, N, N }, - { GLX(SUN_get_transparent_index), VER(0,0), N, N, N, N }, - { NULL } -}; - -static const struct extension_info known_gl_extensions[] = { - { GL(ARB_depth_texture), VER(1,4), Y, N, N, N }, - { GL(ARB_draw_buffers), VER(0,0), Y, N, N, N }, - { GL(ARB_fragment_program), VER(0,0), Y, N, N, N }, - { GL(ARB_fragment_program_shadow), VER(0,0), Y, N, N, N }, - { GL(ARB_imaging), VER(0,0), Y, N, N, N }, - { GL(ARB_multisample), VER(1,3), Y, N, N, N }, - { GL(ARB_multitexture), VER(1,3), Y, N, N, N }, - { GL(ARB_occlusion_query), VER(1,5), Y, N, N, N }, - { GL(ARB_point_parameters), VER(1,4), Y, N, N, N }, - { GL(ARB_point_sprite), VER(0,0), Y, N, N, N }, - { GL(ARB_shadow), VER(1,4), Y, N, N, N }, - { GL(ARB_shadow_ambient), VER(0,0), Y, N, N, N }, - { GL(ARB_texture_border_clamp), VER(1,3), Y, N, N, N }, - { GL(ARB_texture_compression), VER(1,3), Y, N, N, N }, - { GL(ARB_texture_cube_map), VER(1,3), Y, N, N, N }, - { GL(ARB_texture_env_add), VER(1,3), Y, N, N, N }, - { GL(ARB_texture_env_combine), VER(1,3), Y, N, N, N }, - { GL(ARB_texture_env_crossbar), VER(1,4), Y, N, N, N }, - { GL(ARB_texture_env_dot3), VER(1,3), Y, N, N, N }, - { GL(ARB_texture_mirrored_repeat), VER(1,4), Y, N, N, N }, - { GL(ARB_texture_non_power_of_two), VER(1,5), Y, N, N, N }, - { GL(ARB_texture_rectangle), VER(0,0), Y, N, N, N }, - { GL(ARB_transpose_matrix), VER(1,3), Y, N, Y, N }, - { GL(ARB_vertex_buffer_object), VER(1,5), N, N, N, N }, - { GL(ARB_vertex_program), VER(0,0), Y, N, N, N }, - { GL(ARB_window_pos), VER(1,4), Y, N, N, N }, - { GL(EXT_abgr), VER(0,0), Y, N, N, N }, - { GL(EXT_bgra), VER(1,2), Y, N, N, N }, - { GL(EXT_blend_color), VER(1,4), Y, N, N, N }, - { GL(EXT_blend_equation_separate), VER(0,0), N, N, N, N }, - { GL(EXT_blend_func_separate), VER(1,4), Y, N, N, N }, - { GL(EXT_blend_logic_op), VER(1,4), Y, N, N, N }, - { GL(EXT_blend_minmax), VER(1,4), Y, N, N, N }, - { GL(EXT_blend_subtract), VER(1,4), Y, N, N, N }, - { GL(EXT_clip_volume_hint), VER(0,0), Y, N, N, N }, - { GL(EXT_compiled_vertex_array), VER(0,0), N, N, N, N }, - { GL(EXT_convolution), VER(0,0), N, N, N, N }, - { GL(EXT_copy_texture), VER(1,1), Y, N, N, N }, - { GL(EXT_cull_vertex), VER(0,0), N, N, N, N }, - { GL(EXT_depth_bounds_test), VER(0,0), N, N, N, N }, - { GL(EXT_draw_range_elements), VER(1,2), Y, N, Y, N }, - { GL(EXT_fog_coord), VER(1,4), Y, N, N, N }, - { GL(EXT_multi_draw_arrays), VER(1,4), Y, N, Y, N }, - { GL(EXT_packed_pixels), VER(1,2), Y, N, N, N }, - { GL(EXT_paletted_texture), VER(0,0), Y, N, N, N }, - { GL(EXT_pixel_buffer_object), VER(0,0), N, N, N, N }, - { GL(EXT_point_parameters), VER(1,4), Y, N, N, N }, - { GL(EXT_polygon_offset), VER(1,1), Y, N, N, N }, - { GL(EXT_rescale_normal), VER(1,2), Y, N, N, N }, - { GL(EXT_secondary_color), VER(1,4), Y, N, N, N }, - { GL(EXT_separate_specular_color), VER(1,2), Y, N, N, N }, - { GL(EXT_shadow_funcs), VER(1,5), Y, N, N, N }, - { GL(EXT_shared_texture_palette), VER(0,0), Y, N, N, N }, - { GL(EXT_stencil_two_side), VER(0,0), Y, N, N, N }, - { GL(EXT_stencil_wrap), VER(1,4), Y, N, N, N }, - { GL(EXT_subtexture), VER(1,1), Y, N, N, N }, - { GL(EXT_texture), VER(1,1), Y, N, N, N }, - { GL(EXT_texture3D), VER(1,2), Y, N, N, N }, - { GL(EXT_texture_compression_dxt1), VER(0,0), Y, N, N, N }, - { GL(EXT_texture_compression_s3tc), VER(0,0), Y, N, N, N }, - { GL(EXT_texture_edge_clamp), VER(1,2), Y, N, N, N }, - { GL(EXT_texture_env_add), VER(1,3), Y, N, N, N }, - { GL(EXT_texture_env_combine), VER(1,3), Y, N, N, N }, - { GL(EXT_texture_env_dot3), VER(0,0), Y, N, N, N }, - { GL(EXT_texture_filter_anisotropic), VER(0,0), Y, N, N, N }, - { GL(EXT_texture_lod), VER(1,2), Y, N, N, N }, - { GL(EXT_texture_lod_bias), VER(1,4), Y, N, N, N }, - { GL(EXT_texture_mirror_clamp), VER(0,0), Y, N, N, N }, - { GL(EXT_texture_object), VER(1,1), Y, N, N, N }, - { GL(EXT_texture_rectangle), VER(0,0), Y, N, N, N }, - { GL(EXT_vertex_array), VER(0,0), Y, N, N, N }, - { GL(3DFX_texture_compression_FXT1), VER(0,0), Y, N, N, N }, - { GL(APPLE_packed_pixels), VER(1,2), Y, N, N, N }, - { GL(APPLE_ycbcr_422), VER(0,0), Y, N, N, N }, - { GL(ATI_draw_buffers), VER(0,0), Y, N, N, N }, - { GL(ATI_text_fragment_shader), VER(0,0), Y, N, N, N }, - { GL(ATI_texture_env_combine3), VER(0,0), Y, N, N, N }, - { GL(ATI_texture_float), VER(0,0), Y, N, N, N }, - { GL(ATI_texture_mirror_once), VER(0,0), Y, N, N, N }, - { GL(ATIX_texture_env_combine3), VER(0,0), Y, N, N, N }, - { GL(HP_convolution_border_modes), VER(0,0), Y, N, N, N }, - { GL(HP_occlusion_test), VER(0,0), Y, N, N, N }, - { GL(IBM_cull_vertex), VER(0,0), Y, N, N, N }, - { GL(IBM_pixel_filter_hint), VER(0,0), Y, N, N, N }, - { GL(IBM_rasterpos_clip), VER(0,0), Y, N, N, N }, - { GL(IBM_texture_clamp_nodraw), VER(0,0), Y, N, N, N }, - { GL(IBM_texture_mirrored_repeat), VER(0,0), Y, N, N, N }, - { GL(INGR_blend_func_separate), VER(0,0), Y, N, N, N }, - { GL(INGR_interlace_read), VER(0,0), Y, N, N, N }, - { GL(MESA_pack_invert), VER(0,0), Y, N, N, N }, - { GL(MESA_ycbcr_texture), VER(0,0), Y, N, N, N }, - { GL(NV_blend_square), VER(1,4), Y, N, N, N }, - { GL(NV_copy_depth_to_color), VER(0,0), Y, N, N, N }, - { GL(NV_depth_clamp), VER(0,0), Y, N, N, N }, - { GL(NV_fog_distance), VER(0,0), Y, N, N, N }, - { GL(NV_fragment_program), VER(0,0), Y, N, N, N }, - { GL(NV_fragment_program_option), VER(0,0), Y, N, N, N }, - { GL(NV_fragment_program2), VER(0,0), Y, N, N, N }, - { GL(NV_light_max_exponent), VER(0,0), Y, N, N, N }, - { GL(NV_multisample_filter_hint), VER(0,0), Y, N, N, N }, - { GL(NV_point_sprite), VER(0,0), Y, N, N, N }, - { GL(NV_texgen_reflection), VER(0,0), Y, N, N, N }, - { GL(NV_texture_compression_vtc), VER(0,0), Y, N, N, N }, - { GL(NV_texture_env_combine4), VER(0,0), Y, N, N, N }, - { GL(NV_texture_rectangle), VER(0,0), Y, N, N, N }, - { GL(NV_vertex_program), VER(0,0), Y, N, N, N }, - { GL(NV_vertex_program1_1), VER(0,0), Y, N, N, N }, - { GL(NV_vertex_program2), VER(0,0), Y, N, N, N }, - { GL(NV_vertex_program2_option), VER(0,0), Y, N, N, N }, - { GL(NV_vertex_program3), VER(0,0), Y, N, N, N }, - { GL(OES_read_format), VER(0,0), Y, N, N, N }, - { GL(OES_compressed_paletted_texture),VER(0,0), Y, N, N, N }, - { GL(SGI_color_matrix), VER(0,0), Y, N, N, N }, - { GL(SGI_texture_color_table), VER(0,0), Y, N, N, N }, - { GL(SGIS_generate_mipmap), VER(1,4), Y, N, N, N }, - { GL(SGIS_multisample), VER(0,0), Y, N, N, N }, - { GL(SGIS_texture_border_clamp), VER(1,3), Y, N, N, N }, - { GL(SGIS_texture_edge_clamp), VER(1,2), Y, N, N, N }, - { GL(SGIS_texture_lod), VER(1,2), Y, N, N, N }, - { GL(SGIX_blend_alpha_minmax), VER(0,0), Y, N, N, N }, - { GL(SGIX_clipmap), VER(0,0), Y, N, N, N }, - { GL(SGIX_depth_texture), VER(0,0), Y, N, N, N }, - { GL(SGIX_fog_offset), VER(0,0), Y, N, N, N }, - { GL(SGIX_shadow), VER(0,0), Y, N, N, N }, - { GL(SGIX_shadow_ambient), VER(0,0), Y, N, N, N }, - { GL(SGIX_texture_coordinate_clamp), VER(0,0), Y, N, N, N }, - { GL(SGIX_texture_lod_bias), VER(0,0), Y, N, N, N }, - { GL(SGIX_texture_range), VER(0,0), Y, N, N, N }, - { GL(SGIX_texture_scale_bias), VER(0,0), Y, N, N, N }, - { GL(SGIX_vertex_preclip), VER(0,0), Y, N, N, N }, - { GL(SGIX_vertex_preclip_hint), VER(0,0), Y, N, N, N }, - { GL(SGIX_ycrcb), VER(0,0), Y, N, N, N }, - { GL(SUN_convolution_border_modes), VER(0,0), Y, N, N, N }, - { GL(SUN_multi_draw_arrays), VER(0,0), Y, N, Y, N }, - { GL(SUN_slice_accum), VER(0,0), Y, N, N, N }, - { NULL } -}; - - -/* global bit-fields of available extensions and their characteristics */ -static unsigned char client_glx_support[8]; -static unsigned char client_glx_only[8]; -static unsigned char direct_glx_only[8]; -static unsigned char client_gl_support[ __GL_EXT_BYTES ]; -static unsigned char client_gl_only[ __GL_EXT_BYTES ]; - -/** - * Bits representing the set of extensions that are enabled by default in all - * direct rendering drivers. - */ -static unsigned char direct_glx_support[8]; - -/** - * Highest core GL version that can be supported for indirect rendering. - */ -static const unsigned gl_major = 1; -static const unsigned gl_minor = 4; - -/* client extensions string */ -static const char * __glXGLXClientExtensions = NULL; - -static void __glXExtensionsCtr( void ); -static void __glXExtensionsCtrScreen( __GLXscreenConfigs *psc ); -static void __glXProcessServerString( const struct extension_info * ext, - const char * server_string, unsigned char * server_support ); - -/** - * Set the state of a GLX extension. - * - * \param name Name of the extension. - * \param name_len Length, in characters, of the extension name. - * \param state New state (either enabled or disabled) of the extension. - * \param supported Table in which the state of the extension is to be set. - */ -static void -set_glx_extension( const struct extension_info * ext, - const char * name, unsigned name_len, GLboolean state, - unsigned char * supported ) -{ - unsigned i; - - - for ( i = 0 ; ext[i].name != NULL ; i++ ) { - if ( (name_len == ext[i].name_len) - && (strncmp( ext[i].name, name, name_len ) == 0) ) { - if ( state ) { - SET_BIT( supported, ext[i].bit ); - } - else { - CLR_BIT( supported, ext[i].bit ); - } - - return; - } - } -} - - -#define NUL '\0' -#define SEPARATOR ' ' - -/** - * Convert the server's extension string to a bit-field. - * - * \param server_string GLX extension string from the server. - * \param server_support Bit-field of supported extensions. - */ -static void -__glXProcessServerString( const struct extension_info * ext, - const char * server_string, - unsigned char * server_support ) -{ - unsigned base; - unsigned len; - - (void) memset( server_support, 0, sizeof( server_support ) ); - - for ( base = 0 ; server_string[ base ] != NUL ; /* empty */ ) { - /* Determine the length of the next extension name. - */ - for ( len = 0 - ; (server_string[ base + len ] != SEPARATOR) - && (server_string[ base + len ] != NUL) - ; len++ ) { - /* empty */ - } - - /* Set the bit for the extension in the server_support table. - */ - set_glx_extension( ext, & server_string[ base ], len, GL_TRUE, - server_support ); - - - /* Advance to the next extension string. This means that we skip - * over the previous string and any trialing white-space. - */ - for ( base += len ; - (server_string[ base ] == SEPARATOR) - && (server_string[ base ] != NUL) - ; base++ ) { - /* empty */ - } - } -} - - -/** - * Enable a named GLX extension on a given screen. - * Drivers should not call this function directly. They should instead use - * \c glXGetProcAddress to obtain a pointer to the function. - * - * \param psc Pointer to GLX per-screen record. - * \param name Name of the extension to enable. - * - * \sa glXGetProcAddress - * - * \since Internal API version 20030813. - */ -void -__glXScrEnableExtension( __GLXscreenConfigs *psc, const char * name ) -{ - __glXExtensionsCtr(); - __glXExtensionsCtrScreen(psc); - set_glx_extension( known_glx_extensions, name, strlen( name ), GL_TRUE, - psc->direct_support ); -} - - -/** - * Initialize global extension support tables. - */ - -static void -__glXExtensionsCtr( void ) -{ - unsigned i; - static GLboolean ext_list_first_time = GL_TRUE; - - - if ( ext_list_first_time ) { - ext_list_first_time = GL_FALSE; - - (void) memset( client_glx_support, 0, sizeof( client_glx_support ) ); - (void) memset( direct_glx_support, 0, sizeof( direct_glx_support ) ); - (void) memset( client_glx_only, 0, sizeof( client_glx_only ) ); - (void) memset( direct_glx_only, 0, sizeof( direct_glx_only ) ); - - (void) memset( client_gl_support, 0, sizeof( client_gl_support ) ); - (void) memset( client_gl_only, 0, sizeof( client_gl_only ) ); - - for ( i = 0 ; known_glx_extensions[i].name != NULL ; i++ ) { - const unsigned bit = known_glx_extensions[i].bit; - - if ( known_glx_extensions[i].client_support ) { - SET_BIT( client_glx_support, bit ); - } - - if ( known_glx_extensions[i].direct_support ) { - SET_BIT( direct_glx_support, bit ); - } - - if ( known_glx_extensions[i].client_only ) { - SET_BIT( client_glx_only, bit ); - } - - if ( known_glx_extensions[i].direct_only ) { - SET_BIT( direct_glx_only, bit ); - } - } - - for ( i = 0 ; known_gl_extensions[i].name != NULL ; i++ ) { - const unsigned bit = known_gl_extensions[i].bit; - - if ( known_gl_extensions[i].client_support ) { - SET_BIT( client_gl_support, bit ); - } - - if ( known_gl_extensions[i].client_only ) { - SET_BIT( client_gl_only, bit ); - } - } - -#if 0 - fprintf( stderr, "[%s:%u] Maximum client library version: %u.%u\n", - __func__, __LINE__, gl_major, gl_minor ); -#endif - } -} - - -/** - * Make sure that per-screen direct-support table is initialized. - * - * \param psc Pointer to GLX per-screen record. - */ - -static void -__glXExtensionsCtrScreen( __GLXscreenConfigs *psc ) -{ - if (psc->ext_list_first_time) { - psc->ext_list_first_time = GL_FALSE; - (void) memcpy( psc->direct_support, direct_glx_support, - sizeof( direct_glx_support ) ); - } -} - - -/** - * Check if a certain extension is enabled on a given screen. - * - * \param psc Pointer to GLX per-screen record. - * \param bit Bit index in the direct-support table. - * \returns If the extension bit is enabled for the screen, \c GL_TRUE is - * returned. If the extension bit is not enabled or if \c psc is - * \c NULL, then \c GL_FALSE is returned. - */ -GLboolean -__glXExtensionBitIsEnabled( __GLXscreenConfigs *psc, unsigned bit ) -{ - GLboolean enabled = GL_FALSE; - - if ( psc != NULL ) { - __glXExtensionsCtr(); - __glXExtensionsCtrScreen( psc ); - enabled = EXT_ENABLED( bit, psc->direct_support ); - } - - return enabled; -} - - -/** - * Check if a certain extension is enabled in a given context. - * - */ -GLboolean -__glExtensionBitIsEnabled( const __GLXcontext * gc, unsigned bit ) -{ - GLboolean enabled = GL_FALSE; - - if ( gc != NULL ) { - enabled = EXT_ENABLED( bit, gc->gl_extension_bits ); - } - - return enabled; -} - - - -/** - * Convert a bit-field to a string of supported extensions. - */ -static char * -__glXGetStringFromTable( const struct extension_info * ext, - const unsigned char * supported ) -{ - unsigned i; - unsigned ext_str_len; - char * ext_str; - char * point; - - - ext_str_len = 0; - for ( i = 0 ; ext[i].name != NULL ; i++ ) { - if ( EXT_ENABLED( ext[i].bit, supported ) ) { - ext_str_len += ext[i].name_len + 1; - } - } - - ext_str = Xmalloc( ext_str_len + 1 ); - if ( ext_str != NULL ) { - point = ext_str; - - for ( i = 0 ; ext[i].name != NULL ; i++ ) { - if ( EXT_ENABLED( ext[i].bit, supported ) ) { - (void) memcpy( point, ext[i].name, ext[i].name_len ); - point += ext[i].name_len; - - *point = ' '; - point++; - } - } - - *point = '\0'; - } - - return ext_str; -} - - -/** - * Get the string of client library supported extensions. - */ -const char * -__glXGetClientExtensions( void ) -{ - if ( __glXGLXClientExtensions == NULL ) { - __glXExtensionsCtr(); - __glXGLXClientExtensions = __glXGetStringFromTable( known_glx_extensions, - client_glx_support ); - } - - return __glXGLXClientExtensions; -} - - -/** - * Calculate the list of application usable extensions. The resulting - * string is stored in \c psc->effectiveGLXexts. - * - * \param psc Pointer to GLX per-screen record. - * \param display_is_direct_capable True if the display is capable of - * direct rendering. - * \param minor_version GLX minor version from the server. - */ - -void -__glXCalculateUsableExtensions( __GLXscreenConfigs *psc, - GLboolean display_is_direct_capable, - int minor_version ) -{ - unsigned char server_support[8]; - unsigned char usable[8]; - unsigned i; - - __glXExtensionsCtr(); - __glXExtensionsCtrScreen( psc ); - __glXProcessServerString( known_glx_extensions, - psc->serverGLXexts, server_support ); - - - /* This is a hack. Some servers support GLX 1.3 but don't export - * all of the extensions implied by GLX 1.3. If the server claims - * support for GLX 1.3, enable support for the extensions that can be - * "emulated" as well. - */ - - if ( minor_version >= 3 ) { - SET_BIT( server_support, EXT_visual_info_bit ); - SET_BIT( server_support, EXT_visual_rating_bit ); - SET_BIT( server_support, SGI_make_current_read_bit ); - SET_BIT( server_support, SGIX_fbconfig_bit ); - SET_BIT( server_support, SGIX_pbuffer_bit ); - - /* This one is a little iffy. GLX 1.3 doesn't incorporate all of this - * extension. However, the only part that is not strictly client-side - * is shared. That's the glXQueryContext / glXQueryContextInfoEXT - * function. - */ - - SET_BIT( server_support, EXT_import_context_bit ); - } - - - /* An extension is supported if the client-side (i.e., libGL) supports - * it and the "server" supports it. In this case that means that either - * the true server supports it or it is only for direct-rendering and - * the direct rendering driver supports it. - * - * If the display is not capable of direct rendering, then the extension - * is enabled if and only if the client-side library and the server - * support it. - */ - - if ( display_is_direct_capable ) { - for ( i = 0 ; i < 8 ; i++ ) { - usable[i] = (client_glx_support[i] & client_glx_only[i]) - | (client_glx_support[i] & psc->direct_support[i] & server_support[i]) - | (client_glx_support[i] & psc->direct_support[i] & direct_glx_only[i]); - } - } - else { - for ( i = 0 ; i < 8 ; i++ ) { - usable[i] = (client_glx_support[i] & client_glx_only[i]) - | (client_glx_support[i] & server_support[i]); - } - } - - psc->effectiveGLXexts = __glXGetStringFromTable( known_glx_extensions, - usable ); -} - - -/** - * Calculate the list of application usable extensions. The resulting - * string is stored in \c gc->extensions. - * - * \param gc Pointer to GLX context. - * \param server_string Extension string from the server. - * \param major_version GL major version from the server. - * \param minor_version GL minor version from the server. - */ - -void -__glXCalculateUsableGLExtensions( __GLXcontext * gc, - const char * server_string, - int major_version, int minor_version ) -{ - unsigned char server_support[ __GL_EXT_BYTES ]; - unsigned char usable[ __GL_EXT_BYTES ]; - unsigned i; - - - __glXExtensionsCtr(); - - (void) memset( server_support, 0, sizeof( server_support ) ); - __glXProcessServerString( known_gl_extensions, server_string, - server_support ); - - - /* Handle lazy servers that don't export all the extensions strings that - * are part of the GL core version that they support. - */ - - for ( i = 0 ; i < __GL_EXT_BYTES ; i++ ) { - if ( (known_gl_extensions[i].version_major != 0) - && ((major_version > known_gl_extensions[i].version_major) - || ((major_version == known_gl_extensions[i].version_major) - && (minor_version >= known_gl_extensions[i].version_minor))) ) { - SET_BIT( server_support, known_gl_extensions[i].bit ); - } - } - - - /* An extension is supported if the client-side (i.e., libGL) supports - * it and the server supports it or the client-side library supports it - * and it only needs client-side support. - */ - - for ( i = 0 ; i < __GL_EXT_BYTES ; i++ ) { - usable[i] = (client_gl_support[i] & client_gl_only[i]) - | (client_gl_support[i] & server_support[i]); - } - - gc->extensions = (unsigned char *) - __glXGetStringFromTable( known_gl_extensions, usable ); - (void) memcpy( gc->gl_extension_bits, usable, sizeof( usable ) ); -} - - -/** - * Calculates the maximum core GL version that can be supported for indirect - * rendering. - */ -void -__glXGetGLVersion( int * major_version, int * minor_version ) -{ - __glXExtensionsCtr(); - *major_version = gl_major; - *minor_version = gl_minor; -} - - -/** - * Get a string representing the set of extensions supported by the client - * library. This is currently only used to send the list of extensions - * supported by the client to the server. - */ -char * -__glXGetClientGLExtensionString( void ) -{ - __glXExtensionsCtr(); - return __glXGetStringFromTable( known_gl_extensions, client_gl_support ); -} diff --git a/nx-X11/extras/Mesa/src/glx/x11/glxextensions.h b/nx-X11/extras/Mesa/src/glx/x11/glxextensions.h deleted file mode 100644 index b4b03729c..000000000 --- a/nx-X11/extras/Mesa/src/glx/x11/glxextensions.h +++ /dev/null @@ -1,279 +0,0 @@ -/* - * (C) Copyright IBM Corporation 2002, 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 glxextensions.h - * - * \author Ian Romanick - */ - -#ifndef GLX_GLXEXTENSIONS_H -#define GLX_GLXEXTENSIONS_H - -enum { - ARB_get_proc_address_bit = 0, - ARB_multisample_bit, - ARB_render_texture_bit, - ATI_pixel_format_float_bit, - EXT_visual_info_bit, - EXT_visual_rating_bit, - EXT_import_context_bit, - MESA_agp_offset_bit, - MESA_allocate_memory_bit, /* Replaces MESA_agp_offset & NV_vertex_array_range */ - MESA_copy_sub_buffer_bit, - MESA_depth_float_bit, - MESA_pixmap_colormap_bit, - MESA_release_buffers_bit, - MESA_set_3dfx_mode_bit, - MESA_swap_control_bit, - MESA_swap_frame_usage_bit, - NV_float_buffer_bit, - NV_render_depth_texture_bit, - NV_render_texture_rectangle_bit, - NV_vertex_array_range_bit, - OML_swap_method_bit, - OML_sync_control_bit, - SGI_cushion_bit, - SGI_make_current_read_bit, - SGI_swap_control_bit, - SGI_video_sync_bit, - SGIS_blended_overlay_bit, - SGIS_color_range_bit, - SGIS_multisample_bit, - SGIX_dm_buffer_bit, - SGIX_fbconfig_bit, - SGIX_pbuffer_bit, - SGIX_swap_barrier_bit, - SGIX_swap_group_bit, - SGIX_video_resize_bit, - SGIX_video_source_bit, - SGIX_visual_select_group_bit, - SUN_get_transparent_index_bit -}; - -enum { - GL_ARB_depth_texture_bit = 0, - GL_ARB_draw_buffers_bit, - GL_ARB_fragment_program_bit, - GL_ARB_fragment_program_shadow_bit, - GL_ARB_imaging_bit, - GL_ARB_multisample_bit, - GL_ARB_multitexture_bit, - GL_ARB_occlusion_query_bit, - GL_ARB_point_parameters_bit, - GL_ARB_point_sprite_bit, - GL_ARB_shadow_bit, - GL_ARB_shadow_ambient_bit, - GL_ARB_texture_border_clamp_bit, - GL_ARB_texture_cube_map_bit, - GL_ARB_texture_compression_bit, - GL_ARB_texture_env_add_bit, - GL_ARB_texture_env_combine_bit, - GL_ARB_texture_env_crossbar_bit, - GL_ARB_texture_env_dot3_bit, - GL_ARB_texture_mirrored_repeat_bit, - GL_ARB_texture_non_power_of_two_bit, - GL_ARB_texture_rectangle_bit, - GL_ARB_transpose_matrix_bit, - GL_ARB_vertex_buffer_object_bit, - GL_ARB_vertex_program_bit, - GL_ARB_window_pos_bit, - GL_EXT_abgr_bit, - GL_EXT_bgra_bit, - GL_EXT_blend_color_bit, - GL_EXT_blend_equation_separate_bit, - GL_EXT_blend_func_separate_bit, - GL_EXT_blend_logic_op_bit, - GL_EXT_blend_minmax_bit, - GL_EXT_blend_subtract_bit, - GL_EXT_clip_volume_hint_bit, - GL_EXT_compiled_vertex_array_bit, - GL_EXT_convolution_bit, - GL_EXT_copy_texture_bit, - GL_EXT_cull_vertex_bit, - GL_EXT_depth_bounds_test_bit, - GL_EXT_draw_range_elements_bit, - GL_EXT_fog_coord_bit, - GL_EXT_multi_draw_arrays_bit, - GL_EXT_packed_pixels_bit, - GL_EXT_paletted_texture_bit, - GL_EXT_pixel_buffer_object_bit, - GL_EXT_polygon_offset_bit, - GL_EXT_rescale_normal_bit, - GL_EXT_secondary_color_bit, - GL_EXT_separate_specular_color_bit, - GL_EXT_shadow_funcs_bit, - GL_EXT_shared_texture_palette_bit, - GL_EXT_stencil_two_side_bit, - GL_EXT_stencil_wrap_bit, - GL_EXT_subtexture_bit, - GL_EXT_texture_bit, - GL_EXT_texture3D_bit, - GL_EXT_texture_compression_dxt1_bit, - GL_EXT_texture_compression_s3tc_bit, - GL_EXT_texture_edge_clamp_bit, - GL_EXT_texture_env_combine_bit, - GL_EXT_texture_env_dot3_bit, - GL_EXT_texture_filter_anisotropic_bit, - GL_EXT_texture_lod_bit, - GL_EXT_texture_lod_bias_bit, - GL_EXT_texture_mirror_clamp_bit, - GL_EXT_texture_object_bit, - GL_EXT_vertex_array_bit, - GL_3DFX_texture_compression_FXT1_bit, - GL_APPLE_packed_pixels_bit, - GL_APPLE_ycbcr_422_bit, - GL_ATI_text_fragment_shader_bit, - GL_ATI_texture_env_combine3_bit, - GL_ATI_texture_float_bit, - GL_ATI_texture_mirror_once_bit, - GL_HP_convolution_border_modes_bit, - GL_HP_occlusion_test_bit, - GL_IBM_cull_vertex_bit, - GL_IBM_pixel_filter_hint_bit, - GL_IBM_rasterpos_clip_bit, - GL_IBM_texture_clamp_nodraw_bit, - GL_INGR_interlace_read_bit, - GL_MESA_pack_invert_bit, - GL_MESA_ycbcr_texture_bit, - GL_NV_blend_square_bit, - GL_NV_copy_depth_to_color_bit, - GL_NV_depth_clamp_bit, - GL_NV_fog_distance_bit, - GL_NV_fragment_program_bit, - GL_NV_fragment_program_option_bit, - GL_NV_fragment_program2_bit, - GL_NV_light_max_exponent_bit, - GL_NV_multisample_filter_hint_bit, - GL_NV_point_sprite_bit, - GL_NV_texgen_reflection_bit, - GL_NV_texture_compression_vtc_bit, - GL_NV_texture_env_combine4_bit, - GL_NV_vertex_program_bit, - GL_NV_vertex_program1_1_bit, - GL_NV_vertex_program2_bit, - GL_NV_vertex_program2_option_bit, - GL_NV_vertex_program3_bit, - GL_OES_compressed_paletted_texture_bit, - GL_OES_read_format_bit, - GL_SGI_color_matrix_bit, - GL_SGI_texture_color_table_bit, - GL_SGIS_generate_mipmap_bit, - GL_SGIS_multisample_bit, - GL_SGIS_texture_lod_bit, - GL_SGIX_blend_alpha_minmax_bit, - GL_SGIX_clipmap_bit, - GL_SGIX_depth_texture_bit, - GL_SGIX_fog_offset_bit, - GL_SGIX_shadow_bit, - GL_SGIX_texture_coordinate_clamp_bit, - GL_SGIX_texture_lod_bias_bit, - GL_SGIX_texture_range_bit, - GL_SGIX_texture_scale_bias_bit, - GL_SGIX_vertex_preclip_bit, - GL_SGIX_vertex_preclip_hint_bit, - GL_SGIX_ycrcb_bit, - GL_SUN_convolution_border_modes_bit, - GL_SUN_slice_accum_bit, - - /* This *MUST* go here. If it gets put after the duplicate values it will - * get the value after the last duplicate. - */ - __NUM_GL_EXTS, - - - /* Alias extension bits. These extensions exist in either vendor-specific - * or EXT form and were later promoted to either EXT or ARB form. In all - * cases, the meaning is *exactly* the same. That's why - * EXT_texture_env_combine is *NOT* an alias of ARB_texture_env_combine and - * EXT_texture_env_dot3 is *NOT* an alias of ARB_texture_env_dot3. Be - * careful! When in doubt, src/mesa/main/extensions.c in the Mesa tree - * is a great reference. - */ - - GL_ATI_blend_equation_separate_bit = GL_EXT_blend_equation_separate_bit, - GL_ATI_draw_buffers_bit = GL_ARB_draw_buffers_bit, - GL_ATIX_texture_env_combine3_bit = GL_ATI_texture_env_combine3_bit, - GL_EXT_point_parameters_bit = GL_ARB_point_parameters_bit, - GL_EXT_texture_env_add_bit = GL_ARB_texture_env_add_bit, - GL_EXT_texture_rectangle_bit = GL_ARB_texture_rectangle_bit, - GL_IBM_texture_mirrored_repeat_bit = GL_ARB_texture_mirrored_repeat_bit, - GL_INGR_blend_func_separate_bit = GL_EXT_blend_func_separate_bit, - GL_MESA_window_pos_bit = GL_ARB_window_pos_bit, - GL_NV_texture_rectangle_bit = GL_ARB_texture_rectangle_bit, - GL_SGIS_texture_border_clamp_bit = GL_ARB_texture_border_clamp_bit, - GL_SGIS_texture_edge_clamp_bit = GL_EXT_texture_edge_clamp_bit, - GL_SGIX_shadow_ambient_bit = GL_ARB_shadow_ambient_bit, - GL_SUN_multi_draw_arrays_bit = GL_EXT_multi_draw_arrays_bit -}; - -#define __GL_EXT_BYTES ((__NUM_GL_EXTS + 7) / 8) - -struct __GLXscreenConfigsRec; -struct __GLXcontextRec; - -extern GLboolean __glXExtensionBitIsEnabled( struct __GLXscreenConfigsRec *psc, unsigned bit ); -extern const char * __glXGetClientExtensions( void ); -extern void __glXCalculateUsableExtensions( struct __GLXscreenConfigsRec *psc, - GLboolean display_is_direct_capable, int server_minor_version ); -extern void __glXScrEnableExtension( struct __GLXscreenConfigsRec *psc, const char * name ); -extern void __glXCalculateUsableGLExtensions( struct __GLXcontextRec * gc, - const char * server_string, int major_version, int minor_version ); -extern void __glXGetGLVersion( int * major_version, int * minor_version ); -extern char * __glXGetClientGLExtensionString( void ); - -extern GLboolean __glExtensionBitIsEnabled( const struct __GLXcontextRec * gc, - unsigned bit ); - - -/* Source-level backwards compatibility with old drivers. They won't - * find the respective functions, though. - */ -typedef void (* PFNGLXENABLEEXTENSIONPROC) ( const char * name, - GLboolean force_client ); -typedef void (* PFNGLXDISABLEEXTENSIONPROC) ( const char * name ); - -/* GLX_ALIAS should be used for functions with a non-void return type. - GLX_ALIAS_VOID is for functions with a void return type. */ -#ifdef GLX_NO_STATIC_EXTENSION_FUNCTIONS -# define GLX_ALIAS(return_type, real_func, proto_args, args, aliased_func) -# define GLX_ALIAS_VOID(real_func, proto_args, args, aliased_func) -#else -# if defined(__GNUC__) && !defined(GLX_ALIAS_UNSUPPORTED) -# define GLX_ALIAS(return_type, real_func, proto_args, args, aliased_func) \ - return_type real_func proto_args \ - __attribute__ ((alias( # aliased_func ) )); -# define GLX_ALIAS_VOID(real_func, proto_args, args, aliased_func) \ - GLX_ALIAS(void, real_func, proto_args, args, aliased_func) -# else -# define GLX_ALIAS(return_type, real_func, proto_args, args, aliased_func) \ - return_type real_func proto_args \ - { return aliased_func args ; } -# define GLX_ALIAS_VOID(real_func, proto_args, args, aliased_func) \ - void real_func proto_args \ - { aliased_func args ; } -# endif /* __GNUC__ */ -#endif /* GLX_NO_STATIC_EXTENSION_FUNCTIONS */ - -#endif /* GLX_GLXEXTENSIONS_H */ diff --git a/nx-X11/extras/Mesa/src/glx/x11/indirect.c b/nx-X11/extras/Mesa/src/glx/x11/indirect.c deleted file mode 100644 index 2a4db6578..000000000 --- a/nx-X11/extras/Mesa/src/glx/x11/indirect.c +++ /dev/null @@ -1,8472 +0,0 @@ -/* DO NOT EDIT - This file generated automatically by glX_proto_send.py (from Mesa) script */ - -/* - * (C) Copyright IBM Corporation 2004, 2005 - * All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * 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 -#include "indirect.h" -#include "glxclient.h" -#include "indirect_size.h" -#include -#ifdef USE_XCB -#include -#include -#include -#endif /* USE_XCB */ - -#define __GLX_PAD(n) (((n) + 3) & ~3) - -# if defined(__i386__) && defined(__GNUC__) && !defined(__CYGWIN__) && !defined(__MINGW32__) -# define FASTCALL __attribute__((fastcall)) -# else -# define FASTCALL -# endif -# if defined(__GNUC__) -# define NOINLINE __attribute__((noinline)) -# else -# define NOINLINE -# endif - -#if !defined __GNUC__ || __GNUC__ < 3 -# define __builtin_expect(x, y) x -#endif - -/* If the size and opcode values are known at compile-time, this will, on - * x86 at least, emit them with a single instruction. - */ -#define emit_header(dest, op, size) \ - do { union { short s[2]; int i; } temp; \ - temp.s[0] = (size); temp.s[1] = (op); \ - *((int *)(dest)) = temp.i; } while(0) - -NOINLINE CARD32 -__glXReadReply( Display *dpy, size_t size, void * dest, GLboolean reply_is_always_array ) -{ - xGLXSingleReply reply; - - (void) _XReply(dpy, (xReply *) & reply, 0, False); - if (size != 0) { - if ((reply.length > 0) || reply_is_always_array) { - const GLint bytes = (reply_is_always_array) - ? (4 * reply.length) : (reply.size * size); - const GLint extra = 4 - (bytes & 3); - - _XRead(dpy, dest, bytes); - if ( extra < 4 ) { - _XEatData(dpy, extra); - } - } - else { - (void) memcpy( dest, &(reply.pad3), size); - } - } - - return reply.retval; -} - -NOINLINE void -__glXReadPixelReply( Display *dpy, __GLXcontext * gc, unsigned max_dim, - GLint width, GLint height, GLint depth, GLenum format, GLenum type, - void * dest, GLboolean dimensions_in_reply ) -{ - xGLXSingleReply reply; - GLint size; - - (void) _XReply(dpy, (xReply *) & reply, 0, False); - - if ( dimensions_in_reply ) { - width = reply.pad3; - height = reply.pad4; - depth = reply.pad5; - - if ((height == 0) || (max_dim < 2)) { height = 1; } - if ((depth == 0) || (max_dim < 3)) { depth = 1; } - } - - size = reply.length * 4; - if (size != 0) { - void * buf = Xmalloc( size ); - - if ( buf == NULL ) { - _XEatData(dpy, size); - __glXSetError(gc, GL_OUT_OF_MEMORY); - } - else { - const GLint extra = 4 - (size & 3); - - _XRead(dpy, buf, size); - if ( extra < 4 ) { - _XEatData(dpy, extra); - } - - __glEmptyImage(gc, 3, width, height, depth, format, type, - buf, dest); - Xfree(buf); - } - } -} - -#define X_GLXSingle 0 - -NOINLINE FASTCALL GLubyte * -__glXSetupSingleRequest( __GLXcontext * gc, GLint sop, GLint cmdlen ) -{ - xGLXSingleReq * req; - Display * const dpy = gc->currentDpy; - - (void) __glXFlushRenderBuffer(gc, gc->pc); - LockDisplay(dpy); - GetReqExtra(GLXSingle, cmdlen, req); - req->reqType = gc->majorOpcode; - req->contextTag = gc->currentContextTag; - req->glxCode = sop; - return (GLubyte *)(req) + sz_xGLXSingleReq; -} - -NOINLINE FASTCALL GLubyte * -__glXSetupVendorRequest( __GLXcontext * gc, GLint code, GLint vop, GLint cmdlen ) -{ - xGLXVendorPrivateReq * req; - Display * const dpy = gc->currentDpy; - - (void) __glXFlushRenderBuffer(gc, gc->pc); - LockDisplay(dpy); - GetReqExtra(GLXVendorPrivate, cmdlen, req); - req->reqType = gc->majorOpcode; - req->glxCode = code; - req->vendorCode = vop; - req->contextTag = gc->currentContextTag; - return (GLubyte *)(req) + sz_xGLXVendorPrivateReq; -} - -const GLuint __glXDefaultPixelStore[9] = { 0, 0, 0, 0, 0, 0, 0, 0, 1 }; - -#define zero (__glXDefaultPixelStore+0) -#define one (__glXDefaultPixelStore+8) -#define default_pixel_store_1D (__glXDefaultPixelStore+4) -#define default_pixel_store_1D_size 20 -#define default_pixel_store_2D (__glXDefaultPixelStore+4) -#define default_pixel_store_2D_size 20 -#define default_pixel_store_3D (__glXDefaultPixelStore+0) -#define default_pixel_store_3D_size 36 -#define default_pixel_store_4D (__glXDefaultPixelStore+0) -#define default_pixel_store_4D_size 36 - -static FASTCALL NOINLINE void -generic_3_byte( GLint rop, const void * ptr ) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 8; - - emit_header(gc->pc, rop, cmdlen); - (void) memcpy((void *)(gc->pc + 4), ptr, 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -static FASTCALL NOINLINE void -generic_4_byte( GLint rop, const void * ptr ) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 8; - - emit_header(gc->pc, rop, cmdlen); - (void) memcpy((void *)(gc->pc + 4), ptr, 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -static FASTCALL NOINLINE void -generic_6_byte( GLint rop, const void * ptr ) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12; - - emit_header(gc->pc, rop, cmdlen); - (void) memcpy((void *)(gc->pc + 4), ptr, 8); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -static FASTCALL NOINLINE void -generic_8_byte( GLint rop, const void * ptr ) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12; - - emit_header(gc->pc, rop, cmdlen); - (void) memcpy((void *)(gc->pc + 4), ptr, 8); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -static FASTCALL NOINLINE void -generic_12_byte( GLint rop, const void * ptr ) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 16; - - emit_header(gc->pc, rop, cmdlen); - (void) memcpy((void *)(gc->pc + 4), ptr, 12); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -static FASTCALL NOINLINE void -generic_16_byte( GLint rop, const void * ptr ) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 20; - - emit_header(gc->pc, rop, cmdlen); - (void) memcpy((void *)(gc->pc + 4), ptr, 16); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -static FASTCALL NOINLINE void -generic_24_byte( GLint rop, const void * ptr ) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 28; - - emit_header(gc->pc, rop, cmdlen); - (void) memcpy((void *)(gc->pc + 4), ptr, 24); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -static FASTCALL NOINLINE void -generic_32_byte( GLint rop, const void * ptr ) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 36; - - emit_header(gc->pc, rop, cmdlen); - (void) memcpy((void *)(gc->pc + 4), ptr, 32); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLsop_NewList 101 -void -__indirect_glNewList(GLuint list, GLenum mode) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - Display * const dpy = gc->currentDpy; - const GLuint cmdlen = 8; - if (__builtin_expect(dpy != NULL, 1)) { -#ifdef USE_XCB - XCBConnection *c = XCBConnectionOfDisplay(dpy); - (void) __glXFlushRenderBuffer(gc, gc->pc); - XCBGlxNewList(c, gc->currentContextTag, list, mode); -#else - GLubyte const * pc = __glXSetupSingleRequest(gc, X_GLsop_NewList, cmdlen); - (void) memcpy((void *)(pc + 0), (void *)(&list), 4); - (void) memcpy((void *)(pc + 4), (void *)(&mode), 4); - UnlockDisplay(dpy); SyncHandle(); -#endif /* USE_XCB */ - } - return; -} - -#define X_GLsop_EndList 102 -void -__indirect_glEndList(void) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - Display * const dpy = gc->currentDpy; - const GLuint cmdlen = 0; - if (__builtin_expect(dpy != NULL, 1)) { -#ifdef USE_XCB - XCBConnection *c = XCBConnectionOfDisplay(dpy); - (void) __glXFlushRenderBuffer(gc, gc->pc); - XCBGlxEndList(c, gc->currentContextTag); -#else - (void) __glXSetupSingleRequest(gc, X_GLsop_EndList, cmdlen); - UnlockDisplay(dpy); SyncHandle(); -#endif /* USE_XCB */ - } - return; -} - -#define X_GLrop_CallList 1 -void -__indirect_glCallList(GLuint list) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 8; - emit_header(gc->pc, X_GLrop_CallList, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&list), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_CallLists 2 -void -__indirect_glCallLists(GLsizei n, GLenum type, const GLvoid * lists) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint compsize = __glCallLists_size(type); - const GLuint cmdlen = 12 + __GLX_PAD((compsize * n)); - if (__builtin_expect((n >= 0) && (gc->currentDpy != NULL), 1)) { - if (cmdlen <= gc->maxSmallRenderCommandSize) { - if ( (gc->pc + cmdlen) > gc->bufEnd ) { - (void) __glXFlushRenderBuffer(gc, gc->pc); - } - emit_header(gc->pc, X_GLrop_CallLists, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&n), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&type), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(lists), (compsize * n)); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } - } - else { - const GLint op = X_GLrop_CallLists; - const GLuint cmdlenLarge = cmdlen + 4; - GLubyte * const pc = __glXFlushRenderBuffer(gc, gc->pc); - (void) memcpy((void *)(pc + 0), (void *)(&cmdlenLarge), 4); - (void) memcpy((void *)(pc + 4), (void *)(&op), 4); - (void) memcpy((void *)(pc + 8), (void *)(&n), 4); - (void) memcpy((void *)(pc + 12), (void *)(&type), 4); - __glXSendLargeCommand(gc, pc, 16, lists, (compsize * n)); - } - } -} - -#define X_GLsop_DeleteLists 103 -void -__indirect_glDeleteLists(GLuint list, GLsizei range) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - Display * const dpy = gc->currentDpy; - const GLuint cmdlen = 8; - if (__builtin_expect(dpy != NULL, 1)) { -#ifdef USE_XCB - XCBConnection *c = XCBConnectionOfDisplay(dpy); - (void) __glXFlushRenderBuffer(gc, gc->pc); - XCBGlxDeleteLists(c, gc->currentContextTag, list, range); -#else - GLubyte const * pc = __glXSetupSingleRequest(gc, X_GLsop_DeleteLists, cmdlen); - (void) memcpy((void *)(pc + 0), (void *)(&list), 4); - (void) memcpy((void *)(pc + 4), (void *)(&range), 4); - UnlockDisplay(dpy); SyncHandle(); -#endif /* USE_XCB */ - } - return; -} - -#define X_GLsop_GenLists 104 -GLuint -__indirect_glGenLists(GLsizei range) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - Display * const dpy = gc->currentDpy; - GLuint retval = (GLuint) 0; - const GLuint cmdlen = 4; - if (__builtin_expect(dpy != NULL, 1)) { -#ifdef USE_XCB - XCBConnection *c = XCBConnectionOfDisplay(dpy); - (void) __glXFlushRenderBuffer(gc, gc->pc); - XCBGlxGenListsRep *reply = XCBGlxGenListsReply(c, XCBGlxGenLists(c, gc->currentContextTag, range), NULL); - retval = reply->ret_val; - free(reply); -#else - GLubyte const * pc = __glXSetupSingleRequest(gc, X_GLsop_GenLists, cmdlen); - (void) memcpy((void *)(pc + 0), (void *)(&range), 4); - retval = (GLuint) __glXReadReply(dpy, 0, NULL, GL_FALSE); - UnlockDisplay(dpy); SyncHandle(); -#endif /* USE_XCB */ - } - return retval; -} - -#define X_GLrop_ListBase 3 -void -__indirect_glListBase(GLuint base) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 8; - emit_header(gc->pc, X_GLrop_ListBase, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&base), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_Begin 4 -void -__indirect_glBegin(GLenum mode) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 8; - emit_header(gc->pc, X_GLrop_Begin, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&mode), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_Bitmap 5 -void -__indirect_glBitmap(GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte * bitmap) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint compsize = (bitmap != NULL) ? __glImageSize(width, height, 1, GL_COLOR_INDEX, GL_BITMAP, 0) : 0; - const GLuint cmdlen = 48 + __GLX_PAD(compsize); - if (__builtin_expect(gc->currentDpy != NULL, 1)) { - if (cmdlen <= gc->maxSmallRenderCommandSize) { - if ( (gc->pc + cmdlen) > gc->bufEnd ) { - (void) __glXFlushRenderBuffer(gc, gc->pc); - } - emit_header(gc->pc, X_GLrop_Bitmap, cmdlen); - (void) memcpy((void *)(gc->pc + 24), (void *)(&width), 4); - (void) memcpy((void *)(gc->pc + 28), (void *)(&height), 4); - (void) memcpy((void *)(gc->pc + 32), (void *)(&xorig), 4); - (void) memcpy((void *)(gc->pc + 36), (void *)(&yorig), 4); - (void) memcpy((void *)(gc->pc + 40), (void *)(&xmove), 4); - (void) memcpy((void *)(gc->pc + 44), (void *)(&ymove), 4); - if (compsize > 0) { - (*gc->fillImage)(gc, 2, width, height, 1, GL_COLOR_INDEX, GL_BITMAP, bitmap, gc->pc + 48, gc->pc + 4); - } - else { - (void) memcpy( gc->pc + 4, default_pixel_store_2D, default_pixel_store_2D_size ); - } - gc->pc += cmdlen; - if (gc->pc > gc->limit) { (void) __glXFlushRenderBuffer(gc, gc->pc); } - } - else { - const GLint op = X_GLrop_Bitmap; - const GLuint cmdlenLarge = cmdlen + 4; - GLubyte * const pc = __glXFlushRenderBuffer(gc, gc->pc); - (void) memcpy((void *)(pc + 0), (void *)(&cmdlenLarge), 4); - (void) memcpy((void *)(pc + 4), (void *)(&op), 4); - (void) memcpy((void *)(pc + 28), (void *)(&width), 4); - (void) memcpy((void *)(pc + 32), (void *)(&height), 4); - (void) memcpy((void *)(pc + 36), (void *)(&xorig), 4); - (void) memcpy((void *)(pc + 40), (void *)(&yorig), 4); - (void) memcpy((void *)(pc + 44), (void *)(&xmove), 4); - (void) memcpy((void *)(pc + 48), (void *)(&ymove), 4); - __glXSendLargeImage(gc, compsize, 2, width, height, 1, GL_COLOR_INDEX, GL_BITMAP, bitmap, pc + 52, pc + 8); - } - } -} - -#define X_GLrop_Color3bv 6 -void -__indirect_glColor3b(GLbyte red, GLbyte green, GLbyte blue) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 8; - emit_header(gc->pc, X_GLrop_Color3bv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&red), 1); - (void) memcpy((void *)(gc->pc + 5), (void *)(&green), 1); - (void) memcpy((void *)(gc->pc + 6), (void *)(&blue), 1); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_Color3bv 6 -void -__indirect_glColor3bv(const GLbyte * v) -{ - generic_3_byte( X_GLrop_Color3bv, v ); -} - -#define X_GLrop_Color3dv 7 -void -__indirect_glColor3d(GLdouble red, GLdouble green, GLdouble blue) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 28; - emit_header(gc->pc, X_GLrop_Color3dv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&red), 8); - (void) memcpy((void *)(gc->pc + 12), (void *)(&green), 8); - (void) memcpy((void *)(gc->pc + 20), (void *)(&blue), 8); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_Color3dv 7 -void -__indirect_glColor3dv(const GLdouble * v) -{ - generic_24_byte( X_GLrop_Color3dv, v ); -} - -#define X_GLrop_Color3fv 8 -void -__indirect_glColor3f(GLfloat red, GLfloat green, GLfloat blue) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 16; - emit_header(gc->pc, X_GLrop_Color3fv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&red), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&green), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(&blue), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_Color3fv 8 -void -__indirect_glColor3fv(const GLfloat * v) -{ - generic_12_byte( X_GLrop_Color3fv, v ); -} - -#define X_GLrop_Color3iv 9 -void -__indirect_glColor3i(GLint red, GLint green, GLint blue) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 16; - emit_header(gc->pc, X_GLrop_Color3iv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&red), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&green), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(&blue), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_Color3iv 9 -void -__indirect_glColor3iv(const GLint * v) -{ - generic_12_byte( X_GLrop_Color3iv, v ); -} - -#define X_GLrop_Color3sv 10 -void -__indirect_glColor3s(GLshort red, GLshort green, GLshort blue) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12; - emit_header(gc->pc, X_GLrop_Color3sv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&red), 2); - (void) memcpy((void *)(gc->pc + 6), (void *)(&green), 2); - (void) memcpy((void *)(gc->pc + 8), (void *)(&blue), 2); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_Color3sv 10 -void -__indirect_glColor3sv(const GLshort * v) -{ - generic_6_byte( X_GLrop_Color3sv, v ); -} - -#define X_GLrop_Color3ubv 11 -void -__indirect_glColor3ub(GLubyte red, GLubyte green, GLubyte blue) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 8; - emit_header(gc->pc, X_GLrop_Color3ubv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&red), 1); - (void) memcpy((void *)(gc->pc + 5), (void *)(&green), 1); - (void) memcpy((void *)(gc->pc + 6), (void *)(&blue), 1); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_Color3ubv 11 -void -__indirect_glColor3ubv(const GLubyte * v) -{ - generic_3_byte( X_GLrop_Color3ubv, v ); -} - -#define X_GLrop_Color3uiv 12 -void -__indirect_glColor3ui(GLuint red, GLuint green, GLuint blue) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 16; - emit_header(gc->pc, X_GLrop_Color3uiv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&red), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&green), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(&blue), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_Color3uiv 12 -void -__indirect_glColor3uiv(const GLuint * v) -{ - generic_12_byte( X_GLrop_Color3uiv, v ); -} - -#define X_GLrop_Color3usv 13 -void -__indirect_glColor3us(GLushort red, GLushort green, GLushort blue) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12; - emit_header(gc->pc, X_GLrop_Color3usv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&red), 2); - (void) memcpy((void *)(gc->pc + 6), (void *)(&green), 2); - (void) memcpy((void *)(gc->pc + 8), (void *)(&blue), 2); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_Color3usv 13 -void -__indirect_glColor3usv(const GLushort * v) -{ - generic_6_byte( X_GLrop_Color3usv, v ); -} - -#define X_GLrop_Color4bv 14 -void -__indirect_glColor4b(GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 8; - emit_header(gc->pc, X_GLrop_Color4bv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&red), 1); - (void) memcpy((void *)(gc->pc + 5), (void *)(&green), 1); - (void) memcpy((void *)(gc->pc + 6), (void *)(&blue), 1); - (void) memcpy((void *)(gc->pc + 7), (void *)(&alpha), 1); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_Color4bv 14 -void -__indirect_glColor4bv(const GLbyte * v) -{ - generic_4_byte( X_GLrop_Color4bv, v ); -} - -#define X_GLrop_Color4dv 15 -void -__indirect_glColor4d(GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 36; - emit_header(gc->pc, X_GLrop_Color4dv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&red), 8); - (void) memcpy((void *)(gc->pc + 12), (void *)(&green), 8); - (void) memcpy((void *)(gc->pc + 20), (void *)(&blue), 8); - (void) memcpy((void *)(gc->pc + 28), (void *)(&alpha), 8); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_Color4dv 15 -void -__indirect_glColor4dv(const GLdouble * v) -{ - generic_32_byte( X_GLrop_Color4dv, v ); -} - -#define X_GLrop_Color4fv 16 -void -__indirect_glColor4f(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 20; - emit_header(gc->pc, X_GLrop_Color4fv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&red), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&green), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(&blue), 4); - (void) memcpy((void *)(gc->pc + 16), (void *)(&alpha), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_Color4fv 16 -void -__indirect_glColor4fv(const GLfloat * v) -{ - generic_16_byte( X_GLrop_Color4fv, v ); -} - -#define X_GLrop_Color4iv 17 -void -__indirect_glColor4i(GLint red, GLint green, GLint blue, GLint alpha) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 20; - emit_header(gc->pc, X_GLrop_Color4iv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&red), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&green), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(&blue), 4); - (void) memcpy((void *)(gc->pc + 16), (void *)(&alpha), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_Color4iv 17 -void -__indirect_glColor4iv(const GLint * v) -{ - generic_16_byte( X_GLrop_Color4iv, v ); -} - -#define X_GLrop_Color4sv 18 -void -__indirect_glColor4s(GLshort red, GLshort green, GLshort blue, GLshort alpha) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12; - emit_header(gc->pc, X_GLrop_Color4sv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&red), 2); - (void) memcpy((void *)(gc->pc + 6), (void *)(&green), 2); - (void) memcpy((void *)(gc->pc + 8), (void *)(&blue), 2); - (void) memcpy((void *)(gc->pc + 10), (void *)(&alpha), 2); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_Color4sv 18 -void -__indirect_glColor4sv(const GLshort * v) -{ - generic_8_byte( X_GLrop_Color4sv, v ); -} - -#define X_GLrop_Color4ubv 19 -void -__indirect_glColor4ub(GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 8; - emit_header(gc->pc, X_GLrop_Color4ubv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&red), 1); - (void) memcpy((void *)(gc->pc + 5), (void *)(&green), 1); - (void) memcpy((void *)(gc->pc + 6), (void *)(&blue), 1); - (void) memcpy((void *)(gc->pc + 7), (void *)(&alpha), 1); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_Color4ubv 19 -void -__indirect_glColor4ubv(const GLubyte * v) -{ - generic_4_byte( X_GLrop_Color4ubv, v ); -} - -#define X_GLrop_Color4uiv 20 -void -__indirect_glColor4ui(GLuint red, GLuint green, GLuint blue, GLuint alpha) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 20; - emit_header(gc->pc, X_GLrop_Color4uiv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&red), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&green), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(&blue), 4); - (void) memcpy((void *)(gc->pc + 16), (void *)(&alpha), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_Color4uiv 20 -void -__indirect_glColor4uiv(const GLuint * v) -{ - generic_16_byte( X_GLrop_Color4uiv, v ); -} - -#define X_GLrop_Color4usv 21 -void -__indirect_glColor4us(GLushort red, GLushort green, GLushort blue, GLushort alpha) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12; - emit_header(gc->pc, X_GLrop_Color4usv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&red), 2); - (void) memcpy((void *)(gc->pc + 6), (void *)(&green), 2); - (void) memcpy((void *)(gc->pc + 8), (void *)(&blue), 2); - (void) memcpy((void *)(gc->pc + 10), (void *)(&alpha), 2); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_Color4usv 21 -void -__indirect_glColor4usv(const GLushort * v) -{ - generic_8_byte( X_GLrop_Color4usv, v ); -} - -#define X_GLrop_EdgeFlagv 22 -void -__indirect_glEdgeFlag(GLboolean flag) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 8; - emit_header(gc->pc, X_GLrop_EdgeFlagv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&flag), 1); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_EdgeFlagv 22 -void -__indirect_glEdgeFlagv(const GLboolean * flag) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 8; - emit_header(gc->pc, X_GLrop_EdgeFlagv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(flag), 1); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_End 23 -void -__indirect_glEnd(void) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 4; - emit_header(gc->pc, X_GLrop_End, cmdlen); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_Indexdv 24 -void -__indirect_glIndexd(GLdouble c) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12; - emit_header(gc->pc, X_GLrop_Indexdv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&c), 8); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_Indexdv 24 -void -__indirect_glIndexdv(const GLdouble * c) -{ - generic_8_byte( X_GLrop_Indexdv, c ); -} - -#define X_GLrop_Indexfv 25 -void -__indirect_glIndexf(GLfloat c) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 8; - emit_header(gc->pc, X_GLrop_Indexfv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&c), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_Indexfv 25 -void -__indirect_glIndexfv(const GLfloat * c) -{ - generic_4_byte( X_GLrop_Indexfv, c ); -} - -#define X_GLrop_Indexiv 26 -void -__indirect_glIndexi(GLint c) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 8; - emit_header(gc->pc, X_GLrop_Indexiv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&c), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_Indexiv 26 -void -__indirect_glIndexiv(const GLint * c) -{ - generic_4_byte( X_GLrop_Indexiv, c ); -} - -#define X_GLrop_Indexsv 27 -void -__indirect_glIndexs(GLshort c) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 8; - emit_header(gc->pc, X_GLrop_Indexsv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&c), 2); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_Indexsv 27 -void -__indirect_glIndexsv(const GLshort * c) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 8; - emit_header(gc->pc, X_GLrop_Indexsv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(c), 2); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_Normal3bv 28 -void -__indirect_glNormal3b(GLbyte nx, GLbyte ny, GLbyte nz) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 8; - emit_header(gc->pc, X_GLrop_Normal3bv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&nx), 1); - (void) memcpy((void *)(gc->pc + 5), (void *)(&ny), 1); - (void) memcpy((void *)(gc->pc + 6), (void *)(&nz), 1); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_Normal3bv 28 -void -__indirect_glNormal3bv(const GLbyte * v) -{ - generic_3_byte( X_GLrop_Normal3bv, v ); -} - -#define X_GLrop_Normal3dv 29 -void -__indirect_glNormal3d(GLdouble nx, GLdouble ny, GLdouble nz) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 28; - emit_header(gc->pc, X_GLrop_Normal3dv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&nx), 8); - (void) memcpy((void *)(gc->pc + 12), (void *)(&ny), 8); - (void) memcpy((void *)(gc->pc + 20), (void *)(&nz), 8); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_Normal3dv 29 -void -__indirect_glNormal3dv(const GLdouble * v) -{ - generic_24_byte( X_GLrop_Normal3dv, v ); -} - -#define X_GLrop_Normal3fv 30 -void -__indirect_glNormal3f(GLfloat nx, GLfloat ny, GLfloat nz) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 16; - emit_header(gc->pc, X_GLrop_Normal3fv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&nx), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&ny), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(&nz), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_Normal3fv 30 -void -__indirect_glNormal3fv(const GLfloat * v) -{ - generic_12_byte( X_GLrop_Normal3fv, v ); -} - -#define X_GLrop_Normal3iv 31 -void -__indirect_glNormal3i(GLint nx, GLint ny, GLint nz) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 16; - emit_header(gc->pc, X_GLrop_Normal3iv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&nx), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&ny), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(&nz), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_Normal3iv 31 -void -__indirect_glNormal3iv(const GLint * v) -{ - generic_12_byte( X_GLrop_Normal3iv, v ); -} - -#define X_GLrop_Normal3sv 32 -void -__indirect_glNormal3s(GLshort nx, GLshort ny, GLshort nz) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12; - emit_header(gc->pc, X_GLrop_Normal3sv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&nx), 2); - (void) memcpy((void *)(gc->pc + 6), (void *)(&ny), 2); - (void) memcpy((void *)(gc->pc + 8), (void *)(&nz), 2); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_Normal3sv 32 -void -__indirect_glNormal3sv(const GLshort * v) -{ - generic_6_byte( X_GLrop_Normal3sv, v ); -} - -#define X_GLrop_RasterPos2dv 33 -void -__indirect_glRasterPos2d(GLdouble x, GLdouble y) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 20; - emit_header(gc->pc, X_GLrop_RasterPos2dv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&x), 8); - (void) memcpy((void *)(gc->pc + 12), (void *)(&y), 8); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_RasterPos2dv 33 -void -__indirect_glRasterPos2dv(const GLdouble * v) -{ - generic_16_byte( X_GLrop_RasterPos2dv, v ); -} - -#define X_GLrop_RasterPos2fv 34 -void -__indirect_glRasterPos2f(GLfloat x, GLfloat y) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12; - emit_header(gc->pc, X_GLrop_RasterPos2fv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&x), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&y), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_RasterPos2fv 34 -void -__indirect_glRasterPos2fv(const GLfloat * v) -{ - generic_8_byte( X_GLrop_RasterPos2fv, v ); -} - -#define X_GLrop_RasterPos2iv 35 -void -__indirect_glRasterPos2i(GLint x, GLint y) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12; - emit_header(gc->pc, X_GLrop_RasterPos2iv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&x), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&y), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_RasterPos2iv 35 -void -__indirect_glRasterPos2iv(const GLint * v) -{ - generic_8_byte( X_GLrop_RasterPos2iv, v ); -} - -#define X_GLrop_RasterPos2sv 36 -void -__indirect_glRasterPos2s(GLshort x, GLshort y) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 8; - emit_header(gc->pc, X_GLrop_RasterPos2sv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&x), 2); - (void) memcpy((void *)(gc->pc + 6), (void *)(&y), 2); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_RasterPos2sv 36 -void -__indirect_glRasterPos2sv(const GLshort * v) -{ - generic_4_byte( X_GLrop_RasterPos2sv, v ); -} - -#define X_GLrop_RasterPos3dv 37 -void -__indirect_glRasterPos3d(GLdouble x, GLdouble y, GLdouble z) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 28; - emit_header(gc->pc, X_GLrop_RasterPos3dv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&x), 8); - (void) memcpy((void *)(gc->pc + 12), (void *)(&y), 8); - (void) memcpy((void *)(gc->pc + 20), (void *)(&z), 8); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_RasterPos3dv 37 -void -__indirect_glRasterPos3dv(const GLdouble * v) -{ - generic_24_byte( X_GLrop_RasterPos3dv, v ); -} - -#define X_GLrop_RasterPos3fv 38 -void -__indirect_glRasterPos3f(GLfloat x, GLfloat y, GLfloat z) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 16; - emit_header(gc->pc, X_GLrop_RasterPos3fv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&x), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&y), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(&z), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_RasterPos3fv 38 -void -__indirect_glRasterPos3fv(const GLfloat * v) -{ - generic_12_byte( X_GLrop_RasterPos3fv, v ); -} - -#define X_GLrop_RasterPos3iv 39 -void -__indirect_glRasterPos3i(GLint x, GLint y, GLint z) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 16; - emit_header(gc->pc, X_GLrop_RasterPos3iv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&x), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&y), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(&z), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_RasterPos3iv 39 -void -__indirect_glRasterPos3iv(const GLint * v) -{ - generic_12_byte( X_GLrop_RasterPos3iv, v ); -} - -#define X_GLrop_RasterPos3sv 40 -void -__indirect_glRasterPos3s(GLshort x, GLshort y, GLshort z) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12; - emit_header(gc->pc, X_GLrop_RasterPos3sv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&x), 2); - (void) memcpy((void *)(gc->pc + 6), (void *)(&y), 2); - (void) memcpy((void *)(gc->pc + 8), (void *)(&z), 2); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_RasterPos3sv 40 -void -__indirect_glRasterPos3sv(const GLshort * v) -{ - generic_6_byte( X_GLrop_RasterPos3sv, v ); -} - -#define X_GLrop_RasterPos4dv 41 -void -__indirect_glRasterPos4d(GLdouble x, GLdouble y, GLdouble z, GLdouble w) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 36; - emit_header(gc->pc, X_GLrop_RasterPos4dv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&x), 8); - (void) memcpy((void *)(gc->pc + 12), (void *)(&y), 8); - (void) memcpy((void *)(gc->pc + 20), (void *)(&z), 8); - (void) memcpy((void *)(gc->pc + 28), (void *)(&w), 8); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_RasterPos4dv 41 -void -__indirect_glRasterPos4dv(const GLdouble * v) -{ - generic_32_byte( X_GLrop_RasterPos4dv, v ); -} - -#define X_GLrop_RasterPos4fv 42 -void -__indirect_glRasterPos4f(GLfloat x, GLfloat y, GLfloat z, GLfloat w) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 20; - emit_header(gc->pc, X_GLrop_RasterPos4fv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&x), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&y), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(&z), 4); - (void) memcpy((void *)(gc->pc + 16), (void *)(&w), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_RasterPos4fv 42 -void -__indirect_glRasterPos4fv(const GLfloat * v) -{ - generic_16_byte( X_GLrop_RasterPos4fv, v ); -} - -#define X_GLrop_RasterPos4iv 43 -void -__indirect_glRasterPos4i(GLint x, GLint y, GLint z, GLint w) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 20; - emit_header(gc->pc, X_GLrop_RasterPos4iv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&x), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&y), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(&z), 4); - (void) memcpy((void *)(gc->pc + 16), (void *)(&w), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_RasterPos4iv 43 -void -__indirect_glRasterPos4iv(const GLint * v) -{ - generic_16_byte( X_GLrop_RasterPos4iv, v ); -} - -#define X_GLrop_RasterPos4sv 44 -void -__indirect_glRasterPos4s(GLshort x, GLshort y, GLshort z, GLshort w) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12; - emit_header(gc->pc, X_GLrop_RasterPos4sv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&x), 2); - (void) memcpy((void *)(gc->pc + 6), (void *)(&y), 2); - (void) memcpy((void *)(gc->pc + 8), (void *)(&z), 2); - (void) memcpy((void *)(gc->pc + 10), (void *)(&w), 2); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_RasterPos4sv 44 -void -__indirect_glRasterPos4sv(const GLshort * v) -{ - generic_8_byte( X_GLrop_RasterPos4sv, v ); -} - -#define X_GLrop_Rectdv 45 -void -__indirect_glRectd(GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 36; - emit_header(gc->pc, X_GLrop_Rectdv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&x1), 8); - (void) memcpy((void *)(gc->pc + 12), (void *)(&y1), 8); - (void) memcpy((void *)(gc->pc + 20), (void *)(&x2), 8); - (void) memcpy((void *)(gc->pc + 28), (void *)(&y2), 8); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_Rectdv 45 -void -__indirect_glRectdv(const GLdouble * v1, const GLdouble * v2) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 36; - emit_header(gc->pc, X_GLrop_Rectdv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(v1), 16); - (void) memcpy((void *)(gc->pc + 20), (void *)(v2), 16); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_Rectfv 46 -void -__indirect_glRectf(GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 20; - emit_header(gc->pc, X_GLrop_Rectfv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&x1), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&y1), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(&x2), 4); - (void) memcpy((void *)(gc->pc + 16), (void *)(&y2), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_Rectfv 46 -void -__indirect_glRectfv(const GLfloat * v1, const GLfloat * v2) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 20; - emit_header(gc->pc, X_GLrop_Rectfv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(v1), 8); - (void) memcpy((void *)(gc->pc + 12), (void *)(v2), 8); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_Rectiv 47 -void -__indirect_glRecti(GLint x1, GLint y1, GLint x2, GLint y2) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 20; - emit_header(gc->pc, X_GLrop_Rectiv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&x1), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&y1), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(&x2), 4); - (void) memcpy((void *)(gc->pc + 16), (void *)(&y2), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_Rectiv 47 -void -__indirect_glRectiv(const GLint * v1, const GLint * v2) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 20; - emit_header(gc->pc, X_GLrop_Rectiv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(v1), 8); - (void) memcpy((void *)(gc->pc + 12), (void *)(v2), 8); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_Rectsv 48 -void -__indirect_glRects(GLshort x1, GLshort y1, GLshort x2, GLshort y2) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12; - emit_header(gc->pc, X_GLrop_Rectsv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&x1), 2); - (void) memcpy((void *)(gc->pc + 6), (void *)(&y1), 2); - (void) memcpy((void *)(gc->pc + 8), (void *)(&x2), 2); - (void) memcpy((void *)(gc->pc + 10), (void *)(&y2), 2); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_Rectsv 48 -void -__indirect_glRectsv(const GLshort * v1, const GLshort * v2) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12; - emit_header(gc->pc, X_GLrop_Rectsv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(v1), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(v2), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_TexCoord1dv 49 -void -__indirect_glTexCoord1d(GLdouble s) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12; - emit_header(gc->pc, X_GLrop_TexCoord1dv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&s), 8); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_TexCoord1dv 49 -void -__indirect_glTexCoord1dv(const GLdouble * v) -{ - generic_8_byte( X_GLrop_TexCoord1dv, v ); -} - -#define X_GLrop_TexCoord1fv 50 -void -__indirect_glTexCoord1f(GLfloat s) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 8; - emit_header(gc->pc, X_GLrop_TexCoord1fv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&s), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_TexCoord1fv 50 -void -__indirect_glTexCoord1fv(const GLfloat * v) -{ - generic_4_byte( X_GLrop_TexCoord1fv, v ); -} - -#define X_GLrop_TexCoord1iv 51 -void -__indirect_glTexCoord1i(GLint s) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 8; - emit_header(gc->pc, X_GLrop_TexCoord1iv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&s), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_TexCoord1iv 51 -void -__indirect_glTexCoord1iv(const GLint * v) -{ - generic_4_byte( X_GLrop_TexCoord1iv, v ); -} - -#define X_GLrop_TexCoord1sv 52 -void -__indirect_glTexCoord1s(GLshort s) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 8; - emit_header(gc->pc, X_GLrop_TexCoord1sv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&s), 2); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_TexCoord1sv 52 -void -__indirect_glTexCoord1sv(const GLshort * v) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 8; - emit_header(gc->pc, X_GLrop_TexCoord1sv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(v), 2); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_TexCoord2dv 53 -void -__indirect_glTexCoord2d(GLdouble s, GLdouble t) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 20; - emit_header(gc->pc, X_GLrop_TexCoord2dv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&s), 8); - (void) memcpy((void *)(gc->pc + 12), (void *)(&t), 8); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_TexCoord2dv 53 -void -__indirect_glTexCoord2dv(const GLdouble * v) -{ - generic_16_byte( X_GLrop_TexCoord2dv, v ); -} - -#define X_GLrop_TexCoord2fv 54 -void -__indirect_glTexCoord2f(GLfloat s, GLfloat t) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12; - emit_header(gc->pc, X_GLrop_TexCoord2fv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&s), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&t), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_TexCoord2fv 54 -void -__indirect_glTexCoord2fv(const GLfloat * v) -{ - generic_8_byte( X_GLrop_TexCoord2fv, v ); -} - -#define X_GLrop_TexCoord2iv 55 -void -__indirect_glTexCoord2i(GLint s, GLint t) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12; - emit_header(gc->pc, X_GLrop_TexCoord2iv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&s), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&t), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_TexCoord2iv 55 -void -__indirect_glTexCoord2iv(const GLint * v) -{ - generic_8_byte( X_GLrop_TexCoord2iv, v ); -} - -#define X_GLrop_TexCoord2sv 56 -void -__indirect_glTexCoord2s(GLshort s, GLshort t) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 8; - emit_header(gc->pc, X_GLrop_TexCoord2sv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&s), 2); - (void) memcpy((void *)(gc->pc + 6), (void *)(&t), 2); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_TexCoord2sv 56 -void -__indirect_glTexCoord2sv(const GLshort * v) -{ - generic_4_byte( X_GLrop_TexCoord2sv, v ); -} - -#define X_GLrop_TexCoord3dv 57 -void -__indirect_glTexCoord3d(GLdouble s, GLdouble t, GLdouble r) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 28; - emit_header(gc->pc, X_GLrop_TexCoord3dv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&s), 8); - (void) memcpy((void *)(gc->pc + 12), (void *)(&t), 8); - (void) memcpy((void *)(gc->pc + 20), (void *)(&r), 8); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_TexCoord3dv 57 -void -__indirect_glTexCoord3dv(const GLdouble * v) -{ - generic_24_byte( X_GLrop_TexCoord3dv, v ); -} - -#define X_GLrop_TexCoord3fv 58 -void -__indirect_glTexCoord3f(GLfloat s, GLfloat t, GLfloat r) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 16; - emit_header(gc->pc, X_GLrop_TexCoord3fv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&s), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&t), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(&r), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_TexCoord3fv 58 -void -__indirect_glTexCoord3fv(const GLfloat * v) -{ - generic_12_byte( X_GLrop_TexCoord3fv, v ); -} - -#define X_GLrop_TexCoord3iv 59 -void -__indirect_glTexCoord3i(GLint s, GLint t, GLint r) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 16; - emit_header(gc->pc, X_GLrop_TexCoord3iv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&s), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&t), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(&r), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_TexCoord3iv 59 -void -__indirect_glTexCoord3iv(const GLint * v) -{ - generic_12_byte( X_GLrop_TexCoord3iv, v ); -} - -#define X_GLrop_TexCoord3sv 60 -void -__indirect_glTexCoord3s(GLshort s, GLshort t, GLshort r) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12; - emit_header(gc->pc, X_GLrop_TexCoord3sv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&s), 2); - (void) memcpy((void *)(gc->pc + 6), (void *)(&t), 2); - (void) memcpy((void *)(gc->pc + 8), (void *)(&r), 2); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_TexCoord3sv 60 -void -__indirect_glTexCoord3sv(const GLshort * v) -{ - generic_6_byte( X_GLrop_TexCoord3sv, v ); -} - -#define X_GLrop_TexCoord4dv 61 -void -__indirect_glTexCoord4d(GLdouble s, GLdouble t, GLdouble r, GLdouble q) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 36; - emit_header(gc->pc, X_GLrop_TexCoord4dv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&s), 8); - (void) memcpy((void *)(gc->pc + 12), (void *)(&t), 8); - (void) memcpy((void *)(gc->pc + 20), (void *)(&r), 8); - (void) memcpy((void *)(gc->pc + 28), (void *)(&q), 8); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_TexCoord4dv 61 -void -__indirect_glTexCoord4dv(const GLdouble * v) -{ - generic_32_byte( X_GLrop_TexCoord4dv, v ); -} - -#define X_GLrop_TexCoord4fv 62 -void -__indirect_glTexCoord4f(GLfloat s, GLfloat t, GLfloat r, GLfloat q) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 20; - emit_header(gc->pc, X_GLrop_TexCoord4fv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&s), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&t), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(&r), 4); - (void) memcpy((void *)(gc->pc + 16), (void *)(&q), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_TexCoord4fv 62 -void -__indirect_glTexCoord4fv(const GLfloat * v) -{ - generic_16_byte( X_GLrop_TexCoord4fv, v ); -} - -#define X_GLrop_TexCoord4iv 63 -void -__indirect_glTexCoord4i(GLint s, GLint t, GLint r, GLint q) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 20; - emit_header(gc->pc, X_GLrop_TexCoord4iv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&s), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&t), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(&r), 4); - (void) memcpy((void *)(gc->pc + 16), (void *)(&q), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_TexCoord4iv 63 -void -__indirect_glTexCoord4iv(const GLint * v) -{ - generic_16_byte( X_GLrop_TexCoord4iv, v ); -} - -#define X_GLrop_TexCoord4sv 64 -void -__indirect_glTexCoord4s(GLshort s, GLshort t, GLshort r, GLshort q) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12; - emit_header(gc->pc, X_GLrop_TexCoord4sv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&s), 2); - (void) memcpy((void *)(gc->pc + 6), (void *)(&t), 2); - (void) memcpy((void *)(gc->pc + 8), (void *)(&r), 2); - (void) memcpy((void *)(gc->pc + 10), (void *)(&q), 2); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_TexCoord4sv 64 -void -__indirect_glTexCoord4sv(const GLshort * v) -{ - generic_8_byte( X_GLrop_TexCoord4sv, v ); -} - -#define X_GLrop_Vertex2dv 65 -void -__indirect_glVertex2d(GLdouble x, GLdouble y) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 20; - emit_header(gc->pc, X_GLrop_Vertex2dv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&x), 8); - (void) memcpy((void *)(gc->pc + 12), (void *)(&y), 8); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_Vertex2dv 65 -void -__indirect_glVertex2dv(const GLdouble * v) -{ - generic_16_byte( X_GLrop_Vertex2dv, v ); -} - -#define X_GLrop_Vertex2fv 66 -void -__indirect_glVertex2f(GLfloat x, GLfloat y) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12; - emit_header(gc->pc, X_GLrop_Vertex2fv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&x), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&y), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_Vertex2fv 66 -void -__indirect_glVertex2fv(const GLfloat * v) -{ - generic_8_byte( X_GLrop_Vertex2fv, v ); -} - -#define X_GLrop_Vertex2iv 67 -void -__indirect_glVertex2i(GLint x, GLint y) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12; - emit_header(gc->pc, X_GLrop_Vertex2iv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&x), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&y), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_Vertex2iv 67 -void -__indirect_glVertex2iv(const GLint * v) -{ - generic_8_byte( X_GLrop_Vertex2iv, v ); -} - -#define X_GLrop_Vertex2sv 68 -void -__indirect_glVertex2s(GLshort x, GLshort y) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 8; - emit_header(gc->pc, X_GLrop_Vertex2sv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&x), 2); - (void) memcpy((void *)(gc->pc + 6), (void *)(&y), 2); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_Vertex2sv 68 -void -__indirect_glVertex2sv(const GLshort * v) -{ - generic_4_byte( X_GLrop_Vertex2sv, v ); -} - -#define X_GLrop_Vertex3dv 69 -void -__indirect_glVertex3d(GLdouble x, GLdouble y, GLdouble z) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 28; - emit_header(gc->pc, X_GLrop_Vertex3dv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&x), 8); - (void) memcpy((void *)(gc->pc + 12), (void *)(&y), 8); - (void) memcpy((void *)(gc->pc + 20), (void *)(&z), 8); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_Vertex3dv 69 -void -__indirect_glVertex3dv(const GLdouble * v) -{ - generic_24_byte( X_GLrop_Vertex3dv, v ); -} - -#define X_GLrop_Vertex3fv 70 -void -__indirect_glVertex3f(GLfloat x, GLfloat y, GLfloat z) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 16; - emit_header(gc->pc, X_GLrop_Vertex3fv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&x), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&y), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(&z), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_Vertex3fv 70 -void -__indirect_glVertex3fv(const GLfloat * v) -{ - generic_12_byte( X_GLrop_Vertex3fv, v ); -} - -#define X_GLrop_Vertex3iv 71 -void -__indirect_glVertex3i(GLint x, GLint y, GLint z) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 16; - emit_header(gc->pc, X_GLrop_Vertex3iv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&x), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&y), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(&z), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_Vertex3iv 71 -void -__indirect_glVertex3iv(const GLint * v) -{ - generic_12_byte( X_GLrop_Vertex3iv, v ); -} - -#define X_GLrop_Vertex3sv 72 -void -__indirect_glVertex3s(GLshort x, GLshort y, GLshort z) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12; - emit_header(gc->pc, X_GLrop_Vertex3sv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&x), 2); - (void) memcpy((void *)(gc->pc + 6), (void *)(&y), 2); - (void) memcpy((void *)(gc->pc + 8), (void *)(&z), 2); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_Vertex3sv 72 -void -__indirect_glVertex3sv(const GLshort * v) -{ - generic_6_byte( X_GLrop_Vertex3sv, v ); -} - -#define X_GLrop_Vertex4dv 73 -void -__indirect_glVertex4d(GLdouble x, GLdouble y, GLdouble z, GLdouble w) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 36; - emit_header(gc->pc, X_GLrop_Vertex4dv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&x), 8); - (void) memcpy((void *)(gc->pc + 12), (void *)(&y), 8); - (void) memcpy((void *)(gc->pc + 20), (void *)(&z), 8); - (void) memcpy((void *)(gc->pc + 28), (void *)(&w), 8); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_Vertex4dv 73 -void -__indirect_glVertex4dv(const GLdouble * v) -{ - generic_32_byte( X_GLrop_Vertex4dv, v ); -} - -#define X_GLrop_Vertex4fv 74 -void -__indirect_glVertex4f(GLfloat x, GLfloat y, GLfloat z, GLfloat w) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 20; - emit_header(gc->pc, X_GLrop_Vertex4fv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&x), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&y), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(&z), 4); - (void) memcpy((void *)(gc->pc + 16), (void *)(&w), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_Vertex4fv 74 -void -__indirect_glVertex4fv(const GLfloat * v) -{ - generic_16_byte( X_GLrop_Vertex4fv, v ); -} - -#define X_GLrop_Vertex4iv 75 -void -__indirect_glVertex4i(GLint x, GLint y, GLint z, GLint w) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 20; - emit_header(gc->pc, X_GLrop_Vertex4iv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&x), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&y), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(&z), 4); - (void) memcpy((void *)(gc->pc + 16), (void *)(&w), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_Vertex4iv 75 -void -__indirect_glVertex4iv(const GLint * v) -{ - generic_16_byte( X_GLrop_Vertex4iv, v ); -} - -#define X_GLrop_Vertex4sv 76 -void -__indirect_glVertex4s(GLshort x, GLshort y, GLshort z, GLshort w) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12; - emit_header(gc->pc, X_GLrop_Vertex4sv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&x), 2); - (void) memcpy((void *)(gc->pc + 6), (void *)(&y), 2); - (void) memcpy((void *)(gc->pc + 8), (void *)(&z), 2); - (void) memcpy((void *)(gc->pc + 10), (void *)(&w), 2); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_Vertex4sv 76 -void -__indirect_glVertex4sv(const GLshort * v) -{ - generic_8_byte( X_GLrop_Vertex4sv, v ); -} - -#define X_GLrop_ClipPlane 77 -void -__indirect_glClipPlane(GLenum plane, const GLdouble * equation) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 40; - emit_header(gc->pc, X_GLrop_ClipPlane, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(equation), 32); - (void) memcpy((void *)(gc->pc + 36), (void *)(&plane), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_ColorMaterial 78 -void -__indirect_glColorMaterial(GLenum face, GLenum mode) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12; - emit_header(gc->pc, X_GLrop_ColorMaterial, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&face), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&mode), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_CullFace 79 -void -__indirect_glCullFace(GLenum mode) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 8; - emit_header(gc->pc, X_GLrop_CullFace, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&mode), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_Fogf 80 -void -__indirect_glFogf(GLenum pname, GLfloat param) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12; - emit_header(gc->pc, X_GLrop_Fogf, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&pname), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(¶m), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_Fogfv 81 -void -__indirect_glFogfv(GLenum pname, const GLfloat * params) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint compsize = __glFogfv_size(pname); - const GLuint cmdlen = 8 + __GLX_PAD((compsize * 4)); - emit_header(gc->pc, X_GLrop_Fogfv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&pname), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(params), (compsize * 4)); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_Fogi 82 -void -__indirect_glFogi(GLenum pname, GLint param) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12; - emit_header(gc->pc, X_GLrop_Fogi, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&pname), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(¶m), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_Fogiv 83 -void -__indirect_glFogiv(GLenum pname, const GLint * params) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint compsize = __glFogiv_size(pname); - const GLuint cmdlen = 8 + __GLX_PAD((compsize * 4)); - emit_header(gc->pc, X_GLrop_Fogiv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&pname), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(params), (compsize * 4)); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_FrontFace 84 -void -__indirect_glFrontFace(GLenum mode) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 8; - emit_header(gc->pc, X_GLrop_FrontFace, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&mode), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_Hint 85 -void -__indirect_glHint(GLenum target, GLenum mode) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12; - emit_header(gc->pc, X_GLrop_Hint, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&target), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&mode), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_Lightf 86 -void -__indirect_glLightf(GLenum light, GLenum pname, GLfloat param) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 16; - emit_header(gc->pc, X_GLrop_Lightf, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&light), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&pname), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(¶m), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_Lightfv 87 -void -__indirect_glLightfv(GLenum light, GLenum pname, const GLfloat * params) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint compsize = __glLightfv_size(pname); - const GLuint cmdlen = 12 + __GLX_PAD((compsize * 4)); - emit_header(gc->pc, X_GLrop_Lightfv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&light), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&pname), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(params), (compsize * 4)); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_Lighti 88 -void -__indirect_glLighti(GLenum light, GLenum pname, GLint param) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 16; - emit_header(gc->pc, X_GLrop_Lighti, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&light), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&pname), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(¶m), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_Lightiv 89 -void -__indirect_glLightiv(GLenum light, GLenum pname, const GLint * params) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint compsize = __glLightiv_size(pname); - const GLuint cmdlen = 12 + __GLX_PAD((compsize * 4)); - emit_header(gc->pc, X_GLrop_Lightiv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&light), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&pname), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(params), (compsize * 4)); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_LightModelf 90 -void -__indirect_glLightModelf(GLenum pname, GLfloat param) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12; - emit_header(gc->pc, X_GLrop_LightModelf, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&pname), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(¶m), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_LightModelfv 91 -void -__indirect_glLightModelfv(GLenum pname, const GLfloat * params) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint compsize = __glLightModelfv_size(pname); - const GLuint cmdlen = 8 + __GLX_PAD((compsize * 4)); - emit_header(gc->pc, X_GLrop_LightModelfv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&pname), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(params), (compsize * 4)); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_LightModeli 92 -void -__indirect_glLightModeli(GLenum pname, GLint param) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12; - emit_header(gc->pc, X_GLrop_LightModeli, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&pname), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(¶m), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_LightModeliv 93 -void -__indirect_glLightModeliv(GLenum pname, const GLint * params) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint compsize = __glLightModeliv_size(pname); - const GLuint cmdlen = 8 + __GLX_PAD((compsize * 4)); - emit_header(gc->pc, X_GLrop_LightModeliv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&pname), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(params), (compsize * 4)); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_LineStipple 94 -void -__indirect_glLineStipple(GLint factor, GLushort pattern) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12; - emit_header(gc->pc, X_GLrop_LineStipple, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&factor), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&pattern), 2); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_LineWidth 95 -void -__indirect_glLineWidth(GLfloat width) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 8; - emit_header(gc->pc, X_GLrop_LineWidth, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&width), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_Materialf 96 -void -__indirect_glMaterialf(GLenum face, GLenum pname, GLfloat param) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 16; - emit_header(gc->pc, X_GLrop_Materialf, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&face), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&pname), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(¶m), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_Materialfv 97 -void -__indirect_glMaterialfv(GLenum face, GLenum pname, const GLfloat * params) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint compsize = __glMaterialfv_size(pname); - const GLuint cmdlen = 12 + __GLX_PAD((compsize * 4)); - emit_header(gc->pc, X_GLrop_Materialfv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&face), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&pname), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(params), (compsize * 4)); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_Materiali 98 -void -__indirect_glMateriali(GLenum face, GLenum pname, GLint param) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 16; - emit_header(gc->pc, X_GLrop_Materiali, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&face), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&pname), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(¶m), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_Materialiv 99 -void -__indirect_glMaterialiv(GLenum face, GLenum pname, const GLint * params) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint compsize = __glMaterialiv_size(pname); - const GLuint cmdlen = 12 + __GLX_PAD((compsize * 4)); - emit_header(gc->pc, X_GLrop_Materialiv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&face), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&pname), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(params), (compsize * 4)); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_PointSize 100 -void -__indirect_glPointSize(GLfloat size) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 8; - emit_header(gc->pc, X_GLrop_PointSize, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&size), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_PolygonMode 101 -void -__indirect_glPolygonMode(GLenum face, GLenum mode) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12; - emit_header(gc->pc, X_GLrop_PolygonMode, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&face), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&mode), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_PolygonStipple 102 -void -__indirect_glPolygonStipple(const GLubyte * mask) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint compsize = (mask != NULL) ? __glImageSize(32, 32, 1, GL_COLOR_INDEX, GL_BITMAP, 0) : 0; - const GLuint cmdlen = 24 + __GLX_PAD(compsize); - emit_header(gc->pc, X_GLrop_PolygonStipple, cmdlen); - if (compsize > 0) { - (*gc->fillImage)(gc, 2, 32, 32, 1, GL_COLOR_INDEX, GL_BITMAP, mask, gc->pc + 24, gc->pc + 4); - } - else { - (void) memcpy( gc->pc + 4, default_pixel_store_2D, default_pixel_store_2D_size ); - } - gc->pc += cmdlen; - if (gc->pc > gc->limit) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_Scissor 103 -void -__indirect_glScissor(GLint x, GLint y, GLsizei width, GLsizei height) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 20; - emit_header(gc->pc, X_GLrop_Scissor, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&x), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&y), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(&width), 4); - (void) memcpy((void *)(gc->pc + 16), (void *)(&height), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_ShadeModel 104 -void -__indirect_glShadeModel(GLenum mode) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 8; - emit_header(gc->pc, X_GLrop_ShadeModel, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&mode), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_TexParameterf 105 -void -__indirect_glTexParameterf(GLenum target, GLenum pname, GLfloat param) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 16; - emit_header(gc->pc, X_GLrop_TexParameterf, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&target), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&pname), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(¶m), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_TexParameterfv 106 -void -__indirect_glTexParameterfv(GLenum target, GLenum pname, const GLfloat * params) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint compsize = __glTexParameterfv_size(pname); - const GLuint cmdlen = 12 + __GLX_PAD((compsize * 4)); - emit_header(gc->pc, X_GLrop_TexParameterfv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&target), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&pname), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(params), (compsize * 4)); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_TexParameteri 107 -void -__indirect_glTexParameteri(GLenum target, GLenum pname, GLint param) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 16; - emit_header(gc->pc, X_GLrop_TexParameteri, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&target), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&pname), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(¶m), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_TexParameteriv 108 -void -__indirect_glTexParameteriv(GLenum target, GLenum pname, const GLint * params) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint compsize = __glTexParameteriv_size(pname); - const GLuint cmdlen = 12 + __GLX_PAD((compsize * 4)); - emit_header(gc->pc, X_GLrop_TexParameteriv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&target), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&pname), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(params), (compsize * 4)); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -static void -__glx_TexImage_1D2D( unsigned opcode, unsigned dim, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid * pixels ) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint compsize = __glImageSize(width, height, 1, format, type, target); - const GLuint cmdlen = 56 + __GLX_PAD(compsize); - if (__builtin_expect(gc->currentDpy != NULL, 1)) { - if (cmdlen <= gc->maxSmallRenderCommandSize) { - if ( (gc->pc + cmdlen) > gc->bufEnd ) { - (void) __glXFlushRenderBuffer(gc, gc->pc); - } - emit_header(gc->pc, opcode, cmdlen); - (void) memcpy((void *)(gc->pc + 24), (void *)(&target), 4); - (void) memcpy((void *)(gc->pc + 28), (void *)(&level), 4); - (void) memcpy((void *)(gc->pc + 32), (void *)(&internalformat), 4); - (void) memcpy((void *)(gc->pc + 36), (void *)(&width), 4); - (void) memcpy((void *)(gc->pc + 40), (void *)(&height), 4); - (void) memcpy((void *)(gc->pc + 44), (void *)(&border), 4); - (void) memcpy((void *)(gc->pc + 48), (void *)(&format), 4); - (void) memcpy((void *)(gc->pc + 52), (void *)(&type), 4); - if ((compsize > 0) && (pixels != NULL)) { - (*gc->fillImage)(gc, dim, width, height, 1, format, type, pixels, gc->pc + 56, gc->pc + 4); - } - else { - (void) memcpy( gc->pc + 4, default_pixel_store_2D, default_pixel_store_2D_size ); - } - gc->pc += cmdlen; - if (gc->pc > gc->limit) { (void) __glXFlushRenderBuffer(gc, gc->pc); } - } - else { - const GLint op = opcode; - const GLuint cmdlenLarge = cmdlen + 4; - GLubyte * const pc = __glXFlushRenderBuffer(gc, gc->pc); - (void) memcpy((void *)(pc + 0), (void *)(&cmdlenLarge), 4); - (void) memcpy((void *)(pc + 4), (void *)(&op), 4); - (void) memcpy((void *)(pc + 28), (void *)(&target), 4); - (void) memcpy((void *)(pc + 32), (void *)(&level), 4); - (void) memcpy((void *)(pc + 36), (void *)(&internalformat), 4); - (void) memcpy((void *)(pc + 40), (void *)(&width), 4); - (void) memcpy((void *)(pc + 44), (void *)(&height), 4); - (void) memcpy((void *)(pc + 48), (void *)(&border), 4); - (void) memcpy((void *)(pc + 52), (void *)(&format), 4); - (void) memcpy((void *)(pc + 56), (void *)(&type), 4); - __glXSendLargeImage(gc, compsize, dim, width, height, 1, format, type, pixels, pc + 60, pc + 8); - } - } -} - -#define X_GLrop_TexImage1D 109 -void -__indirect_glTexImage1D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid * pixels) -{ - __glx_TexImage_1D2D(X_GLrop_TexImage1D, 1, target, level, internalformat, width, 1, border, format, type, pixels ); -} - -#define X_GLrop_TexImage2D 110 -void -__indirect_glTexImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid * pixels) -{ - __glx_TexImage_1D2D(X_GLrop_TexImage2D, 2, target, level, internalformat, width, height, border, format, type, pixels ); -} - -#define X_GLrop_TexEnvf 111 -void -__indirect_glTexEnvf(GLenum target, GLenum pname, GLfloat param) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 16; - emit_header(gc->pc, X_GLrop_TexEnvf, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&target), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&pname), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(¶m), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_TexEnvfv 112 -void -__indirect_glTexEnvfv(GLenum target, GLenum pname, const GLfloat * params) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint compsize = __glTexEnvfv_size(pname); - const GLuint cmdlen = 12 + __GLX_PAD((compsize * 4)); - emit_header(gc->pc, X_GLrop_TexEnvfv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&target), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&pname), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(params), (compsize * 4)); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_TexEnvi 113 -void -__indirect_glTexEnvi(GLenum target, GLenum pname, GLint param) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 16; - emit_header(gc->pc, X_GLrop_TexEnvi, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&target), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&pname), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(¶m), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_TexEnviv 114 -void -__indirect_glTexEnviv(GLenum target, GLenum pname, const GLint * params) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint compsize = __glTexEnviv_size(pname); - const GLuint cmdlen = 12 + __GLX_PAD((compsize * 4)); - emit_header(gc->pc, X_GLrop_TexEnviv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&target), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&pname), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(params), (compsize * 4)); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_TexGend 115 -void -__indirect_glTexGend(GLenum coord, GLenum pname, GLdouble param) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 20; - emit_header(gc->pc, X_GLrop_TexGend, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(¶m), 8); - (void) memcpy((void *)(gc->pc + 12), (void *)(&coord), 4); - (void) memcpy((void *)(gc->pc + 16), (void *)(&pname), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_TexGendv 116 -void -__indirect_glTexGendv(GLenum coord, GLenum pname, const GLdouble * params) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint compsize = __glTexGendv_size(pname); - const GLuint cmdlen = 12 + __GLX_PAD((compsize * 8)); - emit_header(gc->pc, X_GLrop_TexGendv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&coord), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&pname), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(params), (compsize * 8)); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_TexGenf 117 -void -__indirect_glTexGenf(GLenum coord, GLenum pname, GLfloat param) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 16; - emit_header(gc->pc, X_GLrop_TexGenf, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&coord), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&pname), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(¶m), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_TexGenfv 118 -void -__indirect_glTexGenfv(GLenum coord, GLenum pname, const GLfloat * params) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint compsize = __glTexGenfv_size(pname); - const GLuint cmdlen = 12 + __GLX_PAD((compsize * 4)); - emit_header(gc->pc, X_GLrop_TexGenfv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&coord), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&pname), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(params), (compsize * 4)); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_TexGeni 119 -void -__indirect_glTexGeni(GLenum coord, GLenum pname, GLint param) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 16; - emit_header(gc->pc, X_GLrop_TexGeni, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&coord), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&pname), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(¶m), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_TexGeniv 120 -void -__indirect_glTexGeniv(GLenum coord, GLenum pname, const GLint * params) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint compsize = __glTexGeniv_size(pname); - const GLuint cmdlen = 12 + __GLX_PAD((compsize * 4)); - emit_header(gc->pc, X_GLrop_TexGeniv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&coord), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&pname), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(params), (compsize * 4)); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_InitNames 121 -void -__indirect_glInitNames(void) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 4; - emit_header(gc->pc, X_GLrop_InitNames, cmdlen); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_LoadName 122 -void -__indirect_glLoadName(GLuint name) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 8; - emit_header(gc->pc, X_GLrop_LoadName, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&name), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_PassThrough 123 -void -__indirect_glPassThrough(GLfloat token) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 8; - emit_header(gc->pc, X_GLrop_PassThrough, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&token), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_PopName 124 -void -__indirect_glPopName(void) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 4; - emit_header(gc->pc, X_GLrop_PopName, cmdlen); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_PushName 125 -void -__indirect_glPushName(GLuint name) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 8; - emit_header(gc->pc, X_GLrop_PushName, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&name), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_DrawBuffer 126 -void -__indirect_glDrawBuffer(GLenum mode) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 8; - emit_header(gc->pc, X_GLrop_DrawBuffer, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&mode), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_Clear 127 -void -__indirect_glClear(GLbitfield mask) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 8; - emit_header(gc->pc, X_GLrop_Clear, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&mask), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_ClearAccum 128 -void -__indirect_glClearAccum(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 20; - emit_header(gc->pc, X_GLrop_ClearAccum, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&red), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&green), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(&blue), 4); - (void) memcpy((void *)(gc->pc + 16), (void *)(&alpha), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_ClearIndex 129 -void -__indirect_glClearIndex(GLfloat c) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 8; - emit_header(gc->pc, X_GLrop_ClearIndex, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&c), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_ClearColor 130 -void -__indirect_glClearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 20; - emit_header(gc->pc, X_GLrop_ClearColor, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&red), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&green), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(&blue), 4); - (void) memcpy((void *)(gc->pc + 16), (void *)(&alpha), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_ClearStencil 131 -void -__indirect_glClearStencil(GLint s) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 8; - emit_header(gc->pc, X_GLrop_ClearStencil, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&s), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_ClearDepth 132 -void -__indirect_glClearDepth(GLclampd depth) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12; - emit_header(gc->pc, X_GLrop_ClearDepth, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&depth), 8); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_StencilMask 133 -void -__indirect_glStencilMask(GLuint mask) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 8; - emit_header(gc->pc, X_GLrop_StencilMask, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&mask), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_ColorMask 134 -void -__indirect_glColorMask(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 8; - emit_header(gc->pc, X_GLrop_ColorMask, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&red), 1); - (void) memcpy((void *)(gc->pc + 5), (void *)(&green), 1); - (void) memcpy((void *)(gc->pc + 6), (void *)(&blue), 1); - (void) memcpy((void *)(gc->pc + 7), (void *)(&alpha), 1); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_DepthMask 135 -void -__indirect_glDepthMask(GLboolean flag) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 8; - emit_header(gc->pc, X_GLrop_DepthMask, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&flag), 1); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_IndexMask 136 -void -__indirect_glIndexMask(GLuint mask) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 8; - emit_header(gc->pc, X_GLrop_IndexMask, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&mask), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_Accum 137 -void -__indirect_glAccum(GLenum op, GLfloat value) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12; - emit_header(gc->pc, X_GLrop_Accum, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&op), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&value), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_PopAttrib 141 -void -__indirect_glPopAttrib(void) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 4; - emit_header(gc->pc, X_GLrop_PopAttrib, cmdlen); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_PushAttrib 142 -void -__indirect_glPushAttrib(GLbitfield mask) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 8; - emit_header(gc->pc, X_GLrop_PushAttrib, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&mask), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_MapGrid1d 147 -void -__indirect_glMapGrid1d(GLint un, GLdouble u1, GLdouble u2) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 24; - emit_header(gc->pc, X_GLrop_MapGrid1d, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&u1), 8); - (void) memcpy((void *)(gc->pc + 12), (void *)(&u2), 8); - (void) memcpy((void *)(gc->pc + 20), (void *)(&un), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_MapGrid1f 148 -void -__indirect_glMapGrid1f(GLint un, GLfloat u1, GLfloat u2) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 16; - emit_header(gc->pc, X_GLrop_MapGrid1f, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&un), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&u1), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(&u2), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_MapGrid2d 149 -void -__indirect_glMapGrid2d(GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 44; - emit_header(gc->pc, X_GLrop_MapGrid2d, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&u1), 8); - (void) memcpy((void *)(gc->pc + 12), (void *)(&u2), 8); - (void) memcpy((void *)(gc->pc + 20), (void *)(&v1), 8); - (void) memcpy((void *)(gc->pc + 28), (void *)(&v2), 8); - (void) memcpy((void *)(gc->pc + 36), (void *)(&un), 4); - (void) memcpy((void *)(gc->pc + 40), (void *)(&vn), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_MapGrid2f 150 -void -__indirect_glMapGrid2f(GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 28; - emit_header(gc->pc, X_GLrop_MapGrid2f, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&un), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&u1), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(&u2), 4); - (void) memcpy((void *)(gc->pc + 16), (void *)(&vn), 4); - (void) memcpy((void *)(gc->pc + 20), (void *)(&v1), 4); - (void) memcpy((void *)(gc->pc + 24), (void *)(&v2), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_EvalCoord1dv 151 -void -__indirect_glEvalCoord1d(GLdouble u) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12; - emit_header(gc->pc, X_GLrop_EvalCoord1dv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&u), 8); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_EvalCoord1dv 151 -void -__indirect_glEvalCoord1dv(const GLdouble * u) -{ - generic_8_byte( X_GLrop_EvalCoord1dv, u ); -} - -#define X_GLrop_EvalCoord1fv 152 -void -__indirect_glEvalCoord1f(GLfloat u) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 8; - emit_header(gc->pc, X_GLrop_EvalCoord1fv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&u), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_EvalCoord1fv 152 -void -__indirect_glEvalCoord1fv(const GLfloat * u) -{ - generic_4_byte( X_GLrop_EvalCoord1fv, u ); -} - -#define X_GLrop_EvalCoord2dv 153 -void -__indirect_glEvalCoord2d(GLdouble u, GLdouble v) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 20; - emit_header(gc->pc, X_GLrop_EvalCoord2dv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&u), 8); - (void) memcpy((void *)(gc->pc + 12), (void *)(&v), 8); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_EvalCoord2dv 153 -void -__indirect_glEvalCoord2dv(const GLdouble * u) -{ - generic_16_byte( X_GLrop_EvalCoord2dv, u ); -} - -#define X_GLrop_EvalCoord2fv 154 -void -__indirect_glEvalCoord2f(GLfloat u, GLfloat v) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12; - emit_header(gc->pc, X_GLrop_EvalCoord2fv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&u), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&v), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_EvalCoord2fv 154 -void -__indirect_glEvalCoord2fv(const GLfloat * u) -{ - generic_8_byte( X_GLrop_EvalCoord2fv, u ); -} - -#define X_GLrop_EvalMesh1 155 -void -__indirect_glEvalMesh1(GLenum mode, GLint i1, GLint i2) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 16; - emit_header(gc->pc, X_GLrop_EvalMesh1, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&mode), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&i1), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(&i2), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_EvalPoint1 156 -void -__indirect_glEvalPoint1(GLint i) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 8; - emit_header(gc->pc, X_GLrop_EvalPoint1, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&i), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_EvalMesh2 157 -void -__indirect_glEvalMesh2(GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 24; - emit_header(gc->pc, X_GLrop_EvalMesh2, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&mode), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&i1), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(&i2), 4); - (void) memcpy((void *)(gc->pc + 16), (void *)(&j1), 4); - (void) memcpy((void *)(gc->pc + 20), (void *)(&j2), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_EvalPoint2 158 -void -__indirect_glEvalPoint2(GLint i, GLint j) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12; - emit_header(gc->pc, X_GLrop_EvalPoint2, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&i), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&j), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_AlphaFunc 159 -void -__indirect_glAlphaFunc(GLenum func, GLclampf ref) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12; - emit_header(gc->pc, X_GLrop_AlphaFunc, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&func), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&ref), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_BlendFunc 160 -void -__indirect_glBlendFunc(GLenum sfactor, GLenum dfactor) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12; - emit_header(gc->pc, X_GLrop_BlendFunc, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&sfactor), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&dfactor), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_LogicOp 161 -void -__indirect_glLogicOp(GLenum opcode) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 8; - emit_header(gc->pc, X_GLrop_LogicOp, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&opcode), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_StencilFunc 162 -void -__indirect_glStencilFunc(GLenum func, GLint ref, GLuint mask) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 16; - emit_header(gc->pc, X_GLrop_StencilFunc, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&func), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&ref), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(&mask), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_StencilOp 163 -void -__indirect_glStencilOp(GLenum fail, GLenum zfail, GLenum zpass) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 16; - emit_header(gc->pc, X_GLrop_StencilOp, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&fail), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&zfail), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(&zpass), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_DepthFunc 164 -void -__indirect_glDepthFunc(GLenum func) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 8; - emit_header(gc->pc, X_GLrop_DepthFunc, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&func), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_PixelZoom 165 -void -__indirect_glPixelZoom(GLfloat xfactor, GLfloat yfactor) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12; - emit_header(gc->pc, X_GLrop_PixelZoom, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&xfactor), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&yfactor), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_PixelTransferf 166 -void -__indirect_glPixelTransferf(GLenum pname, GLfloat param) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12; - emit_header(gc->pc, X_GLrop_PixelTransferf, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&pname), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(¶m), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_PixelTransferi 167 -void -__indirect_glPixelTransferi(GLenum pname, GLint param) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12; - emit_header(gc->pc, X_GLrop_PixelTransferi, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&pname), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(¶m), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_PixelMapfv 168 -void -__indirect_glPixelMapfv(GLenum map, GLsizei mapsize, const GLfloat * values) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12 + __GLX_PAD((mapsize * 4)); - if (__builtin_expect((mapsize >= 0) && (gc->currentDpy != NULL), 1)) { - if (cmdlen <= gc->maxSmallRenderCommandSize) { - if ( (gc->pc + cmdlen) > gc->bufEnd ) { - (void) __glXFlushRenderBuffer(gc, gc->pc); - } - emit_header(gc->pc, X_GLrop_PixelMapfv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&map), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&mapsize), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(values), (mapsize * 4)); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } - } - else { - const GLint op = X_GLrop_PixelMapfv; - const GLuint cmdlenLarge = cmdlen + 4; - GLubyte * const pc = __glXFlushRenderBuffer(gc, gc->pc); - (void) memcpy((void *)(pc + 0), (void *)(&cmdlenLarge), 4); - (void) memcpy((void *)(pc + 4), (void *)(&op), 4); - (void) memcpy((void *)(pc + 8), (void *)(&map), 4); - (void) memcpy((void *)(pc + 12), (void *)(&mapsize), 4); - __glXSendLargeCommand(gc, pc, 16, values, (mapsize * 4)); - } - } -} - -#define X_GLrop_PixelMapuiv 169 -void -__indirect_glPixelMapuiv(GLenum map, GLsizei mapsize, const GLuint * values) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12 + __GLX_PAD((mapsize * 4)); - if (__builtin_expect((mapsize >= 0) && (gc->currentDpy != NULL), 1)) { - if (cmdlen <= gc->maxSmallRenderCommandSize) { - if ( (gc->pc + cmdlen) > gc->bufEnd ) { - (void) __glXFlushRenderBuffer(gc, gc->pc); - } - emit_header(gc->pc, X_GLrop_PixelMapuiv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&map), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&mapsize), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(values), (mapsize * 4)); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } - } - else { - const GLint op = X_GLrop_PixelMapuiv; - const GLuint cmdlenLarge = cmdlen + 4; - GLubyte * const pc = __glXFlushRenderBuffer(gc, gc->pc); - (void) memcpy((void *)(pc + 0), (void *)(&cmdlenLarge), 4); - (void) memcpy((void *)(pc + 4), (void *)(&op), 4); - (void) memcpy((void *)(pc + 8), (void *)(&map), 4); - (void) memcpy((void *)(pc + 12), (void *)(&mapsize), 4); - __glXSendLargeCommand(gc, pc, 16, values, (mapsize * 4)); - } - } -} - -#define X_GLrop_PixelMapusv 170 -void -__indirect_glPixelMapusv(GLenum map, GLsizei mapsize, const GLushort * values) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12 + __GLX_PAD((mapsize * 2)); - if (__builtin_expect((mapsize >= 0) && (gc->currentDpy != NULL), 1)) { - if (cmdlen <= gc->maxSmallRenderCommandSize) { - if ( (gc->pc + cmdlen) > gc->bufEnd ) { - (void) __glXFlushRenderBuffer(gc, gc->pc); - } - emit_header(gc->pc, X_GLrop_PixelMapusv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&map), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&mapsize), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(values), (mapsize * 2)); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } - } - else { - const GLint op = X_GLrop_PixelMapusv; - const GLuint cmdlenLarge = cmdlen + 4; - GLubyte * const pc = __glXFlushRenderBuffer(gc, gc->pc); - (void) memcpy((void *)(pc + 0), (void *)(&cmdlenLarge), 4); - (void) memcpy((void *)(pc + 4), (void *)(&op), 4); - (void) memcpy((void *)(pc + 8), (void *)(&map), 4); - (void) memcpy((void *)(pc + 12), (void *)(&mapsize), 4); - __glXSendLargeCommand(gc, pc, 16, values, (mapsize * 2)); - } - } -} - -#define X_GLrop_ReadBuffer 171 -void -__indirect_glReadBuffer(GLenum mode) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 8; - emit_header(gc->pc, X_GLrop_ReadBuffer, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&mode), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_CopyPixels 172 -void -__indirect_glCopyPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum type) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 24; - emit_header(gc->pc, X_GLrop_CopyPixels, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&x), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&y), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(&width), 4); - (void) memcpy((void *)(gc->pc + 16), (void *)(&height), 4); - (void) memcpy((void *)(gc->pc + 20), (void *)(&type), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLsop_ReadPixels 111 -void -__indirect_glReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid * pixels) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const __GLXattribute * const state = gc->client_state_private; - Display * const dpy = gc->currentDpy; - const GLuint cmdlen = 28; - if (__builtin_expect(dpy != NULL, 1)) { -#ifdef USE_XCB - XCBConnection *c = XCBConnectionOfDisplay(dpy); - (void) __glXFlushRenderBuffer(gc, gc->pc); - XCBGlxReadPixelsRep *reply = XCBGlxReadPixelsReply(c, XCBGlxReadPixels(c, gc->currentContextTag, x, y, width, height, format, type, state->storePack.swapEndian, 0), NULL); - (void)memcpy(pixels, XCBGlxReadPixelsData(reply), XCBGlxReadPixelsDataLength(reply) * sizeof(GLvoid)); - free(reply); -#else - GLubyte const * pc = __glXSetupSingleRequest(gc, X_GLsop_ReadPixels, cmdlen); - (void) memcpy((void *)(pc + 0), (void *)(&x), 4); - (void) memcpy((void *)(pc + 4), (void *)(&y), 4); - (void) memcpy((void *)(pc + 8), (void *)(&width), 4); - (void) memcpy((void *)(pc + 12), (void *)(&height), 4); - (void) memcpy((void *)(pc + 16), (void *)(&format), 4); - (void) memcpy((void *)(pc + 20), (void *)(&type), 4); - *(int32_t *)(pc + 24) = 0; - * (int8_t *)(pc + 24) = state->storePack.swapEndian; - __glXReadPixelReply(dpy, gc, 2, width, height, 1, format, type, pixels, GL_FALSE); - UnlockDisplay(dpy); SyncHandle(); -#endif /* USE_XCB */ - } - return; -} - -#define X_GLrop_DrawPixels 173 -void -__indirect_glDrawPixels(GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid * pixels) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint compsize = (pixels != NULL) ? __glImageSize(width, height, 1, format, type, 0) : 0; - const GLuint cmdlen = 40 + __GLX_PAD(compsize); - if (__builtin_expect(gc->currentDpy != NULL, 1)) { - if (cmdlen <= gc->maxSmallRenderCommandSize) { - if ( (gc->pc + cmdlen) > gc->bufEnd ) { - (void) __glXFlushRenderBuffer(gc, gc->pc); - } - emit_header(gc->pc, X_GLrop_DrawPixels, cmdlen); - (void) memcpy((void *)(gc->pc + 24), (void *)(&width), 4); - (void) memcpy((void *)(gc->pc + 28), (void *)(&height), 4); - (void) memcpy((void *)(gc->pc + 32), (void *)(&format), 4); - (void) memcpy((void *)(gc->pc + 36), (void *)(&type), 4); - if (compsize > 0) { - (*gc->fillImage)(gc, 2, width, height, 1, format, type, pixels, gc->pc + 40, gc->pc + 4); - } - else { - (void) memcpy( gc->pc + 4, default_pixel_store_2D, default_pixel_store_2D_size ); - } - gc->pc += cmdlen; - if (gc->pc > gc->limit) { (void) __glXFlushRenderBuffer(gc, gc->pc); } - } - else { - const GLint op = X_GLrop_DrawPixels; - const GLuint cmdlenLarge = cmdlen + 4; - GLubyte * const pc = __glXFlushRenderBuffer(gc, gc->pc); - (void) memcpy((void *)(pc + 0), (void *)(&cmdlenLarge), 4); - (void) memcpy((void *)(pc + 4), (void *)(&op), 4); - (void) memcpy((void *)(pc + 28), (void *)(&width), 4); - (void) memcpy((void *)(pc + 32), (void *)(&height), 4); - (void) memcpy((void *)(pc + 36), (void *)(&format), 4); - (void) memcpy((void *)(pc + 40), (void *)(&type), 4); - __glXSendLargeImage(gc, compsize, 2, width, height, 1, format, type, pixels, pc + 44, pc + 8); - } - } -} - -#define X_GLsop_GetClipPlane 113 -void -__indirect_glGetClipPlane(GLenum plane, GLdouble * equation) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - Display * const dpy = gc->currentDpy; - const GLuint cmdlen = 4; - if (__builtin_expect(dpy != NULL, 1)) { -#ifdef USE_XCB - XCBConnection *c = XCBConnectionOfDisplay(dpy); - (void) __glXFlushRenderBuffer(gc, gc->pc); - XCBGlxGetClipPlaneRep *reply = XCBGlxGetClipPlaneReply(c, XCBGlxGetClipPlane(c, gc->currentContextTag, plane), NULL); - (void)memcpy(equation, XCBGlxGetClipPlaneData(reply), XCBGlxGetClipPlaneDataLength(reply) * sizeof(GLdouble)); - free(reply); -#else - GLubyte const * pc = __glXSetupSingleRequest(gc, X_GLsop_GetClipPlane, cmdlen); - (void) memcpy((void *)(pc + 0), (void *)(&plane), 4); - (void) __glXReadReply(dpy, 8, equation, GL_TRUE); - UnlockDisplay(dpy); SyncHandle(); -#endif /* USE_XCB */ - } - return; -} - -#define X_GLsop_GetLightfv 118 -void -__indirect_glGetLightfv(GLenum light, GLenum pname, GLfloat * params) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - Display * const dpy = gc->currentDpy; - const GLuint cmdlen = 8; - if (__builtin_expect(dpy != NULL, 1)) { -#ifdef USE_XCB - XCBConnection *c = XCBConnectionOfDisplay(dpy); - (void) __glXFlushRenderBuffer(gc, gc->pc); - XCBGlxGetLightfvRep *reply = XCBGlxGetLightfvReply(c, XCBGlxGetLightfv(c, gc->currentContextTag, light, pname), NULL); - if (XCBGlxGetLightfvDataLength(reply) == 0) - (void)memcpy(params, &reply->datum, sizeof(reply->datum)); - else - (void)memcpy(params, XCBGlxGetLightfvData(reply), XCBGlxGetLightfvDataLength(reply) * sizeof(GLfloat)); - free(reply); -#else - GLubyte const * pc = __glXSetupSingleRequest(gc, X_GLsop_GetLightfv, cmdlen); - (void) memcpy((void *)(pc + 0), (void *)(&light), 4); - (void) memcpy((void *)(pc + 4), (void *)(&pname), 4); - (void) __glXReadReply(dpy, 4, params, GL_FALSE); - UnlockDisplay(dpy); SyncHandle(); -#endif /* USE_XCB */ - } - return; -} - -#define X_GLsop_GetLightiv 119 -void -__indirect_glGetLightiv(GLenum light, GLenum pname, GLint * params) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - Display * const dpy = gc->currentDpy; - const GLuint cmdlen = 8; - if (__builtin_expect(dpy != NULL, 1)) { -#ifdef USE_XCB - XCBConnection *c = XCBConnectionOfDisplay(dpy); - (void) __glXFlushRenderBuffer(gc, gc->pc); - XCBGlxGetLightivRep *reply = XCBGlxGetLightivReply(c, XCBGlxGetLightiv(c, gc->currentContextTag, light, pname), NULL); - if (XCBGlxGetLightivDataLength(reply) == 0) - (void)memcpy(params, &reply->datum, sizeof(reply->datum)); - else - (void)memcpy(params, XCBGlxGetLightivData(reply), XCBGlxGetLightivDataLength(reply) * sizeof(GLint)); - free(reply); -#else - GLubyte const * pc = __glXSetupSingleRequest(gc, X_GLsop_GetLightiv, cmdlen); - (void) memcpy((void *)(pc + 0), (void *)(&light), 4); - (void) memcpy((void *)(pc + 4), (void *)(&pname), 4); - (void) __glXReadReply(dpy, 4, params, GL_FALSE); - UnlockDisplay(dpy); SyncHandle(); -#endif /* USE_XCB */ - } - return; -} - -#define X_GLsop_GetMapdv 120 -void -__indirect_glGetMapdv(GLenum target, GLenum query, GLdouble * v) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - Display * const dpy = gc->currentDpy; - const GLuint cmdlen = 8; - if (__builtin_expect(dpy != NULL, 1)) { -#ifdef USE_XCB - XCBConnection *c = XCBConnectionOfDisplay(dpy); - (void) __glXFlushRenderBuffer(gc, gc->pc); - XCBGlxGetMapdvRep *reply = XCBGlxGetMapdvReply(c, XCBGlxGetMapdv(c, gc->currentContextTag, target, query), NULL); - if (XCBGlxGetMapdvDataLength(reply) == 0) - (void)memcpy(v, &reply->datum, sizeof(reply->datum)); - else - (void)memcpy(v, XCBGlxGetMapdvData(reply), XCBGlxGetMapdvDataLength(reply) * sizeof(GLdouble)); - free(reply); -#else - GLubyte const * pc = __glXSetupSingleRequest(gc, X_GLsop_GetMapdv, cmdlen); - (void) memcpy((void *)(pc + 0), (void *)(&target), 4); - (void) memcpy((void *)(pc + 4), (void *)(&query), 4); - (void) __glXReadReply(dpy, 8, v, GL_FALSE); - UnlockDisplay(dpy); SyncHandle(); -#endif /* USE_XCB */ - } - return; -} - -#define X_GLsop_GetMapfv 121 -void -__indirect_glGetMapfv(GLenum target, GLenum query, GLfloat * v) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - Display * const dpy = gc->currentDpy; - const GLuint cmdlen = 8; - if (__builtin_expect(dpy != NULL, 1)) { -#ifdef USE_XCB - XCBConnection *c = XCBConnectionOfDisplay(dpy); - (void) __glXFlushRenderBuffer(gc, gc->pc); - XCBGlxGetMapfvRep *reply = XCBGlxGetMapfvReply(c, XCBGlxGetMapfv(c, gc->currentContextTag, target, query), NULL); - if (XCBGlxGetMapfvDataLength(reply) == 0) - (void)memcpy(v, &reply->datum, sizeof(reply->datum)); - else - (void)memcpy(v, XCBGlxGetMapfvData(reply), XCBGlxGetMapfvDataLength(reply) * sizeof(GLfloat)); - free(reply); -#else - GLubyte const * pc = __glXSetupSingleRequest(gc, X_GLsop_GetMapfv, cmdlen); - (void) memcpy((void *)(pc + 0), (void *)(&target), 4); - (void) memcpy((void *)(pc + 4), (void *)(&query), 4); - (void) __glXReadReply(dpy, 4, v, GL_FALSE); - UnlockDisplay(dpy); SyncHandle(); -#endif /* USE_XCB */ - } - return; -} - -#define X_GLsop_GetMapiv 122 -void -__indirect_glGetMapiv(GLenum target, GLenum query, GLint * v) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - Display * const dpy = gc->currentDpy; - const GLuint cmdlen = 8; - if (__builtin_expect(dpy != NULL, 1)) { -#ifdef USE_XCB - XCBConnection *c = XCBConnectionOfDisplay(dpy); - (void) __glXFlushRenderBuffer(gc, gc->pc); - XCBGlxGetMapivRep *reply = XCBGlxGetMapivReply(c, XCBGlxGetMapiv(c, gc->currentContextTag, target, query), NULL); - if (XCBGlxGetMapivDataLength(reply) == 0) - (void)memcpy(v, &reply->datum, sizeof(reply->datum)); - else - (void)memcpy(v, XCBGlxGetMapivData(reply), XCBGlxGetMapivDataLength(reply) * sizeof(GLint)); - free(reply); -#else - GLubyte const * pc = __glXSetupSingleRequest(gc, X_GLsop_GetMapiv, cmdlen); - (void) memcpy((void *)(pc + 0), (void *)(&target), 4); - (void) memcpy((void *)(pc + 4), (void *)(&query), 4); - (void) __glXReadReply(dpy, 4, v, GL_FALSE); - UnlockDisplay(dpy); SyncHandle(); -#endif /* USE_XCB */ - } - return; -} - -#define X_GLsop_GetMaterialfv 123 -void -__indirect_glGetMaterialfv(GLenum face, GLenum pname, GLfloat * params) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - Display * const dpy = gc->currentDpy; - const GLuint cmdlen = 8; - if (__builtin_expect(dpy != NULL, 1)) { -#ifdef USE_XCB - XCBConnection *c = XCBConnectionOfDisplay(dpy); - (void) __glXFlushRenderBuffer(gc, gc->pc); - XCBGlxGetMaterialfvRep *reply = XCBGlxGetMaterialfvReply(c, XCBGlxGetMaterialfv(c, gc->currentContextTag, face, pname), NULL); - if (XCBGlxGetMaterialfvDataLength(reply) == 0) - (void)memcpy(params, &reply->datum, sizeof(reply->datum)); - else - (void)memcpy(params, XCBGlxGetMaterialfvData(reply), XCBGlxGetMaterialfvDataLength(reply) * sizeof(GLfloat)); - free(reply); -#else - GLubyte const * pc = __glXSetupSingleRequest(gc, X_GLsop_GetMaterialfv, cmdlen); - (void) memcpy((void *)(pc + 0), (void *)(&face), 4); - (void) memcpy((void *)(pc + 4), (void *)(&pname), 4); - (void) __glXReadReply(dpy, 4, params, GL_FALSE); - UnlockDisplay(dpy); SyncHandle(); -#endif /* USE_XCB */ - } - return; -} - -#define X_GLsop_GetMaterialiv 124 -void -__indirect_glGetMaterialiv(GLenum face, GLenum pname, GLint * params) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - Display * const dpy = gc->currentDpy; - const GLuint cmdlen = 8; - if (__builtin_expect(dpy != NULL, 1)) { -#ifdef USE_XCB - XCBConnection *c = XCBConnectionOfDisplay(dpy); - (void) __glXFlushRenderBuffer(gc, gc->pc); - XCBGlxGetMaterialivRep *reply = XCBGlxGetMaterialivReply(c, XCBGlxGetMaterialiv(c, gc->currentContextTag, face, pname), NULL); - if (XCBGlxGetMaterialivDataLength(reply) == 0) - (void)memcpy(params, &reply->datum, sizeof(reply->datum)); - else - (void)memcpy(params, XCBGlxGetMaterialivData(reply), XCBGlxGetMaterialivDataLength(reply) * sizeof(GLint)); - free(reply); -#else - GLubyte const * pc = __glXSetupSingleRequest(gc, X_GLsop_GetMaterialiv, cmdlen); - (void) memcpy((void *)(pc + 0), (void *)(&face), 4); - (void) memcpy((void *)(pc + 4), (void *)(&pname), 4); - (void) __glXReadReply(dpy, 4, params, GL_FALSE); - UnlockDisplay(dpy); SyncHandle(); -#endif /* USE_XCB */ - } - return; -} - -#define X_GLsop_GetPixelMapfv 125 -void -__indirect_glGetPixelMapfv(GLenum map, GLfloat * values) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - Display * const dpy = gc->currentDpy; - const GLuint cmdlen = 4; - if (__builtin_expect(dpy != NULL, 1)) { -#ifdef USE_XCB - XCBConnection *c = XCBConnectionOfDisplay(dpy); - (void) __glXFlushRenderBuffer(gc, gc->pc); - XCBGlxGetPixelMapfvRep *reply = XCBGlxGetPixelMapfvReply(c, XCBGlxGetPixelMapfv(c, gc->currentContextTag, map), NULL); - if (XCBGlxGetPixelMapfvDataLength(reply) == 0) - (void)memcpy(values, &reply->datum, sizeof(reply->datum)); - else - (void)memcpy(values, XCBGlxGetPixelMapfvData(reply), XCBGlxGetPixelMapfvDataLength(reply) * sizeof(GLfloat)); - free(reply); -#else - GLubyte const * pc = __glXSetupSingleRequest(gc, X_GLsop_GetPixelMapfv, cmdlen); - (void) memcpy((void *)(pc + 0), (void *)(&map), 4); - (void) __glXReadReply(dpy, 4, values, GL_FALSE); - UnlockDisplay(dpy); SyncHandle(); -#endif /* USE_XCB */ - } - return; -} - -#define X_GLsop_GetPixelMapuiv 126 -void -__indirect_glGetPixelMapuiv(GLenum map, GLuint * values) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - Display * const dpy = gc->currentDpy; - const GLuint cmdlen = 4; - if (__builtin_expect(dpy != NULL, 1)) { -#ifdef USE_XCB - XCBConnection *c = XCBConnectionOfDisplay(dpy); - (void) __glXFlushRenderBuffer(gc, gc->pc); - XCBGlxGetPixelMapuivRep *reply = XCBGlxGetPixelMapuivReply(c, XCBGlxGetPixelMapuiv(c, gc->currentContextTag, map), NULL); - if (XCBGlxGetPixelMapuivDataLength(reply) == 0) - (void)memcpy(values, &reply->datum, sizeof(reply->datum)); - else - (void)memcpy(values, XCBGlxGetPixelMapuivData(reply), XCBGlxGetPixelMapuivDataLength(reply) * sizeof(GLuint)); - free(reply); -#else - GLubyte const * pc = __glXSetupSingleRequest(gc, X_GLsop_GetPixelMapuiv, cmdlen); - (void) memcpy((void *)(pc + 0), (void *)(&map), 4); - (void) __glXReadReply(dpy, 4, values, GL_FALSE); - UnlockDisplay(dpy); SyncHandle(); -#endif /* USE_XCB */ - } - return; -} - -#define X_GLsop_GetPixelMapusv 127 -void -__indirect_glGetPixelMapusv(GLenum map, GLushort * values) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - Display * const dpy = gc->currentDpy; - const GLuint cmdlen = 4; - if (__builtin_expect(dpy != NULL, 1)) { -#ifdef USE_XCB - XCBConnection *c = XCBConnectionOfDisplay(dpy); - (void) __glXFlushRenderBuffer(gc, gc->pc); - XCBGlxGetPixelMapusvRep *reply = XCBGlxGetPixelMapusvReply(c, XCBGlxGetPixelMapusv(c, gc->currentContextTag, map), NULL); - if (XCBGlxGetPixelMapusvDataLength(reply) == 0) - (void)memcpy(values, &reply->datum, sizeof(reply->datum)); - else - (void)memcpy(values, XCBGlxGetPixelMapusvData(reply), XCBGlxGetPixelMapusvDataLength(reply) * sizeof(GLushort)); - free(reply); -#else - GLubyte const * pc = __glXSetupSingleRequest(gc, X_GLsop_GetPixelMapusv, cmdlen); - (void) memcpy((void *)(pc + 0), (void *)(&map), 4); - (void) __glXReadReply(dpy, 2, values, GL_FALSE); - UnlockDisplay(dpy); SyncHandle(); -#endif /* USE_XCB */ - } - return; -} - -#define X_GLsop_GetPolygonStipple 128 -void -__indirect_glGetPolygonStipple(GLubyte * mask) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const __GLXattribute * const state = gc->client_state_private; - Display * const dpy = gc->currentDpy; - const GLuint cmdlen = 4; - if (__builtin_expect(dpy != NULL, 1)) { -#ifdef USE_XCB - XCBConnection *c = XCBConnectionOfDisplay(dpy); - (void) __glXFlushRenderBuffer(gc, gc->pc); - XCBGlxGetPolygonStippleRep *reply = XCBGlxGetPolygonStippleReply(c, XCBGlxGetPolygonStipple(c, gc->currentContextTag, 0), NULL); - (void)memcpy(mask, XCBGlxGetPolygonStippleData(reply), XCBGlxGetPolygonStippleDataLength(reply) * sizeof(GLubyte)); - free(reply); -#else - GLubyte const * pc = __glXSetupSingleRequest(gc, X_GLsop_GetPolygonStipple, cmdlen); - *(int32_t *)(pc + 0) = 0; - __glXReadPixelReply(dpy, gc, 2, 32, 32, 1, GL_COLOR_INDEX, GL_BITMAP, mask, GL_FALSE); - UnlockDisplay(dpy); SyncHandle(); -#endif /* USE_XCB */ - } - return; -} - -#define X_GLsop_GetTexEnvfv 130 -void -__indirect_glGetTexEnvfv(GLenum target, GLenum pname, GLfloat * params) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - Display * const dpy = gc->currentDpy; - const GLuint cmdlen = 8; - if (__builtin_expect(dpy != NULL, 1)) { -#ifdef USE_XCB - XCBConnection *c = XCBConnectionOfDisplay(dpy); - (void) __glXFlushRenderBuffer(gc, gc->pc); - XCBGlxGetTexEnvfvRep *reply = XCBGlxGetTexEnvfvReply(c, XCBGlxGetTexEnvfv(c, gc->currentContextTag, target, pname), NULL); - if (XCBGlxGetTexEnvfvDataLength(reply) == 0) - (void)memcpy(params, &reply->datum, sizeof(reply->datum)); - else - (void)memcpy(params, XCBGlxGetTexEnvfvData(reply), XCBGlxGetTexEnvfvDataLength(reply) * sizeof(GLfloat)); - free(reply); -#else - GLubyte const * pc = __glXSetupSingleRequest(gc, X_GLsop_GetTexEnvfv, cmdlen); - (void) memcpy((void *)(pc + 0), (void *)(&target), 4); - (void) memcpy((void *)(pc + 4), (void *)(&pname), 4); - (void) __glXReadReply(dpy, 4, params, GL_FALSE); - UnlockDisplay(dpy); SyncHandle(); -#endif /* USE_XCB */ - } - return; -} - -#define X_GLsop_GetTexEnviv 131 -void -__indirect_glGetTexEnviv(GLenum target, GLenum pname, GLint * params) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - Display * const dpy = gc->currentDpy; - const GLuint cmdlen = 8; - if (__builtin_expect(dpy != NULL, 1)) { -#ifdef USE_XCB - XCBConnection *c = XCBConnectionOfDisplay(dpy); - (void) __glXFlushRenderBuffer(gc, gc->pc); - XCBGlxGetTexEnvivRep *reply = XCBGlxGetTexEnvivReply(c, XCBGlxGetTexEnviv(c, gc->currentContextTag, target, pname), NULL); - if (XCBGlxGetTexEnvivDataLength(reply) == 0) - (void)memcpy(params, &reply->datum, sizeof(reply->datum)); - else - (void)memcpy(params, XCBGlxGetTexEnvivData(reply), XCBGlxGetTexEnvivDataLength(reply) * sizeof(GLint)); - free(reply); -#else - GLubyte const * pc = __glXSetupSingleRequest(gc, X_GLsop_GetTexEnviv, cmdlen); - (void) memcpy((void *)(pc + 0), (void *)(&target), 4); - (void) memcpy((void *)(pc + 4), (void *)(&pname), 4); - (void) __glXReadReply(dpy, 4, params, GL_FALSE); - UnlockDisplay(dpy); SyncHandle(); -#endif /* USE_XCB */ - } - return; -} - -#define X_GLsop_GetTexGendv 132 -void -__indirect_glGetTexGendv(GLenum coord, GLenum pname, GLdouble * params) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - Display * const dpy = gc->currentDpy; - const GLuint cmdlen = 8; - if (__builtin_expect(dpy != NULL, 1)) { -#ifdef USE_XCB - XCBConnection *c = XCBConnectionOfDisplay(dpy); - (void) __glXFlushRenderBuffer(gc, gc->pc); - XCBGlxGetTexGendvRep *reply = XCBGlxGetTexGendvReply(c, XCBGlxGetTexGendv(c, gc->currentContextTag, coord, pname), NULL); - if (XCBGlxGetTexGendvDataLength(reply) == 0) - (void)memcpy(params, &reply->datum, sizeof(reply->datum)); - else - (void)memcpy(params, XCBGlxGetTexGendvData(reply), XCBGlxGetTexGendvDataLength(reply) * sizeof(GLdouble)); - free(reply); -#else - GLubyte const * pc = __glXSetupSingleRequest(gc, X_GLsop_GetTexGendv, cmdlen); - (void) memcpy((void *)(pc + 0), (void *)(&coord), 4); - (void) memcpy((void *)(pc + 4), (void *)(&pname), 4); - (void) __glXReadReply(dpy, 8, params, GL_FALSE); - UnlockDisplay(dpy); SyncHandle(); -#endif /* USE_XCB */ - } - return; -} - -#define X_GLsop_GetTexGenfv 133 -void -__indirect_glGetTexGenfv(GLenum coord, GLenum pname, GLfloat * params) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - Display * const dpy = gc->currentDpy; - const GLuint cmdlen = 8; - if (__builtin_expect(dpy != NULL, 1)) { -#ifdef USE_XCB - XCBConnection *c = XCBConnectionOfDisplay(dpy); - (void) __glXFlushRenderBuffer(gc, gc->pc); - XCBGlxGetTexGenfvRep *reply = XCBGlxGetTexGenfvReply(c, XCBGlxGetTexGenfv(c, gc->currentContextTag, coord, pname), NULL); - if (XCBGlxGetTexGenfvDataLength(reply) == 0) - (void)memcpy(params, &reply->datum, sizeof(reply->datum)); - else - (void)memcpy(params, XCBGlxGetTexGenfvData(reply), XCBGlxGetTexGenfvDataLength(reply) * sizeof(GLfloat)); - free(reply); -#else - GLubyte const * pc = __glXSetupSingleRequest(gc, X_GLsop_GetTexGenfv, cmdlen); - (void) memcpy((void *)(pc + 0), (void *)(&coord), 4); - (void) memcpy((void *)(pc + 4), (void *)(&pname), 4); - (void) __glXReadReply(dpy, 4, params, GL_FALSE); - UnlockDisplay(dpy); SyncHandle(); -#endif /* USE_XCB */ - } - return; -} - -#define X_GLsop_GetTexGeniv 134 -void -__indirect_glGetTexGeniv(GLenum coord, GLenum pname, GLint * params) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - Display * const dpy = gc->currentDpy; - const GLuint cmdlen = 8; - if (__builtin_expect(dpy != NULL, 1)) { -#ifdef USE_XCB - XCBConnection *c = XCBConnectionOfDisplay(dpy); - (void) __glXFlushRenderBuffer(gc, gc->pc); - XCBGlxGetTexGenivRep *reply = XCBGlxGetTexGenivReply(c, XCBGlxGetTexGeniv(c, gc->currentContextTag, coord, pname), NULL); - if (XCBGlxGetTexGenivDataLength(reply) == 0) - (void)memcpy(params, &reply->datum, sizeof(reply->datum)); - else - (void)memcpy(params, XCBGlxGetTexGenivData(reply), XCBGlxGetTexGenivDataLength(reply) * sizeof(GLint)); - free(reply); -#else - GLubyte const * pc = __glXSetupSingleRequest(gc, X_GLsop_GetTexGeniv, cmdlen); - (void) memcpy((void *)(pc + 0), (void *)(&coord), 4); - (void) memcpy((void *)(pc + 4), (void *)(&pname), 4); - (void) __glXReadReply(dpy, 4, params, GL_FALSE); - UnlockDisplay(dpy); SyncHandle(); -#endif /* USE_XCB */ - } - return; -} - -#define X_GLsop_GetTexImage 135 -void -__indirect_glGetTexImage(GLenum target, GLint level, GLenum format, GLenum type, GLvoid * pixels) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const __GLXattribute * const state = gc->client_state_private; - Display * const dpy = gc->currentDpy; - const GLuint cmdlen = 20; - if (__builtin_expect(dpy != NULL, 1)) { -#ifdef USE_XCB - XCBConnection *c = XCBConnectionOfDisplay(dpy); - (void) __glXFlushRenderBuffer(gc, gc->pc); - XCBGlxGetTexImageRep *reply = XCBGlxGetTexImageReply(c, XCBGlxGetTexImage(c, gc->currentContextTag, target, level, format, type, state->storePack.swapEndian), NULL); - (void)memcpy(pixels, XCBGlxGetTexImageData(reply), XCBGlxGetTexImageDataLength(reply) * sizeof(GLvoid)); - free(reply); -#else - GLubyte const * pc = __glXSetupSingleRequest(gc, X_GLsop_GetTexImage, cmdlen); - (void) memcpy((void *)(pc + 0), (void *)(&target), 4); - (void) memcpy((void *)(pc + 4), (void *)(&level), 4); - (void) memcpy((void *)(pc + 8), (void *)(&format), 4); - (void) memcpy((void *)(pc + 12), (void *)(&type), 4); - *(int32_t *)(pc + 16) = 0; - * (int8_t *)(pc + 16) = state->storePack.swapEndian; - __glXReadPixelReply(dpy, gc, 3, 0, 0, 0, format, type, pixels, GL_TRUE); - UnlockDisplay(dpy); SyncHandle(); -#endif /* USE_XCB */ - } - return; -} - -#define X_GLsop_GetTexParameterfv 136 -void -__indirect_glGetTexParameterfv(GLenum target, GLenum pname, GLfloat * params) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - Display * const dpy = gc->currentDpy; - const GLuint cmdlen = 8; - if (__builtin_expect(dpy != NULL, 1)) { -#ifdef USE_XCB - XCBConnection *c = XCBConnectionOfDisplay(dpy); - (void) __glXFlushRenderBuffer(gc, gc->pc); - XCBGlxGetTexParameterfvRep *reply = XCBGlxGetTexParameterfvReply(c, XCBGlxGetTexParameterfv(c, gc->currentContextTag, target, pname), NULL); - if (XCBGlxGetTexParameterfvDataLength(reply) == 0) - (void)memcpy(params, &reply->datum, sizeof(reply->datum)); - else - (void)memcpy(params, XCBGlxGetTexParameterfvData(reply), XCBGlxGetTexParameterfvDataLength(reply) * sizeof(GLfloat)); - free(reply); -#else - GLubyte const * pc = __glXSetupSingleRequest(gc, X_GLsop_GetTexParameterfv, cmdlen); - (void) memcpy((void *)(pc + 0), (void *)(&target), 4); - (void) memcpy((void *)(pc + 4), (void *)(&pname), 4); - (void) __glXReadReply(dpy, 4, params, GL_FALSE); - UnlockDisplay(dpy); SyncHandle(); -#endif /* USE_XCB */ - } - return; -} - -#define X_GLsop_GetTexParameteriv 137 -void -__indirect_glGetTexParameteriv(GLenum target, GLenum pname, GLint * params) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - Display * const dpy = gc->currentDpy; - const GLuint cmdlen = 8; - if (__builtin_expect(dpy != NULL, 1)) { -#ifdef USE_XCB - XCBConnection *c = XCBConnectionOfDisplay(dpy); - (void) __glXFlushRenderBuffer(gc, gc->pc); - XCBGlxGetTexParameterivRep *reply = XCBGlxGetTexParameterivReply(c, XCBGlxGetTexParameteriv(c, gc->currentContextTag, target, pname), NULL); - if (XCBGlxGetTexParameterivDataLength(reply) == 0) - (void)memcpy(params, &reply->datum, sizeof(reply->datum)); - else - (void)memcpy(params, XCBGlxGetTexParameterivData(reply), XCBGlxGetTexParameterivDataLength(reply) * sizeof(GLint)); - free(reply); -#else - GLubyte const * pc = __glXSetupSingleRequest(gc, X_GLsop_GetTexParameteriv, cmdlen); - (void) memcpy((void *)(pc + 0), (void *)(&target), 4); - (void) memcpy((void *)(pc + 4), (void *)(&pname), 4); - (void) __glXReadReply(dpy, 4, params, GL_FALSE); - UnlockDisplay(dpy); SyncHandle(); -#endif /* USE_XCB */ - } - return; -} - -#define X_GLsop_GetTexLevelParameterfv 138 -void -__indirect_glGetTexLevelParameterfv(GLenum target, GLint level, GLenum pname, GLfloat * params) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - Display * const dpy = gc->currentDpy; - const GLuint cmdlen = 12; - if (__builtin_expect(dpy != NULL, 1)) { -#ifdef USE_XCB - XCBConnection *c = XCBConnectionOfDisplay(dpy); - (void) __glXFlushRenderBuffer(gc, gc->pc); - XCBGlxGetTexLevelParameterfvRep *reply = XCBGlxGetTexLevelParameterfvReply(c, XCBGlxGetTexLevelParameterfv(c, gc->currentContextTag, target, level, pname), NULL); - if (XCBGlxGetTexLevelParameterfvDataLength(reply) == 0) - (void)memcpy(params, &reply->datum, sizeof(reply->datum)); - else - (void)memcpy(params, XCBGlxGetTexLevelParameterfvData(reply), XCBGlxGetTexLevelParameterfvDataLength(reply) * sizeof(GLfloat)); - free(reply); -#else - GLubyte const * pc = __glXSetupSingleRequest(gc, X_GLsop_GetTexLevelParameterfv, cmdlen); - (void) memcpy((void *)(pc + 0), (void *)(&target), 4); - (void) memcpy((void *)(pc + 4), (void *)(&level), 4); - (void) memcpy((void *)(pc + 8), (void *)(&pname), 4); - (void) __glXReadReply(dpy, 4, params, GL_FALSE); - UnlockDisplay(dpy); SyncHandle(); -#endif /* USE_XCB */ - } - return; -} - -#define X_GLsop_GetTexLevelParameteriv 139 -void -__indirect_glGetTexLevelParameteriv(GLenum target, GLint level, GLenum pname, GLint * params) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - Display * const dpy = gc->currentDpy; - const GLuint cmdlen = 12; - if (__builtin_expect(dpy != NULL, 1)) { -#ifdef USE_XCB - XCBConnection *c = XCBConnectionOfDisplay(dpy); - (void) __glXFlushRenderBuffer(gc, gc->pc); - XCBGlxGetTexLevelParameterivRep *reply = XCBGlxGetTexLevelParameterivReply(c, XCBGlxGetTexLevelParameteriv(c, gc->currentContextTag, target, level, pname), NULL); - if (XCBGlxGetTexLevelParameterivDataLength(reply) == 0) - (void)memcpy(params, &reply->datum, sizeof(reply->datum)); - else - (void)memcpy(params, XCBGlxGetTexLevelParameterivData(reply), XCBGlxGetTexLevelParameterivDataLength(reply) * sizeof(GLint)); - free(reply); -#else - GLubyte const * pc = __glXSetupSingleRequest(gc, X_GLsop_GetTexLevelParameteriv, cmdlen); - (void) memcpy((void *)(pc + 0), (void *)(&target), 4); - (void) memcpy((void *)(pc + 4), (void *)(&level), 4); - (void) memcpy((void *)(pc + 8), (void *)(&pname), 4); - (void) __glXReadReply(dpy, 4, params, GL_FALSE); - UnlockDisplay(dpy); SyncHandle(); -#endif /* USE_XCB */ - } - return; -} - -#define X_GLsop_IsList 141 -GLboolean -__indirect_glIsList(GLuint list) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - Display * const dpy = gc->currentDpy; - GLboolean retval = (GLboolean) 0; - const GLuint cmdlen = 4; - if (__builtin_expect(dpy != NULL, 1)) { -#ifdef USE_XCB - XCBConnection *c = XCBConnectionOfDisplay(dpy); - (void) __glXFlushRenderBuffer(gc, gc->pc); - XCBGlxIsListRep *reply = XCBGlxIsListReply(c, XCBGlxIsList(c, gc->currentContextTag, list), NULL); - retval = reply->ret_val; - free(reply); -#else - GLubyte const * pc = __glXSetupSingleRequest(gc, X_GLsop_IsList, cmdlen); - (void) memcpy((void *)(pc + 0), (void *)(&list), 4); - retval = (GLboolean) __glXReadReply(dpy, 0, NULL, GL_FALSE); - UnlockDisplay(dpy); SyncHandle(); -#endif /* USE_XCB */ - } - return retval; -} - -#define X_GLrop_DepthRange 174 -void -__indirect_glDepthRange(GLclampd zNear, GLclampd zFar) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 20; - emit_header(gc->pc, X_GLrop_DepthRange, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&zNear), 8); - (void) memcpy((void *)(gc->pc + 12), (void *)(&zFar), 8); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_Frustum 175 -void -__indirect_glFrustum(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 52; - emit_header(gc->pc, X_GLrop_Frustum, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&left), 8); - (void) memcpy((void *)(gc->pc + 12), (void *)(&right), 8); - (void) memcpy((void *)(gc->pc + 20), (void *)(&bottom), 8); - (void) memcpy((void *)(gc->pc + 28), (void *)(&top), 8); - (void) memcpy((void *)(gc->pc + 36), (void *)(&zNear), 8); - (void) memcpy((void *)(gc->pc + 44), (void *)(&zFar), 8); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_LoadIdentity 176 -void -__indirect_glLoadIdentity(void) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 4; - emit_header(gc->pc, X_GLrop_LoadIdentity, cmdlen); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_LoadMatrixf 177 -void -__indirect_glLoadMatrixf(const GLfloat * m) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 68; - emit_header(gc->pc, X_GLrop_LoadMatrixf, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(m), 64); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_LoadMatrixd 178 -void -__indirect_glLoadMatrixd(const GLdouble * m) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 132; - emit_header(gc->pc, X_GLrop_LoadMatrixd, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(m), 128); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_MatrixMode 179 -void -__indirect_glMatrixMode(GLenum mode) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 8; - emit_header(gc->pc, X_GLrop_MatrixMode, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&mode), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_MultMatrixf 180 -void -__indirect_glMultMatrixf(const GLfloat * m) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 68; - emit_header(gc->pc, X_GLrop_MultMatrixf, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(m), 64); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_MultMatrixd 181 -void -__indirect_glMultMatrixd(const GLdouble * m) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 132; - emit_header(gc->pc, X_GLrop_MultMatrixd, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(m), 128); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_Ortho 182 -void -__indirect_glOrtho(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 52; - emit_header(gc->pc, X_GLrop_Ortho, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&left), 8); - (void) memcpy((void *)(gc->pc + 12), (void *)(&right), 8); - (void) memcpy((void *)(gc->pc + 20), (void *)(&bottom), 8); - (void) memcpy((void *)(gc->pc + 28), (void *)(&top), 8); - (void) memcpy((void *)(gc->pc + 36), (void *)(&zNear), 8); - (void) memcpy((void *)(gc->pc + 44), (void *)(&zFar), 8); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_PopMatrix 183 -void -__indirect_glPopMatrix(void) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 4; - emit_header(gc->pc, X_GLrop_PopMatrix, cmdlen); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_PushMatrix 184 -void -__indirect_glPushMatrix(void) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 4; - emit_header(gc->pc, X_GLrop_PushMatrix, cmdlen); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_Rotated 185 -void -__indirect_glRotated(GLdouble angle, GLdouble x, GLdouble y, GLdouble z) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 36; - emit_header(gc->pc, X_GLrop_Rotated, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&angle), 8); - (void) memcpy((void *)(gc->pc + 12), (void *)(&x), 8); - (void) memcpy((void *)(gc->pc + 20), (void *)(&y), 8); - (void) memcpy((void *)(gc->pc + 28), (void *)(&z), 8); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_Rotatef 186 -void -__indirect_glRotatef(GLfloat angle, GLfloat x, GLfloat y, GLfloat z) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 20; - emit_header(gc->pc, X_GLrop_Rotatef, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&angle), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&x), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(&y), 4); - (void) memcpy((void *)(gc->pc + 16), (void *)(&z), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_Scaled 187 -void -__indirect_glScaled(GLdouble x, GLdouble y, GLdouble z) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 28; - emit_header(gc->pc, X_GLrop_Scaled, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&x), 8); - (void) memcpy((void *)(gc->pc + 12), (void *)(&y), 8); - (void) memcpy((void *)(gc->pc + 20), (void *)(&z), 8); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_Scalef 188 -void -__indirect_glScalef(GLfloat x, GLfloat y, GLfloat z) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 16; - emit_header(gc->pc, X_GLrop_Scalef, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&x), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&y), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(&z), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_Translated 189 -void -__indirect_glTranslated(GLdouble x, GLdouble y, GLdouble z) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 28; - emit_header(gc->pc, X_GLrop_Translated, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&x), 8); - (void) memcpy((void *)(gc->pc + 12), (void *)(&y), 8); - (void) memcpy((void *)(gc->pc + 20), (void *)(&z), 8); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_Translatef 190 -void -__indirect_glTranslatef(GLfloat x, GLfloat y, GLfloat z) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 16; - emit_header(gc->pc, X_GLrop_Translatef, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&x), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&y), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(&z), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_Viewport 191 -void -__indirect_glViewport(GLint x, GLint y, GLsizei width, GLsizei height) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 20; - emit_header(gc->pc, X_GLrop_Viewport, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&x), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&y), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(&width), 4); - (void) memcpy((void *)(gc->pc + 16), (void *)(&height), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_BindTexture 4117 -void -__indirect_glBindTexture(GLenum target, GLuint texture) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12; - emit_header(gc->pc, X_GLrop_BindTexture, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&target), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&texture), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_Indexubv 194 -void -__indirect_glIndexub(GLubyte c) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 8; - emit_header(gc->pc, X_GLrop_Indexubv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&c), 1); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_Indexubv 194 -void -__indirect_glIndexubv(const GLubyte * c) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 8; - emit_header(gc->pc, X_GLrop_Indexubv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(c), 1); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_PolygonOffset 192 -void -__indirect_glPolygonOffset(GLfloat factor, GLfloat units) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12; - emit_header(gc->pc, X_GLrop_PolygonOffset, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&factor), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&units), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLsop_AreTexturesResident 143 -GLboolean -__indirect_glAreTexturesResident(GLsizei n, const GLuint * textures, GLboolean * residences) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - Display * const dpy = gc->currentDpy; - GLboolean retval = (GLboolean) 0; - const GLuint cmdlen = 4 + __GLX_PAD((n * 4)); - if (__builtin_expect((n >= 0) && (dpy != NULL), 1)) { -#ifdef USE_XCB - XCBConnection *c = XCBConnectionOfDisplay(dpy); - (void) __glXFlushRenderBuffer(gc, gc->pc); - XCBGlxAreTexturesResidentRep *reply = XCBGlxAreTexturesResidentReply(c, XCBGlxAreTexturesResident(c, gc->currentContextTag, n, textures), NULL); - (void)memcpy(residences, XCBGlxAreTexturesResidentData(reply), XCBGlxAreTexturesResidentDataLength(reply) * sizeof(GLboolean)); - retval = reply->ret_val; - free(reply); -#else - GLubyte const * pc = __glXSetupSingleRequest(gc, X_GLsop_AreTexturesResident, cmdlen); - (void) memcpy((void *)(pc + 0), (void *)(&n), 4); - (void) memcpy((void *)(pc + 4), (void *)(textures), (n * 4)); - retval = (GLboolean) __glXReadReply(dpy, 1, residences, GL_TRUE); - UnlockDisplay(dpy); SyncHandle(); -#endif /* USE_XCB */ - } - return retval; -} - -#define X_GLrop_CopyTexImage1D 4119 -void -__indirect_glCopyTexImage1D(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 32; - emit_header(gc->pc, X_GLrop_CopyTexImage1D, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&target), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&level), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(&internalformat), 4); - (void) memcpy((void *)(gc->pc + 16), (void *)(&x), 4); - (void) memcpy((void *)(gc->pc + 20), (void *)(&y), 4); - (void) memcpy((void *)(gc->pc + 24), (void *)(&width), 4); - (void) memcpy((void *)(gc->pc + 28), (void *)(&border), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_CopyTexImage2D 4120 -void -__indirect_glCopyTexImage2D(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 36; - emit_header(gc->pc, X_GLrop_CopyTexImage2D, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&target), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&level), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(&internalformat), 4); - (void) memcpy((void *)(gc->pc + 16), (void *)(&x), 4); - (void) memcpy((void *)(gc->pc + 20), (void *)(&y), 4); - (void) memcpy((void *)(gc->pc + 24), (void *)(&width), 4); - (void) memcpy((void *)(gc->pc + 28), (void *)(&height), 4); - (void) memcpy((void *)(gc->pc + 32), (void *)(&border), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_CopyTexSubImage1D 4121 -void -__indirect_glCopyTexSubImage1D(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 28; - emit_header(gc->pc, X_GLrop_CopyTexSubImage1D, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&target), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&level), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(&xoffset), 4); - (void) memcpy((void *)(gc->pc + 16), (void *)(&x), 4); - (void) memcpy((void *)(gc->pc + 20), (void *)(&y), 4); - (void) memcpy((void *)(gc->pc + 24), (void *)(&width), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_CopyTexSubImage2D 4122 -void -__indirect_glCopyTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 36; - emit_header(gc->pc, X_GLrop_CopyTexSubImage2D, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&target), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&level), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(&xoffset), 4); - (void) memcpy((void *)(gc->pc + 16), (void *)(&yoffset), 4); - (void) memcpy((void *)(gc->pc + 20), (void *)(&x), 4); - (void) memcpy((void *)(gc->pc + 24), (void *)(&y), 4); - (void) memcpy((void *)(gc->pc + 28), (void *)(&width), 4); - (void) memcpy((void *)(gc->pc + 32), (void *)(&height), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLvop_DeleteTextures 12 -void -__indirect_glDeleteTextures(GLsizei n, const GLuint * textures) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - Display * const dpy = gc->currentDpy; - const GLuint cmdlen = 4 + __GLX_PAD((n * 4)); - if (__builtin_expect((n >= 0) && (dpy != NULL), 1)) { - GLubyte const * pc = __glXSetupVendorRequest(gc, X_GLXVendorPrivate, X_GLvop_DeleteTextures, cmdlen); - (void) memcpy((void *)(pc + 0), (void *)(&n), 4); - (void) memcpy((void *)(pc + 4), (void *)(textures), (n * 4)); - UnlockDisplay(dpy); SyncHandle(); - } - return; -} - -#define X_GLsop_GenTextures 145 -void -__indirect_glGenTextures(GLsizei n, GLuint * textures) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - Display * const dpy = gc->currentDpy; - const GLuint cmdlen = 4; - if (__builtin_expect((n >= 0) && (dpy != NULL), 1)) { -#ifdef USE_XCB - XCBConnection *c = XCBConnectionOfDisplay(dpy); - (void) __glXFlushRenderBuffer(gc, gc->pc); - XCBGlxGenTexturesRep *reply = XCBGlxGenTexturesReply(c, XCBGlxGenTextures(c, gc->currentContextTag, n), NULL); - (void)memcpy(textures, XCBGlxGenTexturesData(reply), XCBGlxGenTexturesDataLength(reply) * sizeof(GLuint)); - free(reply); -#else - GLubyte const * pc = __glXSetupSingleRequest(gc, X_GLsop_GenTextures, cmdlen); - (void) memcpy((void *)(pc + 0), (void *)(&n), 4); - (void) __glXReadReply(dpy, 4, textures, GL_TRUE); - UnlockDisplay(dpy); SyncHandle(); -#endif /* USE_XCB */ - } - return; -} - -#define X_GLsop_IsTexture 146 -GLboolean -__indirect_glIsTexture(GLuint texture) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - Display * const dpy = gc->currentDpy; - GLboolean retval = (GLboolean) 0; - const GLuint cmdlen = 4; - if (__builtin_expect(dpy != NULL, 1)) { -#ifdef USE_XCB - XCBConnection *c = XCBConnectionOfDisplay(dpy); - (void) __glXFlushRenderBuffer(gc, gc->pc); - XCBGlxIsTextureRep *reply = XCBGlxIsTextureReply(c, XCBGlxIsTexture(c, gc->currentContextTag, texture), NULL); - retval = reply->ret_val; - free(reply); -#else - GLubyte const * pc = __glXSetupSingleRequest(gc, X_GLsop_IsTexture, cmdlen); - (void) memcpy((void *)(pc + 0), (void *)(&texture), 4); - retval = (GLboolean) __glXReadReply(dpy, 0, NULL, GL_FALSE); - UnlockDisplay(dpy); SyncHandle(); -#endif /* USE_XCB */ - } - return retval; -} - -#define X_GLrop_PrioritizeTextures 4118 -void -__indirect_glPrioritizeTextures(GLsizei n, const GLuint * textures, const GLclampf * priorities) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 8 + __GLX_PAD((n * 4)) + __GLX_PAD((n * 4)); - if (__builtin_expect(n >= 0, 1)) { - emit_header(gc->pc, X_GLrop_PrioritizeTextures, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&n), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(textures), (n * 4)); - (void) memcpy((void *)(gc->pc + 8 + (n * 4)), (void *)(priorities), (n * 4)); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } - } -} - -static void -__glx_TexSubImage_1D2D( unsigned opcode, unsigned dim, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid * pixels ) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint compsize = (pixels != NULL) ? __glImageSize(width, height, 1, format, type, target) : 0; - const GLuint cmdlen = 60 + __GLX_PAD(compsize); - if (__builtin_expect(gc->currentDpy != NULL, 1)) { - if (cmdlen <= gc->maxSmallRenderCommandSize) { - if ( (gc->pc + cmdlen) > gc->bufEnd ) { - (void) __glXFlushRenderBuffer(gc, gc->pc); - } - emit_header(gc->pc, opcode, cmdlen); - (void) memcpy((void *)(gc->pc + 24), (void *)(&target), 4); - (void) memcpy((void *)(gc->pc + 28), (void *)(&level), 4); - (void) memcpy((void *)(gc->pc + 32), (void *)(&xoffset), 4); - (void) memcpy((void *)(gc->pc + 36), (void *)(&yoffset), 4); - (void) memcpy((void *)(gc->pc + 40), (void *)(&width), 4); - (void) memcpy((void *)(gc->pc + 44), (void *)(&height), 4); - (void) memcpy((void *)(gc->pc + 48), (void *)(&format), 4); - (void) memcpy((void *)(gc->pc + 52), (void *)(&type), 4); - (void) memcpy((void *)(gc->pc + 56), (void *)((pixels == NULL) ? one : zero), 4); - if (compsize > 0) { - (*gc->fillImage)(gc, dim, width, height, 1, format, type, pixels, gc->pc + 60, gc->pc + 4); - } - else { - (void) memcpy( gc->pc + 4, default_pixel_store_2D, default_pixel_store_2D_size ); - } - gc->pc += cmdlen; - if (gc->pc > gc->limit) { (void) __glXFlushRenderBuffer(gc, gc->pc); } - } - else { - const GLint op = opcode; - const GLuint cmdlenLarge = cmdlen + 4; - GLubyte * const pc = __glXFlushRenderBuffer(gc, gc->pc); - (void) memcpy((void *)(pc + 0), (void *)(&cmdlenLarge), 4); - (void) memcpy((void *)(pc + 4), (void *)(&op), 4); - (void) memcpy((void *)(pc + 28), (void *)(&target), 4); - (void) memcpy((void *)(pc + 32), (void *)(&level), 4); - (void) memcpy((void *)(pc + 36), (void *)(&xoffset), 4); - (void) memcpy((void *)(pc + 40), (void *)(&yoffset), 4); - (void) memcpy((void *)(pc + 44), (void *)(&width), 4); - (void) memcpy((void *)(pc + 48), (void *)(&height), 4); - (void) memcpy((void *)(pc + 52), (void *)(&format), 4); - (void) memcpy((void *)(pc + 56), (void *)(&type), 4); - (void) memcpy((void *)(pc + 60), zero, 4); - __glXSendLargeImage(gc, compsize, dim, width, height, 1, format, type, pixels, pc + 64, pc + 8); - } - } -} - -#define X_GLrop_TexSubImage1D 4099 -void -__indirect_glTexSubImage1D(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid * pixels) -{ - __glx_TexSubImage_1D2D(X_GLrop_TexSubImage1D, 1, target, level, xoffset, 1, width, 1, format, type, pixels ); -} - -#define X_GLrop_TexSubImage2D 4100 -void -__indirect_glTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid * pixels) -{ - __glx_TexSubImage_1D2D(X_GLrop_TexSubImage2D, 2, target, level, xoffset, yoffset, width, height, format, type, pixels ); -} - -#define X_GLrop_BlendColor 4096 -void -__indirect_glBlendColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 20; - emit_header(gc->pc, X_GLrop_BlendColor, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&red), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&green), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(&blue), 4); - (void) memcpy((void *)(gc->pc + 16), (void *)(&alpha), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_BlendEquation 4097 -void -__indirect_glBlendEquation(GLenum mode) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 8; - emit_header(gc->pc, X_GLrop_BlendEquation, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&mode), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_ColorTable 2053 -void -__indirect_glColorTable(GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid * table) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint compsize = (table != NULL) ? __glImageSize(width, 1, 1, format, type, target) : 0; - const GLuint cmdlen = 44 + __GLX_PAD(compsize); - if (__builtin_expect(gc->currentDpy != NULL, 1)) { - if (cmdlen <= gc->maxSmallRenderCommandSize) { - if ( (gc->pc + cmdlen) > gc->bufEnd ) { - (void) __glXFlushRenderBuffer(gc, gc->pc); - } - emit_header(gc->pc, X_GLrop_ColorTable, cmdlen); - (void) memcpy((void *)(gc->pc + 24), (void *)(&target), 4); - (void) memcpy((void *)(gc->pc + 28), (void *)(&internalformat), 4); - (void) memcpy((void *)(gc->pc + 32), (void *)(&width), 4); - (void) memcpy((void *)(gc->pc + 36), (void *)(&format), 4); - (void) memcpy((void *)(gc->pc + 40), (void *)(&type), 4); - if (compsize > 0) { - (*gc->fillImage)(gc, 1, width, 1, 1, format, type, table, gc->pc + 44, gc->pc + 4); - } - else { - (void) memcpy( gc->pc + 4, default_pixel_store_1D, default_pixel_store_1D_size ); - } - gc->pc += cmdlen; - if (gc->pc > gc->limit) { (void) __glXFlushRenderBuffer(gc, gc->pc); } - } - else { - const GLint op = X_GLrop_ColorTable; - const GLuint cmdlenLarge = cmdlen + 4; - GLubyte * const pc = __glXFlushRenderBuffer(gc, gc->pc); - (void) memcpy((void *)(pc + 0), (void *)(&cmdlenLarge), 4); - (void) memcpy((void *)(pc + 4), (void *)(&op), 4); - (void) memcpy((void *)(pc + 28), (void *)(&target), 4); - (void) memcpy((void *)(pc + 32), (void *)(&internalformat), 4); - (void) memcpy((void *)(pc + 36), (void *)(&width), 4); - (void) memcpy((void *)(pc + 40), (void *)(&format), 4); - (void) memcpy((void *)(pc + 44), (void *)(&type), 4); - __glXSendLargeImage(gc, compsize, 1, width, 1, 1, format, type, table, pc + 48, pc + 8); - } - } -} - -#define X_GLrop_ColorTableParameterfv 2054 -void -__indirect_glColorTableParameterfv(GLenum target, GLenum pname, const GLfloat * params) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint compsize = __glColorTableParameterfv_size(pname); - const GLuint cmdlen = 12 + __GLX_PAD((compsize * 4)); - emit_header(gc->pc, X_GLrop_ColorTableParameterfv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&target), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&pname), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(params), (compsize * 4)); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_ColorTableParameteriv 2055 -void -__indirect_glColorTableParameteriv(GLenum target, GLenum pname, const GLint * params) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint compsize = __glColorTableParameteriv_size(pname); - const GLuint cmdlen = 12 + __GLX_PAD((compsize * 4)); - emit_header(gc->pc, X_GLrop_ColorTableParameteriv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&target), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&pname), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(params), (compsize * 4)); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_CopyColorTable 2056 -void -__indirect_glCopyColorTable(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 24; - emit_header(gc->pc, X_GLrop_CopyColorTable, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&target), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&internalformat), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(&x), 4); - (void) memcpy((void *)(gc->pc + 16), (void *)(&y), 4); - (void) memcpy((void *)(gc->pc + 20), (void *)(&width), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLsop_GetColorTable 147 -void -__indirect_glGetColorTable(GLenum target, GLenum format, GLenum type, GLvoid * table) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const __GLXattribute * const state = gc->client_state_private; - Display * const dpy = gc->currentDpy; - const GLuint cmdlen = 16; - if (__builtin_expect(dpy != NULL, 1)) { -#ifdef USE_XCB - XCBConnection *c = XCBConnectionOfDisplay(dpy); - (void) __glXFlushRenderBuffer(gc, gc->pc); - XCBGlxGetColorTableRep *reply = XCBGlxGetColorTableReply(c, XCBGlxGetColorTable(c, gc->currentContextTag, target, format, type, state->storePack.swapEndian), NULL); - (void)memcpy(table, XCBGlxGetColorTableData(reply), XCBGlxGetColorTableDataLength(reply) * sizeof(GLvoid)); - free(reply); -#else - GLubyte const * pc = __glXSetupSingleRequest(gc, X_GLsop_GetColorTable, cmdlen); - (void) memcpy((void *)(pc + 0), (void *)(&target), 4); - (void) memcpy((void *)(pc + 4), (void *)(&format), 4); - (void) memcpy((void *)(pc + 8), (void *)(&type), 4); - *(int32_t *)(pc + 12) = 0; - * (int8_t *)(pc + 12) = state->storePack.swapEndian; - __glXReadPixelReply(dpy, gc, 1, 0, 0, 0, format, type, table, GL_TRUE); - UnlockDisplay(dpy); SyncHandle(); -#endif /* USE_XCB */ - } - return; -} - -#define X_GLsop_GetColorTableParameterfv 148 -void -__indirect_glGetColorTableParameterfv(GLenum target, GLenum pname, GLfloat * params) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - Display * const dpy = gc->currentDpy; - const GLuint cmdlen = 8; - if (__builtin_expect(dpy != NULL, 1)) { -#ifdef USE_XCB - XCBConnection *c = XCBConnectionOfDisplay(dpy); - (void) __glXFlushRenderBuffer(gc, gc->pc); - XCBGlxGetColorTableParameterfvRep *reply = XCBGlxGetColorTableParameterfvReply(c, XCBGlxGetColorTableParameterfv(c, gc->currentContextTag, target, pname), NULL); - if (XCBGlxGetColorTableParameterfvDataLength(reply) == 0) - (void)memcpy(params, &reply->datum, sizeof(reply->datum)); - else - (void)memcpy(params, XCBGlxGetColorTableParameterfvData(reply), XCBGlxGetColorTableParameterfvDataLength(reply) * sizeof(GLfloat)); - free(reply); -#else - GLubyte const * pc = __glXSetupSingleRequest(gc, X_GLsop_GetColorTableParameterfv, cmdlen); - (void) memcpy((void *)(pc + 0), (void *)(&target), 4); - (void) memcpy((void *)(pc + 4), (void *)(&pname), 4); - (void) __glXReadReply(dpy, 4, params, GL_FALSE); - UnlockDisplay(dpy); SyncHandle(); -#endif /* USE_XCB */ - } - return; -} - -#define X_GLsop_GetColorTableParameteriv 149 -void -__indirect_glGetColorTableParameteriv(GLenum target, GLenum pname, GLint * params) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - Display * const dpy = gc->currentDpy; - const GLuint cmdlen = 8; - if (__builtin_expect(dpy != NULL, 1)) { -#ifdef USE_XCB - XCBConnection *c = XCBConnectionOfDisplay(dpy); - (void) __glXFlushRenderBuffer(gc, gc->pc); - XCBGlxGetColorTableParameterivRep *reply = XCBGlxGetColorTableParameterivReply(c, XCBGlxGetColorTableParameteriv(c, gc->currentContextTag, target, pname), NULL); - if (XCBGlxGetColorTableParameterivDataLength(reply) == 0) - (void)memcpy(params, &reply->datum, sizeof(reply->datum)); - else - (void)memcpy(params, XCBGlxGetColorTableParameterivData(reply), XCBGlxGetColorTableParameterivDataLength(reply) * sizeof(GLint)); - free(reply); -#else - GLubyte const * pc = __glXSetupSingleRequest(gc, X_GLsop_GetColorTableParameteriv, cmdlen); - (void) memcpy((void *)(pc + 0), (void *)(&target), 4); - (void) memcpy((void *)(pc + 4), (void *)(&pname), 4); - (void) __glXReadReply(dpy, 4, params, GL_FALSE); - UnlockDisplay(dpy); SyncHandle(); -#endif /* USE_XCB */ - } - return; -} - -#define X_GLrop_ColorSubTable 195 -void -__indirect_glColorSubTable(GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid * data) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint compsize = (data != NULL) ? __glImageSize(count, 1, 1, format, type, target) : 0; - const GLuint cmdlen = 44 + __GLX_PAD(compsize); - if (__builtin_expect(gc->currentDpy != NULL, 1)) { - if (cmdlen <= gc->maxSmallRenderCommandSize) { - if ( (gc->pc + cmdlen) > gc->bufEnd ) { - (void) __glXFlushRenderBuffer(gc, gc->pc); - } - emit_header(gc->pc, X_GLrop_ColorSubTable, cmdlen); - (void) memcpy((void *)(gc->pc + 24), (void *)(&target), 4); - (void) memcpy((void *)(gc->pc + 28), (void *)(&start), 4); - (void) memcpy((void *)(gc->pc + 32), (void *)(&count), 4); - (void) memcpy((void *)(gc->pc + 36), (void *)(&format), 4); - (void) memcpy((void *)(gc->pc + 40), (void *)(&type), 4); - if (compsize > 0) { - (*gc->fillImage)(gc, 1, count, 1, 1, format, type, data, gc->pc + 44, gc->pc + 4); - } - else { - (void) memcpy( gc->pc + 4, default_pixel_store_1D, default_pixel_store_1D_size ); - } - gc->pc += cmdlen; - if (gc->pc > gc->limit) { (void) __glXFlushRenderBuffer(gc, gc->pc); } - } - else { - const GLint op = X_GLrop_ColorSubTable; - const GLuint cmdlenLarge = cmdlen + 4; - GLubyte * const pc = __glXFlushRenderBuffer(gc, gc->pc); - (void) memcpy((void *)(pc + 0), (void *)(&cmdlenLarge), 4); - (void) memcpy((void *)(pc + 4), (void *)(&op), 4); - (void) memcpy((void *)(pc + 28), (void *)(&target), 4); - (void) memcpy((void *)(pc + 32), (void *)(&start), 4); - (void) memcpy((void *)(pc + 36), (void *)(&count), 4); - (void) memcpy((void *)(pc + 40), (void *)(&format), 4); - (void) memcpy((void *)(pc + 44), (void *)(&type), 4); - __glXSendLargeImage(gc, compsize, 1, count, 1, 1, format, type, data, pc + 48, pc + 8); - } - } -} - -#define X_GLrop_CopyColorSubTable 196 -void -__indirect_glCopyColorSubTable(GLenum target, GLsizei start, GLint x, GLint y, GLsizei width) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 24; - emit_header(gc->pc, X_GLrop_CopyColorSubTable, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&target), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&start), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(&x), 4); - (void) memcpy((void *)(gc->pc + 16), (void *)(&y), 4); - (void) memcpy((void *)(gc->pc + 20), (void *)(&width), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -static void -__glx_ConvolutionFilter_1D2D( unsigned opcode, unsigned dim, GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid * image ) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint compsize = (image != NULL) ? __glImageSize(width, height, 1, format, type, target) : 0; - const GLuint cmdlen = 48 + __GLX_PAD(compsize); - if (__builtin_expect(gc->currentDpy != NULL, 1)) { - if (cmdlen <= gc->maxSmallRenderCommandSize) { - if ( (gc->pc + cmdlen) > gc->bufEnd ) { - (void) __glXFlushRenderBuffer(gc, gc->pc); - } - emit_header(gc->pc, opcode, cmdlen); - (void) memcpy((void *)(gc->pc + 24), (void *)(&target), 4); - (void) memcpy((void *)(gc->pc + 28), (void *)(&internalformat), 4); - (void) memcpy((void *)(gc->pc + 32), (void *)(&width), 4); - (void) memcpy((void *)(gc->pc + 36), (void *)(&height), 4); - (void) memcpy((void *)(gc->pc + 40), (void *)(&format), 4); - (void) memcpy((void *)(gc->pc + 44), (void *)(&type), 4); - if (compsize > 0) { - (*gc->fillImage)(gc, dim, width, height, 1, format, type, image, gc->pc + 48, gc->pc + 4); - } - else { - (void) memcpy( gc->pc + 4, default_pixel_store_2D, default_pixel_store_2D_size ); - } - gc->pc += cmdlen; - if (gc->pc > gc->limit) { (void) __glXFlushRenderBuffer(gc, gc->pc); } - } - else { - const GLint op = opcode; - const GLuint cmdlenLarge = cmdlen + 4; - GLubyte * const pc = __glXFlushRenderBuffer(gc, gc->pc); - (void) memcpy((void *)(pc + 0), (void *)(&cmdlenLarge), 4); - (void) memcpy((void *)(pc + 4), (void *)(&op), 4); - (void) memcpy((void *)(pc + 28), (void *)(&target), 4); - (void) memcpy((void *)(pc + 32), (void *)(&internalformat), 4); - (void) memcpy((void *)(pc + 36), (void *)(&width), 4); - (void) memcpy((void *)(pc + 40), (void *)(&height), 4); - (void) memcpy((void *)(pc + 44), (void *)(&format), 4); - (void) memcpy((void *)(pc + 48), (void *)(&type), 4); - __glXSendLargeImage(gc, compsize, dim, width, height, 1, format, type, image, pc + 52, pc + 8); - } - } -} - -#define X_GLrop_ConvolutionFilter1D 4101 -void -__indirect_glConvolutionFilter1D(GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid * image) -{ - __glx_ConvolutionFilter_1D2D(X_GLrop_ConvolutionFilter1D, 1, target, internalformat, width, 1, format, type, image ); -} - -#define X_GLrop_ConvolutionFilter2D 4102 -void -__indirect_glConvolutionFilter2D(GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid * image) -{ - __glx_ConvolutionFilter_1D2D(X_GLrop_ConvolutionFilter2D, 2, target, internalformat, width, height, format, type, image ); -} - -#define X_GLrop_ConvolutionParameterf 4103 -void -__indirect_glConvolutionParameterf(GLenum target, GLenum pname, GLfloat params) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 16; - emit_header(gc->pc, X_GLrop_ConvolutionParameterf, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&target), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&pname), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(¶ms), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_ConvolutionParameterfv 4104 -void -__indirect_glConvolutionParameterfv(GLenum target, GLenum pname, const GLfloat * params) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint compsize = __glConvolutionParameterfv_size(pname); - const GLuint cmdlen = 12 + __GLX_PAD((compsize * 4)); - emit_header(gc->pc, X_GLrop_ConvolutionParameterfv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&target), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&pname), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(params), (compsize * 4)); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_ConvolutionParameteri 4105 -void -__indirect_glConvolutionParameteri(GLenum target, GLenum pname, GLint params) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 16; - emit_header(gc->pc, X_GLrop_ConvolutionParameteri, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&target), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&pname), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(¶ms), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_ConvolutionParameteriv 4106 -void -__indirect_glConvolutionParameteriv(GLenum target, GLenum pname, const GLint * params) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint compsize = __glConvolutionParameteriv_size(pname); - const GLuint cmdlen = 12 + __GLX_PAD((compsize * 4)); - emit_header(gc->pc, X_GLrop_ConvolutionParameteriv, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&target), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&pname), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(params), (compsize * 4)); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_CopyConvolutionFilter1D 4107 -void -__indirect_glCopyConvolutionFilter1D(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 24; - emit_header(gc->pc, X_GLrop_CopyConvolutionFilter1D, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&target), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&internalformat), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(&x), 4); - (void) memcpy((void *)(gc->pc + 16), (void *)(&y), 4); - (void) memcpy((void *)(gc->pc + 20), (void *)(&width), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_CopyConvolutionFilter2D 4108 -void -__indirect_glCopyConvolutionFilter2D(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 28; - emit_header(gc->pc, X_GLrop_CopyConvolutionFilter2D, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&target), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&internalformat), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(&x), 4); - (void) memcpy((void *)(gc->pc + 16), (void *)(&y), 4); - (void) memcpy((void *)(gc->pc + 20), (void *)(&width), 4); - (void) memcpy((void *)(gc->pc + 24), (void *)(&height), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLsop_GetConvolutionFilter 150 -void -__indirect_glGetConvolutionFilter(GLenum target, GLenum format, GLenum type, GLvoid * image) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const __GLXattribute * const state = gc->client_state_private; - Display * const dpy = gc->currentDpy; - const GLuint cmdlen = 16; - if (__builtin_expect(dpy != NULL, 1)) { -#ifdef USE_XCB - XCBConnection *c = XCBConnectionOfDisplay(dpy); - (void) __glXFlushRenderBuffer(gc, gc->pc); - XCBGlxGetConvolutionFilterRep *reply = XCBGlxGetConvolutionFilterReply(c, XCBGlxGetConvolutionFilter(c, gc->currentContextTag, target, format, type, state->storePack.swapEndian), NULL); - (void)memcpy(image, XCBGlxGetConvolutionFilterData(reply), XCBGlxGetConvolutionFilterDataLength(reply) * sizeof(GLvoid)); - free(reply); -#else - GLubyte const * pc = __glXSetupSingleRequest(gc, X_GLsop_GetConvolutionFilter, cmdlen); - (void) memcpy((void *)(pc + 0), (void *)(&target), 4); - (void) memcpy((void *)(pc + 4), (void *)(&format), 4); - (void) memcpy((void *)(pc + 8), (void *)(&type), 4); - *(int32_t *)(pc + 12) = 0; - * (int8_t *)(pc + 12) = state->storePack.swapEndian; - __glXReadPixelReply(dpy, gc, 2, 0, 0, 0, format, type, image, GL_TRUE); - UnlockDisplay(dpy); SyncHandle(); -#endif /* USE_XCB */ - } - return; -} - -#define X_GLsop_GetConvolutionParameterfv 151 -void -__indirect_glGetConvolutionParameterfv(GLenum target, GLenum pname, GLfloat * params) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - Display * const dpy = gc->currentDpy; - const GLuint cmdlen = 8; - if (__builtin_expect(dpy != NULL, 1)) { -#ifdef USE_XCB - XCBConnection *c = XCBConnectionOfDisplay(dpy); - (void) __glXFlushRenderBuffer(gc, gc->pc); - XCBGlxGetConvolutionParameterfvRep *reply = XCBGlxGetConvolutionParameterfvReply(c, XCBGlxGetConvolutionParameterfv(c, gc->currentContextTag, target, pname), NULL); - if (XCBGlxGetConvolutionParameterfvDataLength(reply) == 0) - (void)memcpy(params, &reply->datum, sizeof(reply->datum)); - else - (void)memcpy(params, XCBGlxGetConvolutionParameterfvData(reply), XCBGlxGetConvolutionParameterfvDataLength(reply) * sizeof(GLfloat)); - free(reply); -#else - GLubyte const * pc = __glXSetupSingleRequest(gc, X_GLsop_GetConvolutionParameterfv, cmdlen); - (void) memcpy((void *)(pc + 0), (void *)(&target), 4); - (void) memcpy((void *)(pc + 4), (void *)(&pname), 4); - (void) __glXReadReply(dpy, 4, params, GL_FALSE); - UnlockDisplay(dpy); SyncHandle(); -#endif /* USE_XCB */ - } - return; -} - -#define X_GLsop_GetConvolutionParameteriv 152 -void -__indirect_glGetConvolutionParameteriv(GLenum target, GLenum pname, GLint * params) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - Display * const dpy = gc->currentDpy; - const GLuint cmdlen = 8; - if (__builtin_expect(dpy != NULL, 1)) { -#ifdef USE_XCB - XCBConnection *c = XCBConnectionOfDisplay(dpy); - (void) __glXFlushRenderBuffer(gc, gc->pc); - XCBGlxGetConvolutionParameterivRep *reply = XCBGlxGetConvolutionParameterivReply(c, XCBGlxGetConvolutionParameteriv(c, gc->currentContextTag, target, pname), NULL); - if (XCBGlxGetConvolutionParameterivDataLength(reply) == 0) - (void)memcpy(params, &reply->datum, sizeof(reply->datum)); - else - (void)memcpy(params, XCBGlxGetConvolutionParameterivData(reply), XCBGlxGetConvolutionParameterivDataLength(reply) * sizeof(GLint)); - free(reply); -#else - GLubyte const * pc = __glXSetupSingleRequest(gc, X_GLsop_GetConvolutionParameteriv, cmdlen); - (void) memcpy((void *)(pc + 0), (void *)(&target), 4); - (void) memcpy((void *)(pc + 4), (void *)(&pname), 4); - (void) __glXReadReply(dpy, 4, params, GL_FALSE); - UnlockDisplay(dpy); SyncHandle(); -#endif /* USE_XCB */ - } - return; -} - -#define X_GLsop_GetHistogram 154 -void -__indirect_glGetHistogram(GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid * values) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const __GLXattribute * const state = gc->client_state_private; - Display * const dpy = gc->currentDpy; - const GLuint cmdlen = 16; - if (__builtin_expect(dpy != NULL, 1)) { -#ifdef USE_XCB - XCBConnection *c = XCBConnectionOfDisplay(dpy); - (void) __glXFlushRenderBuffer(gc, gc->pc); - XCBGlxGetHistogramRep *reply = XCBGlxGetHistogramReply(c, XCBGlxGetHistogram(c, gc->currentContextTag, target, reset, format, type, state->storePack.swapEndian), NULL); - (void)memcpy(values, XCBGlxGetHistogramData(reply), XCBGlxGetHistogramDataLength(reply) * sizeof(GLvoid)); - free(reply); -#else - GLubyte const * pc = __glXSetupSingleRequest(gc, X_GLsop_GetHistogram, cmdlen); - (void) memcpy((void *)(pc + 0), (void *)(&target), 4); - (void) memcpy((void *)(pc + 4), (void *)(&format), 4); - (void) memcpy((void *)(pc + 8), (void *)(&type), 4); - *(int32_t *)(pc + 12) = 0; - * (int8_t *)(pc + 12) = state->storePack.swapEndian; - * (int8_t *)(pc + 13) = reset; - __glXReadPixelReply(dpy, gc, 1, 0, 0, 0, format, type, values, GL_TRUE); - UnlockDisplay(dpy); SyncHandle(); -#endif /* USE_XCB */ - } - return; -} - -#define X_GLsop_GetHistogramParameterfv 155 -void -__indirect_glGetHistogramParameterfv(GLenum target, GLenum pname, GLfloat * params) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - Display * const dpy = gc->currentDpy; - const GLuint cmdlen = 8; - if (__builtin_expect(dpy != NULL, 1)) { -#ifdef USE_XCB - XCBConnection *c = XCBConnectionOfDisplay(dpy); - (void) __glXFlushRenderBuffer(gc, gc->pc); - XCBGlxGetHistogramParameterfvRep *reply = XCBGlxGetHistogramParameterfvReply(c, XCBGlxGetHistogramParameterfv(c, gc->currentContextTag, target, pname), NULL); - if (XCBGlxGetHistogramParameterfvDataLength(reply) == 0) - (void)memcpy(params, &reply->datum, sizeof(reply->datum)); - else - (void)memcpy(params, XCBGlxGetHistogramParameterfvData(reply), XCBGlxGetHistogramParameterfvDataLength(reply) * sizeof(GLfloat)); - free(reply); -#else - GLubyte const * pc = __glXSetupSingleRequest(gc, X_GLsop_GetHistogramParameterfv, cmdlen); - (void) memcpy((void *)(pc + 0), (void *)(&target), 4); - (void) memcpy((void *)(pc + 4), (void *)(&pname), 4); - (void) __glXReadReply(dpy, 4, params, GL_FALSE); - UnlockDisplay(dpy); SyncHandle(); -#endif /* USE_XCB */ - } - return; -} - -#define X_GLsop_GetHistogramParameteriv 156 -void -__indirect_glGetHistogramParameteriv(GLenum target, GLenum pname, GLint * params) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - Display * const dpy = gc->currentDpy; - const GLuint cmdlen = 8; - if (__builtin_expect(dpy != NULL, 1)) { -#ifdef USE_XCB - XCBConnection *c = XCBConnectionOfDisplay(dpy); - (void) __glXFlushRenderBuffer(gc, gc->pc); - XCBGlxGetHistogramParameterivRep *reply = XCBGlxGetHistogramParameterivReply(c, XCBGlxGetHistogramParameteriv(c, gc->currentContextTag, target, pname), NULL); - if (XCBGlxGetHistogramParameterivDataLength(reply) == 0) - (void)memcpy(params, &reply->datum, sizeof(reply->datum)); - else - (void)memcpy(params, XCBGlxGetHistogramParameterivData(reply), XCBGlxGetHistogramParameterivDataLength(reply) * sizeof(GLint)); - free(reply); -#else - GLubyte const * pc = __glXSetupSingleRequest(gc, X_GLsop_GetHistogramParameteriv, cmdlen); - (void) memcpy((void *)(pc + 0), (void *)(&target), 4); - (void) memcpy((void *)(pc + 4), (void *)(&pname), 4); - (void) __glXReadReply(dpy, 4, params, GL_FALSE); - UnlockDisplay(dpy); SyncHandle(); -#endif /* USE_XCB */ - } - return; -} - -#define X_GLsop_GetMinmax 157 -void -__indirect_glGetMinmax(GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid * values) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const __GLXattribute * const state = gc->client_state_private; - Display * const dpy = gc->currentDpy; - const GLuint cmdlen = 16; - if (__builtin_expect(dpy != NULL, 1)) { -#ifdef USE_XCB - XCBConnection *c = XCBConnectionOfDisplay(dpy); - (void) __glXFlushRenderBuffer(gc, gc->pc); - XCBGlxGetMinmaxRep *reply = XCBGlxGetMinmaxReply(c, XCBGlxGetMinmax(c, gc->currentContextTag, target, reset, format, type, state->storePack.swapEndian), NULL); - (void)memcpy(values, XCBGlxGetMinmaxData(reply), XCBGlxGetMinmaxDataLength(reply) * sizeof(GLvoid)); - free(reply); -#else - GLubyte const * pc = __glXSetupSingleRequest(gc, X_GLsop_GetMinmax, cmdlen); - (void) memcpy((void *)(pc + 0), (void *)(&target), 4); - (void) memcpy((void *)(pc + 4), (void *)(&format), 4); - (void) memcpy((void *)(pc + 8), (void *)(&type), 4); - *(int32_t *)(pc + 12) = 0; - * (int8_t *)(pc + 12) = state->storePack.swapEndian; - * (int8_t *)(pc + 13) = reset; - __glXReadPixelReply(dpy, gc, 1, 2, 1, 1, format, type, values, GL_FALSE); - UnlockDisplay(dpy); SyncHandle(); -#endif /* USE_XCB */ - } - return; -} - -#define X_GLsop_GetMinmaxParameterfv 158 -void -__indirect_glGetMinmaxParameterfv(GLenum target, GLenum pname, GLfloat * params) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - Display * const dpy = gc->currentDpy; - const GLuint cmdlen = 8; - if (__builtin_expect(dpy != NULL, 1)) { -#ifdef USE_XCB - XCBConnection *c = XCBConnectionOfDisplay(dpy); - (void) __glXFlushRenderBuffer(gc, gc->pc); - XCBGlxGetMinmaxParameterfvRep *reply = XCBGlxGetMinmaxParameterfvReply(c, XCBGlxGetMinmaxParameterfv(c, gc->currentContextTag, target, pname), NULL); - if (XCBGlxGetMinmaxParameterfvDataLength(reply) == 0) - (void)memcpy(params, &reply->datum, sizeof(reply->datum)); - else - (void)memcpy(params, XCBGlxGetMinmaxParameterfvData(reply), XCBGlxGetMinmaxParameterfvDataLength(reply) * sizeof(GLfloat)); - free(reply); -#else - GLubyte const * pc = __glXSetupSingleRequest(gc, X_GLsop_GetMinmaxParameterfv, cmdlen); - (void) memcpy((void *)(pc + 0), (void *)(&target), 4); - (void) memcpy((void *)(pc + 4), (void *)(&pname), 4); - (void) __glXReadReply(dpy, 4, params, GL_FALSE); - UnlockDisplay(dpy); SyncHandle(); -#endif /* USE_XCB */ - } - return; -} - -#define X_GLsop_GetMinmaxParameteriv 159 -void -__indirect_glGetMinmaxParameteriv(GLenum target, GLenum pname, GLint * params) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - Display * const dpy = gc->currentDpy; - const GLuint cmdlen = 8; - if (__builtin_expect(dpy != NULL, 1)) { -#ifdef USE_XCB - XCBConnection *c = XCBConnectionOfDisplay(dpy); - (void) __glXFlushRenderBuffer(gc, gc->pc); - XCBGlxGetMinmaxParameterivRep *reply = XCBGlxGetMinmaxParameterivReply(c, XCBGlxGetMinmaxParameteriv(c, gc->currentContextTag, target, pname), NULL); - if (XCBGlxGetMinmaxParameterivDataLength(reply) == 0) - (void)memcpy(params, &reply->datum, sizeof(reply->datum)); - else - (void)memcpy(params, XCBGlxGetMinmaxParameterivData(reply), XCBGlxGetMinmaxParameterivDataLength(reply) * sizeof(GLint)); - free(reply); -#else - GLubyte const * pc = __glXSetupSingleRequest(gc, X_GLsop_GetMinmaxParameteriv, cmdlen); - (void) memcpy((void *)(pc + 0), (void *)(&target), 4); - (void) memcpy((void *)(pc + 4), (void *)(&pname), 4); - (void) __glXReadReply(dpy, 4, params, GL_FALSE); - UnlockDisplay(dpy); SyncHandle(); -#endif /* USE_XCB */ - } - return; -} - -#define X_GLrop_Histogram 4110 -void -__indirect_glHistogram(GLenum target, GLsizei width, GLenum internalformat, GLboolean sink) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 20; - emit_header(gc->pc, X_GLrop_Histogram, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&target), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&width), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(&internalformat), 4); - (void) memcpy((void *)(gc->pc + 16), (void *)(&sink), 1); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_Minmax 4111 -void -__indirect_glMinmax(GLenum target, GLenum internalformat, GLboolean sink) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 16; - emit_header(gc->pc, X_GLrop_Minmax, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&target), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&internalformat), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(&sink), 1); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_ResetHistogram 4112 -void -__indirect_glResetHistogram(GLenum target) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 8; - emit_header(gc->pc, X_GLrop_ResetHistogram, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&target), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_ResetMinmax 4113 -void -__indirect_glResetMinmax(GLenum target) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 8; - emit_header(gc->pc, X_GLrop_ResetMinmax, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&target), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -static void -__glx_TexImage_3D4D( unsigned opcode, unsigned dim, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLsizei extent, GLint border, GLenum format, GLenum type, const GLvoid * pixels ) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint compsize = (pixels != NULL) ? __glImageSize(width, height, depth, format, type, target) : 0; - const GLuint cmdlen = 84 + __GLX_PAD(compsize); - if (__builtin_expect(gc->currentDpy != NULL, 1)) { - if (cmdlen <= gc->maxSmallRenderCommandSize) { - if ( (gc->pc + cmdlen) > gc->bufEnd ) { - (void) __glXFlushRenderBuffer(gc, gc->pc); - } - emit_header(gc->pc, opcode, cmdlen); - (void) memcpy((void *)(gc->pc + 40), (void *)(&target), 4); - (void) memcpy((void *)(gc->pc + 44), (void *)(&level), 4); - (void) memcpy((void *)(gc->pc + 48), (void *)(&internalformat), 4); - (void) memcpy((void *)(gc->pc + 52), (void *)(&width), 4); - (void) memcpy((void *)(gc->pc + 56), (void *)(&height), 4); - (void) memcpy((void *)(gc->pc + 60), (void *)(&depth), 4); - (void) memcpy((void *)(gc->pc + 64), (void *)(&extent), 4); - (void) memcpy((void *)(gc->pc + 68), (void *)(&border), 4); - (void) memcpy((void *)(gc->pc + 72), (void *)(&format), 4); - (void) memcpy((void *)(gc->pc + 76), (void *)(&type), 4); - (void) memcpy((void *)(gc->pc + 80), (void *)((pixels == NULL) ? one : zero), 4); - if (compsize > 0) { - (*gc->fillImage)(gc, dim, width, height, depth, format, type, pixels, gc->pc + 84, gc->pc + 4); - } - else { - (void) memcpy( gc->pc + 4, default_pixel_store_4D, default_pixel_store_4D_size ); - } - gc->pc += cmdlen; - if (gc->pc > gc->limit) { (void) __glXFlushRenderBuffer(gc, gc->pc); } - } - else { - const GLint op = opcode; - const GLuint cmdlenLarge = cmdlen + 4; - GLubyte * const pc = __glXFlushRenderBuffer(gc, gc->pc); - (void) memcpy((void *)(pc + 0), (void *)(&cmdlenLarge), 4); - (void) memcpy((void *)(pc + 4), (void *)(&op), 4); - (void) memcpy((void *)(pc + 44), (void *)(&target), 4); - (void) memcpy((void *)(pc + 48), (void *)(&level), 4); - (void) memcpy((void *)(pc + 52), (void *)(&internalformat), 4); - (void) memcpy((void *)(pc + 56), (void *)(&width), 4); - (void) memcpy((void *)(pc + 60), (void *)(&height), 4); - (void) memcpy((void *)(pc + 64), (void *)(&depth), 4); - (void) memcpy((void *)(pc + 68), (void *)(&extent), 4); - (void) memcpy((void *)(pc + 72), (void *)(&border), 4); - (void) memcpy((void *)(pc + 76), (void *)(&format), 4); - (void) memcpy((void *)(pc + 80), (void *)(&type), 4); - (void) memcpy((void *)(pc + 84), zero, 4); - __glXSendLargeImage(gc, compsize, dim, width, height, depth, format, type, pixels, pc + 88, pc + 8); - } - } -} - -#define X_GLrop_TexImage3D 4114 -void -__indirect_glTexImage3D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid * pixels) -{ - __glx_TexImage_3D4D(X_GLrop_TexImage3D, 3, target, level, internalformat, width, height, depth, 1, border, format, type, pixels ); -} - -static void -__glx_TexSubImage_3D4D( unsigned opcode, unsigned dim, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint woffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei extent, GLenum format, GLenum type, const GLvoid * pixels ) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint compsize = (pixels != NULL) ? __glImageSize(width, height, depth, format, type, target) : 0; - const GLuint cmdlen = 92 + __GLX_PAD(compsize); - if (__builtin_expect(gc->currentDpy != NULL, 1)) { - if (cmdlen <= gc->maxSmallRenderCommandSize) { - if ( (gc->pc + cmdlen) > gc->bufEnd ) { - (void) __glXFlushRenderBuffer(gc, gc->pc); - } - emit_header(gc->pc, opcode, cmdlen); - (void) memcpy((void *)(gc->pc + 40), (void *)(&target), 4); - (void) memcpy((void *)(gc->pc + 44), (void *)(&level), 4); - (void) memcpy((void *)(gc->pc + 48), (void *)(&xoffset), 4); - (void) memcpy((void *)(gc->pc + 52), (void *)(&yoffset), 4); - (void) memcpy((void *)(gc->pc + 56), (void *)(&zoffset), 4); - (void) memcpy((void *)(gc->pc + 60), (void *)(&woffset), 4); - (void) memcpy((void *)(gc->pc + 64), (void *)(&width), 4); - (void) memcpy((void *)(gc->pc + 68), (void *)(&height), 4); - (void) memcpy((void *)(gc->pc + 72), (void *)(&depth), 4); - (void) memcpy((void *)(gc->pc + 76), (void *)(&extent), 4); - (void) memcpy((void *)(gc->pc + 80), (void *)(&format), 4); - (void) memcpy((void *)(gc->pc + 84), (void *)(&type), 4); - (void) memcpy((void *)(gc->pc + 88), (void *)((pixels == NULL) ? one : zero), 4); - if (compsize > 0) { - (*gc->fillImage)(gc, dim, width, height, depth, format, type, pixels, gc->pc + 92, gc->pc + 4); - } - else { - (void) memcpy( gc->pc + 4, default_pixel_store_4D, default_pixel_store_4D_size ); - } - gc->pc += cmdlen; - if (gc->pc > gc->limit) { (void) __glXFlushRenderBuffer(gc, gc->pc); } - } - else { - const GLint op = opcode; - const GLuint cmdlenLarge = cmdlen + 4; - GLubyte * const pc = __glXFlushRenderBuffer(gc, gc->pc); - (void) memcpy((void *)(pc + 0), (void *)(&cmdlenLarge), 4); - (void) memcpy((void *)(pc + 4), (void *)(&op), 4); - (void) memcpy((void *)(pc + 44), (void *)(&target), 4); - (void) memcpy((void *)(pc + 48), (void *)(&level), 4); - (void) memcpy((void *)(pc + 52), (void *)(&xoffset), 4); - (void) memcpy((void *)(pc + 56), (void *)(&yoffset), 4); - (void) memcpy((void *)(pc + 60), (void *)(&zoffset), 4); - (void) memcpy((void *)(pc + 64), (void *)(&woffset), 4); - (void) memcpy((void *)(pc + 68), (void *)(&width), 4); - (void) memcpy((void *)(pc + 72), (void *)(&height), 4); - (void) memcpy((void *)(pc + 76), (void *)(&depth), 4); - (void) memcpy((void *)(pc + 80), (void *)(&extent), 4); - (void) memcpy((void *)(pc + 84), (void *)(&format), 4); - (void) memcpy((void *)(pc + 88), (void *)(&type), 4); - (void) memcpy((void *)(pc + 92), zero, 4); - __glXSendLargeImage(gc, compsize, dim, width, height, depth, format, type, pixels, pc + 96, pc + 8); - } - } -} - -#define X_GLrop_TexSubImage3D 4115 -void -__indirect_glTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid * pixels) -{ - __glx_TexSubImage_3D4D(X_GLrop_TexSubImage3D, 3, target, level, xoffset, yoffset, zoffset, 1, width, height, depth, 1, format, type, pixels ); -} - -#define X_GLrop_CopyTexSubImage3D 4123 -void -__indirect_glCopyTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 40; - emit_header(gc->pc, X_GLrop_CopyTexSubImage3D, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&target), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&level), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(&xoffset), 4); - (void) memcpy((void *)(gc->pc + 16), (void *)(&yoffset), 4); - (void) memcpy((void *)(gc->pc + 20), (void *)(&zoffset), 4); - (void) memcpy((void *)(gc->pc + 24), (void *)(&x), 4); - (void) memcpy((void *)(gc->pc + 28), (void *)(&y), 4); - (void) memcpy((void *)(gc->pc + 32), (void *)(&width), 4); - (void) memcpy((void *)(gc->pc + 36), (void *)(&height), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_ActiveTextureARB 197 -void -__indirect_glActiveTextureARB(GLenum texture) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 8; - emit_header(gc->pc, X_GLrop_ActiveTextureARB, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&texture), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_MultiTexCoord1dvARB 198 -void -__indirect_glMultiTexCoord1dARB(GLenum target, GLdouble s) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 16; - emit_header(gc->pc, X_GLrop_MultiTexCoord1dvARB, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&s), 8); - (void) memcpy((void *)(gc->pc + 12), (void *)(&target), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_MultiTexCoord1dvARB 198 -void -__indirect_glMultiTexCoord1dvARB(GLenum target, const GLdouble * v) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 16; - emit_header(gc->pc, X_GLrop_MultiTexCoord1dvARB, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(v), 8); - (void) memcpy((void *)(gc->pc + 12), (void *)(&target), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_MultiTexCoord1fvARB 199 -void -__indirect_glMultiTexCoord1fARB(GLenum target, GLfloat s) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12; - emit_header(gc->pc, X_GLrop_MultiTexCoord1fvARB, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&target), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&s), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_MultiTexCoord1fvARB 199 -void -__indirect_glMultiTexCoord1fvARB(GLenum target, const GLfloat * v) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12; - emit_header(gc->pc, X_GLrop_MultiTexCoord1fvARB, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&target), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(v), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_MultiTexCoord1ivARB 200 -void -__indirect_glMultiTexCoord1iARB(GLenum target, GLint s) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12; - emit_header(gc->pc, X_GLrop_MultiTexCoord1ivARB, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&target), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&s), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_MultiTexCoord1ivARB 200 -void -__indirect_glMultiTexCoord1ivARB(GLenum target, const GLint * v) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12; - emit_header(gc->pc, X_GLrop_MultiTexCoord1ivARB, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&target), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(v), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_MultiTexCoord1svARB 201 -void -__indirect_glMultiTexCoord1sARB(GLenum target, GLshort s) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12; - emit_header(gc->pc, X_GLrop_MultiTexCoord1svARB, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&target), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&s), 2); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_MultiTexCoord1svARB 201 -void -__indirect_glMultiTexCoord1svARB(GLenum target, const GLshort * v) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12; - emit_header(gc->pc, X_GLrop_MultiTexCoord1svARB, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&target), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(v), 2); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_MultiTexCoord2dvARB 202 -void -__indirect_glMultiTexCoord2dARB(GLenum target, GLdouble s, GLdouble t) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 24; - emit_header(gc->pc, X_GLrop_MultiTexCoord2dvARB, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&s), 8); - (void) memcpy((void *)(gc->pc + 12), (void *)(&t), 8); - (void) memcpy((void *)(gc->pc + 20), (void *)(&target), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_MultiTexCoord2dvARB 202 -void -__indirect_glMultiTexCoord2dvARB(GLenum target, const GLdouble * v) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 24; - emit_header(gc->pc, X_GLrop_MultiTexCoord2dvARB, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(v), 16); - (void) memcpy((void *)(gc->pc + 20), (void *)(&target), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_MultiTexCoord2fvARB 203 -void -__indirect_glMultiTexCoord2fARB(GLenum target, GLfloat s, GLfloat t) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 16; - emit_header(gc->pc, X_GLrop_MultiTexCoord2fvARB, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&target), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&s), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(&t), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_MultiTexCoord2fvARB 203 -void -__indirect_glMultiTexCoord2fvARB(GLenum target, const GLfloat * v) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 16; - emit_header(gc->pc, X_GLrop_MultiTexCoord2fvARB, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&target), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(v), 8); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_MultiTexCoord2ivARB 204 -void -__indirect_glMultiTexCoord2iARB(GLenum target, GLint s, GLint t) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 16; - emit_header(gc->pc, X_GLrop_MultiTexCoord2ivARB, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&target), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&s), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(&t), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_MultiTexCoord2ivARB 204 -void -__indirect_glMultiTexCoord2ivARB(GLenum target, const GLint * v) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 16; - emit_header(gc->pc, X_GLrop_MultiTexCoord2ivARB, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&target), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(v), 8); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_MultiTexCoord2svARB 205 -void -__indirect_glMultiTexCoord2sARB(GLenum target, GLshort s, GLshort t) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12; - emit_header(gc->pc, X_GLrop_MultiTexCoord2svARB, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&target), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&s), 2); - (void) memcpy((void *)(gc->pc + 10), (void *)(&t), 2); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_MultiTexCoord2svARB 205 -void -__indirect_glMultiTexCoord2svARB(GLenum target, const GLshort * v) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12; - emit_header(gc->pc, X_GLrop_MultiTexCoord2svARB, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&target), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(v), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_MultiTexCoord3dvARB 206 -void -__indirect_glMultiTexCoord3dARB(GLenum target, GLdouble s, GLdouble t, GLdouble r) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 32; - emit_header(gc->pc, X_GLrop_MultiTexCoord3dvARB, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&s), 8); - (void) memcpy((void *)(gc->pc + 12), (void *)(&t), 8); - (void) memcpy((void *)(gc->pc + 20), (void *)(&r), 8); - (void) memcpy((void *)(gc->pc + 28), (void *)(&target), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_MultiTexCoord3dvARB 206 -void -__indirect_glMultiTexCoord3dvARB(GLenum target, const GLdouble * v) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 32; - emit_header(gc->pc, X_GLrop_MultiTexCoord3dvARB, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(v), 24); - (void) memcpy((void *)(gc->pc + 28), (void *)(&target), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_MultiTexCoord3fvARB 207 -void -__indirect_glMultiTexCoord3fARB(GLenum target, GLfloat s, GLfloat t, GLfloat r) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 20; - emit_header(gc->pc, X_GLrop_MultiTexCoord3fvARB, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&target), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&s), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(&t), 4); - (void) memcpy((void *)(gc->pc + 16), (void *)(&r), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_MultiTexCoord3fvARB 207 -void -__indirect_glMultiTexCoord3fvARB(GLenum target, const GLfloat * v) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 20; - emit_header(gc->pc, X_GLrop_MultiTexCoord3fvARB, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&target), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(v), 12); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_MultiTexCoord3ivARB 208 -void -__indirect_glMultiTexCoord3iARB(GLenum target, GLint s, GLint t, GLint r) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 20; - emit_header(gc->pc, X_GLrop_MultiTexCoord3ivARB, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&target), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&s), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(&t), 4); - (void) memcpy((void *)(gc->pc + 16), (void *)(&r), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_MultiTexCoord3ivARB 208 -void -__indirect_glMultiTexCoord3ivARB(GLenum target, const GLint * v) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 20; - emit_header(gc->pc, X_GLrop_MultiTexCoord3ivARB, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&target), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(v), 12); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_MultiTexCoord3svARB 209 -void -__indirect_glMultiTexCoord3sARB(GLenum target, GLshort s, GLshort t, GLshort r) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 16; - emit_header(gc->pc, X_GLrop_MultiTexCoord3svARB, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&target), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&s), 2); - (void) memcpy((void *)(gc->pc + 10), (void *)(&t), 2); - (void) memcpy((void *)(gc->pc + 12), (void *)(&r), 2); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_MultiTexCoord3svARB 209 -void -__indirect_glMultiTexCoord3svARB(GLenum target, const GLshort * v) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 16; - emit_header(gc->pc, X_GLrop_MultiTexCoord3svARB, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&target), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(v), 6); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_MultiTexCoord4dvARB 210 -void -__indirect_glMultiTexCoord4dARB(GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 40; - emit_header(gc->pc, X_GLrop_MultiTexCoord4dvARB, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&s), 8); - (void) memcpy((void *)(gc->pc + 12), (void *)(&t), 8); - (void) memcpy((void *)(gc->pc + 20), (void *)(&r), 8); - (void) memcpy((void *)(gc->pc + 28), (void *)(&q), 8); - (void) memcpy((void *)(gc->pc + 36), (void *)(&target), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_MultiTexCoord4dvARB 210 -void -__indirect_glMultiTexCoord4dvARB(GLenum target, const GLdouble * v) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 40; - emit_header(gc->pc, X_GLrop_MultiTexCoord4dvARB, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(v), 32); - (void) memcpy((void *)(gc->pc + 36), (void *)(&target), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_MultiTexCoord4fvARB 211 -void -__indirect_glMultiTexCoord4fARB(GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 24; - emit_header(gc->pc, X_GLrop_MultiTexCoord4fvARB, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&target), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&s), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(&t), 4); - (void) memcpy((void *)(gc->pc + 16), (void *)(&r), 4); - (void) memcpy((void *)(gc->pc + 20), (void *)(&q), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_MultiTexCoord4fvARB 211 -void -__indirect_glMultiTexCoord4fvARB(GLenum target, const GLfloat * v) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 24; - emit_header(gc->pc, X_GLrop_MultiTexCoord4fvARB, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&target), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(v), 16); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_MultiTexCoord4ivARB 212 -void -__indirect_glMultiTexCoord4iARB(GLenum target, GLint s, GLint t, GLint r, GLint q) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 24; - emit_header(gc->pc, X_GLrop_MultiTexCoord4ivARB, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&target), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&s), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(&t), 4); - (void) memcpy((void *)(gc->pc + 16), (void *)(&r), 4); - (void) memcpy((void *)(gc->pc + 20), (void *)(&q), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_MultiTexCoord4ivARB 212 -void -__indirect_glMultiTexCoord4ivARB(GLenum target, const GLint * v) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 24; - emit_header(gc->pc, X_GLrop_MultiTexCoord4ivARB, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&target), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(v), 16); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_MultiTexCoord4svARB 213 -void -__indirect_glMultiTexCoord4sARB(GLenum target, GLshort s, GLshort t, GLshort r, GLshort q) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 16; - emit_header(gc->pc, X_GLrop_MultiTexCoord4svARB, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&target), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&s), 2); - (void) memcpy((void *)(gc->pc + 10), (void *)(&t), 2); - (void) memcpy((void *)(gc->pc + 12), (void *)(&r), 2); - (void) memcpy((void *)(gc->pc + 14), (void *)(&q), 2); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_MultiTexCoord4svARB 213 -void -__indirect_glMultiTexCoord4svARB(GLenum target, const GLshort * v) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 16; - emit_header(gc->pc, X_GLrop_MultiTexCoord4svARB, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&target), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(v), 8); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_SampleCoverageARB 229 -void -__indirect_glSampleCoverageARB(GLclampf value, GLboolean invert) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12; - emit_header(gc->pc, X_GLrop_SampleCoverageARB, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&value), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&invert), 1); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_DrawBuffersARB 233 -void -__indirect_glDrawBuffersARB(GLsizei n, const GLenum * bufs) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 8 + __GLX_PAD((n * 4)); - if (__builtin_expect((n >= 0) && (gc->currentDpy != NULL), 1)) { - if (cmdlen <= gc->maxSmallRenderCommandSize) { - if ( (gc->pc + cmdlen) > gc->bufEnd ) { - (void) __glXFlushRenderBuffer(gc, gc->pc); - } - emit_header(gc->pc, X_GLrop_DrawBuffersARB, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&n), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(bufs), (n * 4)); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } - } - else { - const GLint op = X_GLrop_DrawBuffersARB; - const GLuint cmdlenLarge = cmdlen + 4; - GLubyte * const pc = __glXFlushRenderBuffer(gc, gc->pc); - (void) memcpy((void *)(pc + 0), (void *)(&cmdlenLarge), 4); - (void) memcpy((void *)(pc + 4), (void *)(&op), 4); - (void) memcpy((void *)(pc + 8), (void *)(&n), 4); - __glXSendLargeCommand(gc, pc, 12, bufs, (n * 4)); - } - } -} - -#define X_GLvop_AreTexturesResidentEXT 11 -GLboolean -__indirect_glAreTexturesResidentEXT(GLsizei n, const GLuint * textures, GLboolean * residences) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - Display * const dpy = gc->currentDpy; - GLboolean retval = (GLboolean) 0; - const GLuint cmdlen = 4 + __GLX_PAD((n * 4)); - if (__builtin_expect((n >= 0) && (dpy != NULL), 1)) { - GLubyte const * pc = __glXSetupVendorRequest(gc, X_GLXVendorPrivateWithReply, X_GLvop_AreTexturesResidentEXT, cmdlen); - (void) memcpy((void *)(pc + 0), (void *)(&n), 4); - (void) memcpy((void *)(pc + 4), (void *)(textures), (n * 4)); - retval = (GLboolean) __glXReadReply(dpy, 1, residences, GL_TRUE); - UnlockDisplay(dpy); SyncHandle(); - } - return retval; -} - -#define X_GLvop_GenTexturesEXT 13 -void -__indirect_glGenTexturesEXT(GLsizei n, GLuint * textures) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - Display * const dpy = gc->currentDpy; - const GLuint cmdlen = 4; - if (__builtin_expect((n >= 0) && (dpy != NULL), 1)) { - GLubyte const * pc = __glXSetupVendorRequest(gc, X_GLXVendorPrivateWithReply, X_GLvop_GenTexturesEXT, cmdlen); - (void) memcpy((void *)(pc + 0), (void *)(&n), 4); - (void) __glXReadReply(dpy, 4, textures, GL_TRUE); - UnlockDisplay(dpy); SyncHandle(); - } - return; -} - -#define X_GLvop_IsTextureEXT 14 -GLboolean -__indirect_glIsTextureEXT(GLuint texture) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - Display * const dpy = gc->currentDpy; - GLboolean retval = (GLboolean) 0; - const GLuint cmdlen = 4; - if (__builtin_expect(dpy != NULL, 1)) { - GLubyte const * pc = __glXSetupVendorRequest(gc, X_GLXVendorPrivateWithReply, X_GLvop_IsTextureEXT, cmdlen); - (void) memcpy((void *)(pc + 0), (void *)(&texture), 4); - retval = (GLboolean) __glXReadReply(dpy, 0, NULL, GL_FALSE); - UnlockDisplay(dpy); SyncHandle(); - } - return retval; -} - -#define X_GLrop_SampleMaskSGIS 2048 -void -__indirect_glSampleMaskSGIS(GLclampf value, GLboolean invert) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12; - emit_header(gc->pc, X_GLrop_SampleMaskSGIS, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&value), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&invert), 1); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_SamplePatternSGIS 2049 -void -__indirect_glSamplePatternSGIS(GLenum pattern) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 8; - emit_header(gc->pc, X_GLrop_SamplePatternSGIS, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&pattern), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_PointParameterfEXT 2065 -void -__indirect_glPointParameterfEXT(GLenum pname, GLfloat param) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12; - emit_header(gc->pc, X_GLrop_PointParameterfEXT, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&pname), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(¶m), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_PointParameterfvEXT 2066 -void -__indirect_glPointParameterfvEXT(GLenum pname, const GLfloat * params) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint compsize = __glPointParameterfvEXT_size(pname); - const GLuint cmdlen = 8 + __GLX_PAD((compsize * 4)); - emit_header(gc->pc, X_GLrop_PointParameterfvEXT, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&pname), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(params), (compsize * 4)); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_WindowPos3fvMESA 230 -void -__indirect_glWindowPos3fMESA(GLfloat x, GLfloat y, GLfloat z) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 16; - emit_header(gc->pc, X_GLrop_WindowPos3fvMESA, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&x), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&y), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(&z), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_WindowPos3fvMESA 230 -void -__indirect_glWindowPos3fvMESA(const GLfloat * v) -{ - generic_12_byte( X_GLrop_WindowPos3fvMESA, v ); -} - -#define X_GLrop_BlendFuncSeparateEXT 4134 -void -__indirect_glBlendFuncSeparateEXT(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 20; - emit_header(gc->pc, X_GLrop_BlendFuncSeparateEXT, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&sfactorRGB), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&dfactorRGB), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(&sfactorAlpha), 4); - (void) memcpy((void *)(gc->pc + 16), (void *)(&dfactorAlpha), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_FogCoordfvEXT 4124 -void -__indirect_glFogCoordfEXT(GLfloat coord) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 8; - emit_header(gc->pc, X_GLrop_FogCoordfvEXT, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&coord), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_FogCoordfvEXT 4124 -void -__indirect_glFogCoordfvEXT(const GLfloat * coord) -{ - generic_4_byte( X_GLrop_FogCoordfvEXT, coord ); -} - -#define X_GLrop_FogCoorddvEXT 4125 -void -__indirect_glFogCoorddEXT(GLdouble coord) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12; - emit_header(gc->pc, X_GLrop_FogCoorddvEXT, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&coord), 8); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_FogCoorddvEXT 4125 -void -__indirect_glFogCoorddvEXT(const GLdouble * coord) -{ - generic_8_byte( X_GLrop_FogCoorddvEXT, coord ); -} - -#define X_GLrop_SecondaryColor3bvEXT 4126 -void -__indirect_glSecondaryColor3bEXT(GLbyte red, GLbyte green, GLbyte blue) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 8; - emit_header(gc->pc, X_GLrop_SecondaryColor3bvEXT, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&red), 1); - (void) memcpy((void *)(gc->pc + 5), (void *)(&green), 1); - (void) memcpy((void *)(gc->pc + 6), (void *)(&blue), 1); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_SecondaryColor3bvEXT 4126 -void -__indirect_glSecondaryColor3bvEXT(const GLbyte * v) -{ - generic_3_byte( X_GLrop_SecondaryColor3bvEXT, v ); -} - -#define X_GLrop_SecondaryColor3dvEXT 4130 -void -__indirect_glSecondaryColor3dEXT(GLdouble red, GLdouble green, GLdouble blue) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 28; - emit_header(gc->pc, X_GLrop_SecondaryColor3dvEXT, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&red), 8); - (void) memcpy((void *)(gc->pc + 12), (void *)(&green), 8); - (void) memcpy((void *)(gc->pc + 20), (void *)(&blue), 8); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_SecondaryColor3dvEXT 4130 -void -__indirect_glSecondaryColor3dvEXT(const GLdouble * v) -{ - generic_24_byte( X_GLrop_SecondaryColor3dvEXT, v ); -} - -#define X_GLrop_SecondaryColor3fvEXT 4129 -void -__indirect_glSecondaryColor3fEXT(GLfloat red, GLfloat green, GLfloat blue) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 16; - emit_header(gc->pc, X_GLrop_SecondaryColor3fvEXT, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&red), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&green), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(&blue), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_SecondaryColor3fvEXT 4129 -void -__indirect_glSecondaryColor3fvEXT(const GLfloat * v) -{ - generic_12_byte( X_GLrop_SecondaryColor3fvEXT, v ); -} - -#define X_GLrop_SecondaryColor3ivEXT 4128 -void -__indirect_glSecondaryColor3iEXT(GLint red, GLint green, GLint blue) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 16; - emit_header(gc->pc, X_GLrop_SecondaryColor3ivEXT, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&red), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&green), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(&blue), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_SecondaryColor3ivEXT 4128 -void -__indirect_glSecondaryColor3ivEXT(const GLint * v) -{ - generic_12_byte( X_GLrop_SecondaryColor3ivEXT, v ); -} - -#define X_GLrop_SecondaryColor3svEXT 4127 -void -__indirect_glSecondaryColor3sEXT(GLshort red, GLshort green, GLshort blue) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12; - emit_header(gc->pc, X_GLrop_SecondaryColor3svEXT, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&red), 2); - (void) memcpy((void *)(gc->pc + 6), (void *)(&green), 2); - (void) memcpy((void *)(gc->pc + 8), (void *)(&blue), 2); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_SecondaryColor3svEXT 4127 -void -__indirect_glSecondaryColor3svEXT(const GLshort * v) -{ - generic_6_byte( X_GLrop_SecondaryColor3svEXT, v ); -} - -#define X_GLrop_SecondaryColor3ubvEXT 4131 -void -__indirect_glSecondaryColor3ubEXT(GLubyte red, GLubyte green, GLubyte blue) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 8; - emit_header(gc->pc, X_GLrop_SecondaryColor3ubvEXT, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&red), 1); - (void) memcpy((void *)(gc->pc + 5), (void *)(&green), 1); - (void) memcpy((void *)(gc->pc + 6), (void *)(&blue), 1); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_SecondaryColor3ubvEXT 4131 -void -__indirect_glSecondaryColor3ubvEXT(const GLubyte * v) -{ - generic_3_byte( X_GLrop_SecondaryColor3ubvEXT, v ); -} - -#define X_GLrop_SecondaryColor3uivEXT 4133 -void -__indirect_glSecondaryColor3uiEXT(GLuint red, GLuint green, GLuint blue) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 16; - emit_header(gc->pc, X_GLrop_SecondaryColor3uivEXT, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&red), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&green), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(&blue), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_SecondaryColor3uivEXT 4133 -void -__indirect_glSecondaryColor3uivEXT(const GLuint * v) -{ - generic_12_byte( X_GLrop_SecondaryColor3uivEXT, v ); -} - -#define X_GLrop_SecondaryColor3usvEXT 4132 -void -__indirect_glSecondaryColor3usEXT(GLushort red, GLushort green, GLushort blue) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12; - emit_header(gc->pc, X_GLrop_SecondaryColor3usvEXT, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&red), 2); - (void) memcpy((void *)(gc->pc + 6), (void *)(&green), 2); - (void) memcpy((void *)(gc->pc + 8), (void *)(&blue), 2); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_SecondaryColor3usvEXT 4132 -void -__indirect_glSecondaryColor3usvEXT(const GLushort * v) -{ - generic_6_byte( X_GLrop_SecondaryColor3usvEXT, v ); -} - -#define X_GLvop_AreProgramsResidentNV 1293 -GLboolean -__indirect_glAreProgramsResidentNV(GLsizei n, const GLuint * ids, GLboolean * residences) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - Display * const dpy = gc->currentDpy; - GLboolean retval = (GLboolean) 0; - const GLuint cmdlen = 4 + __GLX_PAD((n * 4)); - if (__builtin_expect((n >= 0) && (dpy != NULL), 1)) { - GLubyte const * pc = __glXSetupVendorRequest(gc, X_GLXVendorPrivateWithReply, X_GLvop_AreProgramsResidentNV, cmdlen); - (void) memcpy((void *)(pc + 0), (void *)(&n), 4); - (void) memcpy((void *)(pc + 4), (void *)(ids), (n * 4)); - retval = (GLboolean) __glXReadReply(dpy, 1, residences, GL_FALSE); - UnlockDisplay(dpy); SyncHandle(); - } - return retval; -} - -#define X_GLrop_BindProgramNV 4180 -void -__indirect_glBindProgramNV(GLenum target, GLuint program) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12; - emit_header(gc->pc, X_GLrop_BindProgramNV, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&target), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&program), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLvop_DeleteProgramsNV 1294 -void -__indirect_glDeleteProgramsNV(GLsizei n, const GLuint * programs) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - Display * const dpy = gc->currentDpy; - const GLuint cmdlen = 4 + __GLX_PAD((n * 4)); - if (__builtin_expect((n >= 0) && (dpy != NULL), 1)) { - GLubyte const * pc = __glXSetupVendorRequest(gc, X_GLXVendorPrivate, X_GLvop_DeleteProgramsNV, cmdlen); - (void) memcpy((void *)(pc + 0), (void *)(&n), 4); - (void) memcpy((void *)(pc + 4), (void *)(programs), (n * 4)); - UnlockDisplay(dpy); SyncHandle(); - } - return; -} - -#define X_GLrop_ExecuteProgramNV 4181 -void -__indirect_glExecuteProgramNV(GLenum target, GLuint id, const GLfloat * params) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 28; - emit_header(gc->pc, X_GLrop_ExecuteProgramNV, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&target), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&id), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(params), 16); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLvop_GenProgramsNV 1295 -void -__indirect_glGenProgramsNV(GLsizei n, GLuint * programs) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - Display * const dpy = gc->currentDpy; - const GLuint cmdlen = 4; - if (__builtin_expect((n >= 0) && (dpy != NULL), 1)) { - GLubyte const * pc = __glXSetupVendorRequest(gc, X_GLXVendorPrivateWithReply, X_GLvop_GenProgramsNV, cmdlen); - (void) memcpy((void *)(pc + 0), (void *)(&n), 4); - (void) __glXReadReply(dpy, 4, programs, GL_FALSE); - UnlockDisplay(dpy); SyncHandle(); - } - return; -} - -#define X_GLvop_GetProgramParameterdvNV 1297 -void -__indirect_glGetProgramParameterdvNV(GLenum target, GLuint index, GLenum pname, GLdouble * params) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - Display * const dpy = gc->currentDpy; - const GLuint cmdlen = 12; - if (__builtin_expect(dpy != NULL, 1)) { - GLubyte const * pc = __glXSetupVendorRequest(gc, X_GLXVendorPrivateWithReply, X_GLvop_GetProgramParameterdvNV, cmdlen); - (void) memcpy((void *)(pc + 0), (void *)(&target), 4); - (void) memcpy((void *)(pc + 4), (void *)(&index), 4); - (void) memcpy((void *)(pc + 8), (void *)(&pname), 4); - (void) __glXReadReply(dpy, 8, params, GL_FALSE); - UnlockDisplay(dpy); SyncHandle(); - } - return; -} - -#define X_GLvop_GetProgramParameterfvNV 1296 -void -__indirect_glGetProgramParameterfvNV(GLenum target, GLuint index, GLenum pname, GLfloat * params) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - Display * const dpy = gc->currentDpy; - const GLuint cmdlen = 12; - if (__builtin_expect(dpy != NULL, 1)) { - GLubyte const * pc = __glXSetupVendorRequest(gc, X_GLXVendorPrivateWithReply, X_GLvop_GetProgramParameterfvNV, cmdlen); - (void) memcpy((void *)(pc + 0), (void *)(&target), 4); - (void) memcpy((void *)(pc + 4), (void *)(&index), 4); - (void) memcpy((void *)(pc + 8), (void *)(&pname), 4); - (void) __glXReadReply(dpy, 4, params, GL_FALSE); - UnlockDisplay(dpy); SyncHandle(); - } - return; -} - -#define X_GLvop_GetProgramivNV 1298 -void -__indirect_glGetProgramivNV(GLuint id, GLenum pname, GLint * params) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - Display * const dpy = gc->currentDpy; - const GLuint cmdlen = 8; - if (__builtin_expect(dpy != NULL, 1)) { - GLubyte const * pc = __glXSetupVendorRequest(gc, X_GLXVendorPrivateWithReply, X_GLvop_GetProgramivNV, cmdlen); - (void) memcpy((void *)(pc + 0), (void *)(&id), 4); - (void) memcpy((void *)(pc + 4), (void *)(&pname), 4); - (void) __glXReadReply(dpy, 4, params, GL_FALSE); - UnlockDisplay(dpy); SyncHandle(); - } - return; -} - -#define X_GLvop_GetProgramStringNV 1299 -void -__indirect_glGetProgramStringNV(GLuint id, GLenum pname, GLubyte * program) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - Display * const dpy = gc->currentDpy; - const GLuint cmdlen = 8; - if (__builtin_expect(dpy != NULL, 1)) { - GLubyte const * pc = __glXSetupVendorRequest(gc, X_GLXVendorPrivateWithReply, X_GLvop_GetProgramStringNV, cmdlen); - (void) memcpy((void *)(pc + 0), (void *)(&id), 4); - (void) memcpy((void *)(pc + 4), (void *)(&pname), 4); - (void) __glXReadReply(dpy, 1, program, GL_TRUE); - UnlockDisplay(dpy); SyncHandle(); - } - return; -} - -#define X_GLvop_GetTrackMatrixivNV 1300 -void -__indirect_glGetTrackMatrixivNV(GLenum target, GLuint address, GLenum pname, GLint * params) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - Display * const dpy = gc->currentDpy; - const GLuint cmdlen = 12; - if (__builtin_expect(dpy != NULL, 1)) { - GLubyte const * pc = __glXSetupVendorRequest(gc, X_GLXVendorPrivateWithReply, X_GLvop_GetTrackMatrixivNV, cmdlen); - (void) memcpy((void *)(pc + 0), (void *)(&target), 4); - (void) memcpy((void *)(pc + 4), (void *)(&address), 4); - (void) memcpy((void *)(pc + 8), (void *)(&pname), 4); - (void) __glXReadReply(dpy, 4, params, GL_FALSE); - UnlockDisplay(dpy); SyncHandle(); - } - return; -} - -#define X_GLvop_IsProgramNV 1304 -GLboolean -__indirect_glIsProgramNV(GLuint program) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - Display * const dpy = gc->currentDpy; - GLboolean retval = (GLboolean) 0; - const GLuint cmdlen = 4; - if (__builtin_expect(dpy != NULL, 1)) { - GLubyte const * pc = __glXSetupVendorRequest(gc, X_GLXVendorPrivateWithReply, X_GLvop_IsProgramNV, cmdlen); - (void) memcpy((void *)(pc + 0), (void *)(&program), 4); - retval = (GLboolean) __glXReadReply(dpy, 0, NULL, GL_FALSE); - UnlockDisplay(dpy); SyncHandle(); - } - return retval; -} - -#define X_GLrop_LoadProgramNV 4183 -void -__indirect_glLoadProgramNV(GLenum target, GLuint id, GLsizei len, const GLubyte * program) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 16 + __GLX_PAD(len); - if (__builtin_expect(len >= 0, 1)) { - emit_header(gc->pc, X_GLrop_LoadProgramNV, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&target), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&id), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(&len), 4); - (void) memcpy((void *)(gc->pc + 16), (void *)(program), len); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } - } -} - -#define X_GLrop_ProgramParameter4dvNV 4185 -void -__indirect_glProgramParameter4dNV(GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 44; - emit_header(gc->pc, X_GLrop_ProgramParameter4dvNV, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&target), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&index), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(&x), 8); - (void) memcpy((void *)(gc->pc + 20), (void *)(&y), 8); - (void) memcpy((void *)(gc->pc + 28), (void *)(&z), 8); - (void) memcpy((void *)(gc->pc + 36), (void *)(&w), 8); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_ProgramParameter4dvNV 4185 -void -__indirect_glProgramParameter4dvNV(GLenum target, GLuint index, const GLdouble * params) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 44; - emit_header(gc->pc, X_GLrop_ProgramParameter4dvNV, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&target), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&index), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(params), 32); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_ProgramParameter4fvNV 4184 -void -__indirect_glProgramParameter4fNV(GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 28; - emit_header(gc->pc, X_GLrop_ProgramParameter4fvNV, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&target), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&index), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(&x), 4); - (void) memcpy((void *)(gc->pc + 16), (void *)(&y), 4); - (void) memcpy((void *)(gc->pc + 20), (void *)(&z), 4); - (void) memcpy((void *)(gc->pc + 24), (void *)(&w), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_ProgramParameter4fvNV 4184 -void -__indirect_glProgramParameter4fvNV(GLenum target, GLuint index, const GLfloat * params) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 28; - emit_header(gc->pc, X_GLrop_ProgramParameter4fvNV, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&target), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&index), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(params), 16); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_ProgramParameters4dvNV 4187 -void -__indirect_glProgramParameters4dvNV(GLenum target, GLuint index, GLuint num, const GLdouble * params) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 16 + __GLX_PAD((num * 32)); - if (__builtin_expect(num >= 0, 1)) { - emit_header(gc->pc, X_GLrop_ProgramParameters4dvNV, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&target), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&index), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(&num), 4); - (void) memcpy((void *)(gc->pc + 16), (void *)(params), (num * 32)); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } - } -} - -#define X_GLrop_ProgramParameters4fvNV 4186 -void -__indirect_glProgramParameters4fvNV(GLenum target, GLuint index, GLuint num, const GLfloat * params) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 16 + __GLX_PAD((num * 16)); - if (__builtin_expect(num >= 0, 1)) { - emit_header(gc->pc, X_GLrop_ProgramParameters4fvNV, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&target), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&index), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(&num), 4); - (void) memcpy((void *)(gc->pc + 16), (void *)(params), (num * 16)); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } - } -} - -#define X_GLrop_RequestResidentProgramsNV 4182 -void -__indirect_glRequestResidentProgramsNV(GLsizei n, const GLuint * ids) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 8 + __GLX_PAD((n * 4)); - if (__builtin_expect(n >= 0, 1)) { - emit_header(gc->pc, X_GLrop_RequestResidentProgramsNV, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&n), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(ids), (n * 4)); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } - } -} - -#define X_GLrop_TrackMatrixNV 4188 -void -__indirect_glTrackMatrixNV(GLenum target, GLuint address, GLenum matrix, GLenum transform) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 20; - emit_header(gc->pc, X_GLrop_TrackMatrixNV, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&target), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&address), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(&matrix), 4); - (void) memcpy((void *)(gc->pc + 16), (void *)(&transform), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_VertexAttrib1dvARB 4197 -void -__indirect_glVertexAttrib1dARB(GLuint index, GLdouble x) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 16; - emit_header(gc->pc, X_GLrop_VertexAttrib1dvARB, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&x), 8); - (void) memcpy((void *)(gc->pc + 12), (void *)(&index), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_VertexAttrib1dvARB 4197 -void -__indirect_glVertexAttrib1dvARB(GLuint index, const GLdouble * v) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 16; - emit_header(gc->pc, X_GLrop_VertexAttrib1dvARB, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(v), 8); - (void) memcpy((void *)(gc->pc + 12), (void *)(&index), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_VertexAttrib1fvARB 4193 -void -__indirect_glVertexAttrib1fARB(GLuint index, GLfloat x) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12; - emit_header(gc->pc, X_GLrop_VertexAttrib1fvARB, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&index), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&x), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_VertexAttrib1fvARB 4193 -void -__indirect_glVertexAttrib1fvARB(GLuint index, const GLfloat * v) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12; - emit_header(gc->pc, X_GLrop_VertexAttrib1fvARB, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&index), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(v), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_VertexAttrib1svARB 4189 -void -__indirect_glVertexAttrib1sARB(GLuint index, GLshort x) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12; - emit_header(gc->pc, X_GLrop_VertexAttrib1svARB, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&index), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&x), 2); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_VertexAttrib1svARB 4189 -void -__indirect_glVertexAttrib1svARB(GLuint index, const GLshort * v) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12; - emit_header(gc->pc, X_GLrop_VertexAttrib1svARB, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&index), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(v), 2); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_VertexAttrib2dvARB 4198 -void -__indirect_glVertexAttrib2dARB(GLuint index, GLdouble x, GLdouble y) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 24; - emit_header(gc->pc, X_GLrop_VertexAttrib2dvARB, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&x), 8); - (void) memcpy((void *)(gc->pc + 12), (void *)(&y), 8); - (void) memcpy((void *)(gc->pc + 20), (void *)(&index), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_VertexAttrib2dvARB 4198 -void -__indirect_glVertexAttrib2dvARB(GLuint index, const GLdouble * v) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 24; - emit_header(gc->pc, X_GLrop_VertexAttrib2dvARB, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(v), 16); - (void) memcpy((void *)(gc->pc + 20), (void *)(&index), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_VertexAttrib2fvARB 4194 -void -__indirect_glVertexAttrib2fARB(GLuint index, GLfloat x, GLfloat y) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 16; - emit_header(gc->pc, X_GLrop_VertexAttrib2fvARB, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&index), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&x), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(&y), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_VertexAttrib2fvARB 4194 -void -__indirect_glVertexAttrib2fvARB(GLuint index, const GLfloat * v) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 16; - emit_header(gc->pc, X_GLrop_VertexAttrib2fvARB, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&index), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(v), 8); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_VertexAttrib2svARB 4190 -void -__indirect_glVertexAttrib2sARB(GLuint index, GLshort x, GLshort y) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12; - emit_header(gc->pc, X_GLrop_VertexAttrib2svARB, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&index), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&x), 2); - (void) memcpy((void *)(gc->pc + 10), (void *)(&y), 2); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_VertexAttrib2svARB 4190 -void -__indirect_glVertexAttrib2svARB(GLuint index, const GLshort * v) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12; - emit_header(gc->pc, X_GLrop_VertexAttrib2svARB, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&index), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(v), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_VertexAttrib3dvARB 4199 -void -__indirect_glVertexAttrib3dARB(GLuint index, GLdouble x, GLdouble y, GLdouble z) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 32; - emit_header(gc->pc, X_GLrop_VertexAttrib3dvARB, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&x), 8); - (void) memcpy((void *)(gc->pc + 12), (void *)(&y), 8); - (void) memcpy((void *)(gc->pc + 20), (void *)(&z), 8); - (void) memcpy((void *)(gc->pc + 28), (void *)(&index), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_VertexAttrib3dvARB 4199 -void -__indirect_glVertexAttrib3dvARB(GLuint index, const GLdouble * v) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 32; - emit_header(gc->pc, X_GLrop_VertexAttrib3dvARB, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(v), 24); - (void) memcpy((void *)(gc->pc + 28), (void *)(&index), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_VertexAttrib3fvARB 4195 -void -__indirect_glVertexAttrib3fARB(GLuint index, GLfloat x, GLfloat y, GLfloat z) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 20; - emit_header(gc->pc, X_GLrop_VertexAttrib3fvARB, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&index), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&x), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(&y), 4); - (void) memcpy((void *)(gc->pc + 16), (void *)(&z), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_VertexAttrib3fvARB 4195 -void -__indirect_glVertexAttrib3fvARB(GLuint index, const GLfloat * v) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 20; - emit_header(gc->pc, X_GLrop_VertexAttrib3fvARB, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&index), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(v), 12); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_VertexAttrib3svARB 4191 -void -__indirect_glVertexAttrib3sARB(GLuint index, GLshort x, GLshort y, GLshort z) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 16; - emit_header(gc->pc, X_GLrop_VertexAttrib3svARB, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&index), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&x), 2); - (void) memcpy((void *)(gc->pc + 10), (void *)(&y), 2); - (void) memcpy((void *)(gc->pc + 12), (void *)(&z), 2); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_VertexAttrib3svARB 4191 -void -__indirect_glVertexAttrib3svARB(GLuint index, const GLshort * v) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 16; - emit_header(gc->pc, X_GLrop_VertexAttrib3svARB, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&index), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(v), 6); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_VertexAttrib4dvARB 4200 -void -__indirect_glVertexAttrib4dARB(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 40; - emit_header(gc->pc, X_GLrop_VertexAttrib4dvARB, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&x), 8); - (void) memcpy((void *)(gc->pc + 12), (void *)(&y), 8); - (void) memcpy((void *)(gc->pc + 20), (void *)(&z), 8); - (void) memcpy((void *)(gc->pc + 28), (void *)(&w), 8); - (void) memcpy((void *)(gc->pc + 36), (void *)(&index), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_VertexAttrib4dvARB 4200 -void -__indirect_glVertexAttrib4dvARB(GLuint index, const GLdouble * v) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 40; - emit_header(gc->pc, X_GLrop_VertexAttrib4dvARB, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(v), 32); - (void) memcpy((void *)(gc->pc + 36), (void *)(&index), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_VertexAttrib4fvARB 4196 -void -__indirect_glVertexAttrib4fARB(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 24; - emit_header(gc->pc, X_GLrop_VertexAttrib4fvARB, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&index), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&x), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(&y), 4); - (void) memcpy((void *)(gc->pc + 16), (void *)(&z), 4); - (void) memcpy((void *)(gc->pc + 20), (void *)(&w), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_VertexAttrib4fvARB 4196 -void -__indirect_glVertexAttrib4fvARB(GLuint index, const GLfloat * v) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 24; - emit_header(gc->pc, X_GLrop_VertexAttrib4fvARB, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&index), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(v), 16); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_VertexAttrib4svARB 4192 -void -__indirect_glVertexAttrib4sARB(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 16; - emit_header(gc->pc, X_GLrop_VertexAttrib4svARB, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&index), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&x), 2); - (void) memcpy((void *)(gc->pc + 10), (void *)(&y), 2); - (void) memcpy((void *)(gc->pc + 12), (void *)(&z), 2); - (void) memcpy((void *)(gc->pc + 14), (void *)(&w), 2); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_VertexAttrib4svARB 4192 -void -__indirect_glVertexAttrib4svARB(GLuint index, const GLshort * v) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 16; - emit_header(gc->pc, X_GLrop_VertexAttrib4svARB, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&index), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(v), 8); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_VertexAttrib4NubvARB 4201 -void -__indirect_glVertexAttrib4NubARB(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12; - emit_header(gc->pc, X_GLrop_VertexAttrib4NubvARB, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&index), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&x), 1); - (void) memcpy((void *)(gc->pc + 9), (void *)(&y), 1); - (void) memcpy((void *)(gc->pc + 10), (void *)(&z), 1); - (void) memcpy((void *)(gc->pc + 11), (void *)(&w), 1); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_VertexAttrib4NubvARB 4201 -void -__indirect_glVertexAttrib4NubvARB(GLuint index, const GLubyte * v) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12; - emit_header(gc->pc, X_GLrop_VertexAttrib4NubvARB, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&index), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(v), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_VertexAttribs1dvNV 4210 -void -__indirect_glVertexAttribs1dvNV(GLuint index, GLsizei n, const GLdouble * v) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12 + __GLX_PAD((n * 8)); - if (__builtin_expect(n >= 0, 1)) { - emit_header(gc->pc, X_GLrop_VertexAttribs1dvNV, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&index), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&n), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(v), (n * 8)); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } - } -} - -#define X_GLrop_VertexAttribs1fvNV 4206 -void -__indirect_glVertexAttribs1fvNV(GLuint index, GLsizei n, const GLfloat * v) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12 + __GLX_PAD((n * 4)); - if (__builtin_expect(n >= 0, 1)) { - emit_header(gc->pc, X_GLrop_VertexAttribs1fvNV, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&index), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&n), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(v), (n * 4)); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } - } -} - -#define X_GLrop_VertexAttribs1svNV 4202 -void -__indirect_glVertexAttribs1svNV(GLuint index, GLsizei n, const GLshort * v) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12 + __GLX_PAD((n * 2)); - if (__builtin_expect(n >= 0, 1)) { - emit_header(gc->pc, X_GLrop_VertexAttribs1svNV, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&index), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&n), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(v), (n * 2)); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } - } -} - -#define X_GLrop_VertexAttribs2dvNV 4211 -void -__indirect_glVertexAttribs2dvNV(GLuint index, GLsizei n, const GLdouble * v) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12 + __GLX_PAD((n * 16)); - if (__builtin_expect(n >= 0, 1)) { - emit_header(gc->pc, X_GLrop_VertexAttribs2dvNV, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&index), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&n), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(v), (n * 16)); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } - } -} - -#define X_GLrop_VertexAttribs2fvNV 4207 -void -__indirect_glVertexAttribs2fvNV(GLuint index, GLsizei n, const GLfloat * v) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12 + __GLX_PAD((n * 8)); - if (__builtin_expect(n >= 0, 1)) { - emit_header(gc->pc, X_GLrop_VertexAttribs2fvNV, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&index), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&n), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(v), (n * 8)); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } - } -} - -#define X_GLrop_VertexAttribs2svNV 4203 -void -__indirect_glVertexAttribs2svNV(GLuint index, GLsizei n, const GLshort * v) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12 + __GLX_PAD((n * 4)); - if (__builtin_expect(n >= 0, 1)) { - emit_header(gc->pc, X_GLrop_VertexAttribs2svNV, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&index), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&n), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(v), (n * 4)); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } - } -} - -#define X_GLrop_VertexAttribs3dvNV 4212 -void -__indirect_glVertexAttribs3dvNV(GLuint index, GLsizei n, const GLdouble * v) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12 + __GLX_PAD((n * 24)); - if (__builtin_expect(n >= 0, 1)) { - emit_header(gc->pc, X_GLrop_VertexAttribs3dvNV, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&index), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&n), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(v), (n * 24)); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } - } -} - -#define X_GLrop_VertexAttribs3fvNV 4208 -void -__indirect_glVertexAttribs3fvNV(GLuint index, GLsizei n, const GLfloat * v) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12 + __GLX_PAD((n * 12)); - if (__builtin_expect(n >= 0, 1)) { - emit_header(gc->pc, X_GLrop_VertexAttribs3fvNV, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&index), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&n), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(v), (n * 12)); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } - } -} - -#define X_GLrop_VertexAttribs3svNV 4204 -void -__indirect_glVertexAttribs3svNV(GLuint index, GLsizei n, const GLshort * v) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12 + __GLX_PAD((n * 6)); - if (__builtin_expect(n >= 0, 1)) { - emit_header(gc->pc, X_GLrop_VertexAttribs3svNV, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&index), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&n), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(v), (n * 6)); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } - } -} - -#define X_GLrop_VertexAttribs4dvNV 4213 -void -__indirect_glVertexAttribs4dvNV(GLuint index, GLsizei n, const GLdouble * v) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12 + __GLX_PAD((n * 32)); - if (__builtin_expect(n >= 0, 1)) { - emit_header(gc->pc, X_GLrop_VertexAttribs4dvNV, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&index), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&n), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(v), (n * 32)); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } - } -} - -#define X_GLrop_VertexAttribs4fvNV 4209 -void -__indirect_glVertexAttribs4fvNV(GLuint index, GLsizei n, const GLfloat * v) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12 + __GLX_PAD((n * 16)); - if (__builtin_expect(n >= 0, 1)) { - emit_header(gc->pc, X_GLrop_VertexAttribs4fvNV, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&index), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&n), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(v), (n * 16)); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } - } -} - -#define X_GLrop_VertexAttribs4svNV 4205 -void -__indirect_glVertexAttribs4svNV(GLuint index, GLsizei n, const GLshort * v) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12 + __GLX_PAD((n * 8)); - if (__builtin_expect(n >= 0, 1)) { - emit_header(gc->pc, X_GLrop_VertexAttribs4svNV, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&index), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&n), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(v), (n * 8)); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } - } -} - -#define X_GLrop_VertexAttribs4ubvNV 4214 -void -__indirect_glVertexAttribs4ubvNV(GLuint index, GLsizei n, const GLubyte * v) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12 + __GLX_PAD((n * 4)); - if (__builtin_expect(n >= 0, 1)) { - emit_header(gc->pc, X_GLrop_VertexAttribs4ubvNV, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&index), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&n), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(v), (n * 4)); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } - } -} - -#define X_GLrop_PointParameteriNV 4221 -void -__indirect_glPointParameteriNV(GLenum pname, GLint param) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12; - emit_header(gc->pc, X_GLrop_PointParameteriNV, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&pname), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(¶m), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_PointParameterivNV 4222 -void -__indirect_glPointParameterivNV(GLenum pname, const GLint * params) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint compsize = __glPointParameterivNV_size(pname); - const GLuint cmdlen = 8 + __GLX_PAD((compsize * 4)); - emit_header(gc->pc, X_GLrop_PointParameterivNV, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&pname), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(params), (compsize * 4)); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_ActiveStencilFaceEXT 4220 -void -__indirect_glActiveStencilFaceEXT(GLenum face) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 8; - emit_header(gc->pc, X_GLrop_ActiveStencilFaceEXT, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&face), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_VertexAttrib4bvARB 4230 -void -__indirect_glVertexAttrib4bvARB(GLuint index, const GLbyte * v) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12; - emit_header(gc->pc, X_GLrop_VertexAttrib4bvARB, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&index), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(v), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_VertexAttrib4ivARB 4231 -void -__indirect_glVertexAttrib4ivARB(GLuint index, const GLint * v) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 24; - emit_header(gc->pc, X_GLrop_VertexAttrib4ivARB, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&index), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(v), 16); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_VertexAttrib4ubvARB 4232 -void -__indirect_glVertexAttrib4ubvARB(GLuint index, const GLubyte * v) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12; - emit_header(gc->pc, X_GLrop_VertexAttrib4ubvARB, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&index), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(v), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_VertexAttrib4usvARB 4233 -void -__indirect_glVertexAttrib4usvARB(GLuint index, const GLushort * v) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 16; - emit_header(gc->pc, X_GLrop_VertexAttrib4usvARB, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&index), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(v), 8); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_VertexAttrib4uivARB 4234 -void -__indirect_glVertexAttrib4uivARB(GLuint index, const GLuint * v) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 24; - emit_header(gc->pc, X_GLrop_VertexAttrib4uivARB, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&index), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(v), 16); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_VertexAttrib4NbvARB 4235 -void -__indirect_glVertexAttrib4NbvARB(GLuint index, const GLbyte * v) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12; - emit_header(gc->pc, X_GLrop_VertexAttrib4NbvARB, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&index), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(v), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_VertexAttrib4NsvARB 4236 -void -__indirect_glVertexAttrib4NsvARB(GLuint index, const GLshort * v) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 16; - emit_header(gc->pc, X_GLrop_VertexAttrib4NsvARB, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&index), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(v), 8); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_VertexAttrib4NivARB 4237 -void -__indirect_glVertexAttrib4NivARB(GLuint index, const GLint * v) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 24; - emit_header(gc->pc, X_GLrop_VertexAttrib4NivARB, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&index), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(v), 16); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_VertexAttrib4NusvARB 4238 -void -__indirect_glVertexAttrib4NusvARB(GLuint index, const GLushort * v) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 16; - emit_header(gc->pc, X_GLrop_VertexAttrib4NusvARB, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&index), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(v), 8); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_VertexAttrib4NuivARB 4239 -void -__indirect_glVertexAttrib4NuivARB(GLuint index, const GLuint * v) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 24; - emit_header(gc->pc, X_GLrop_VertexAttrib4NuivARB, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&index), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(v), 16); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_ProgramStringARB 4217 -void -__indirect_glProgramStringARB(GLenum target, GLenum format, GLsizei len, const GLvoid * string) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 16 + __GLX_PAD(len); - if (__builtin_expect((len >= 0) && (gc->currentDpy != NULL), 1)) { - if (cmdlen <= gc->maxSmallRenderCommandSize) { - if ( (gc->pc + cmdlen) > gc->bufEnd ) { - (void) __glXFlushRenderBuffer(gc, gc->pc); - } - emit_header(gc->pc, X_GLrop_ProgramStringARB, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&target), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&format), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(&len), 4); - (void) memcpy((void *)(gc->pc + 16), (void *)(string), len); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } - } - else { - const GLint op = X_GLrop_ProgramStringARB; - const GLuint cmdlenLarge = cmdlen + 4; - GLubyte * const pc = __glXFlushRenderBuffer(gc, gc->pc); - (void) memcpy((void *)(pc + 0), (void *)(&cmdlenLarge), 4); - (void) memcpy((void *)(pc + 4), (void *)(&op), 4); - (void) memcpy((void *)(pc + 8), (void *)(&target), 4); - (void) memcpy((void *)(pc + 12), (void *)(&format), 4); - (void) memcpy((void *)(pc + 16), (void *)(&len), 4); - __glXSendLargeCommand(gc, pc, 20, string, len); - } - } -} - -#define X_GLrop_ProgramEnvParameter4dvARB 4185 -void -__indirect_glProgramEnvParameter4dARB(GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 44; - emit_header(gc->pc, X_GLrop_ProgramEnvParameter4dvARB, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&target), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&index), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(&x), 8); - (void) memcpy((void *)(gc->pc + 20), (void *)(&y), 8); - (void) memcpy((void *)(gc->pc + 28), (void *)(&z), 8); - (void) memcpy((void *)(gc->pc + 36), (void *)(&w), 8); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_ProgramEnvParameter4dvARB 4185 -void -__indirect_glProgramEnvParameter4dvARB(GLenum target, GLuint index, const GLdouble * params) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 44; - emit_header(gc->pc, X_GLrop_ProgramEnvParameter4dvARB, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&target), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&index), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(params), 32); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_ProgramEnvParameter4fvARB 4184 -void -__indirect_glProgramEnvParameter4fARB(GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 28; - emit_header(gc->pc, X_GLrop_ProgramEnvParameter4fvARB, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&target), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&index), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(&x), 4); - (void) memcpy((void *)(gc->pc + 16), (void *)(&y), 4); - (void) memcpy((void *)(gc->pc + 20), (void *)(&z), 4); - (void) memcpy((void *)(gc->pc + 24), (void *)(&w), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_ProgramEnvParameter4fvARB 4184 -void -__indirect_glProgramEnvParameter4fvARB(GLenum target, GLuint index, const GLfloat * params) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 28; - emit_header(gc->pc, X_GLrop_ProgramEnvParameter4fvARB, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&target), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&index), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(params), 16); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_ProgramLocalParameter4dvARB 4216 -void -__indirect_glProgramLocalParameter4dARB(GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 44; - emit_header(gc->pc, X_GLrop_ProgramLocalParameter4dvARB, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&target), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&index), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(&x), 8); - (void) memcpy((void *)(gc->pc + 20), (void *)(&y), 8); - (void) memcpy((void *)(gc->pc + 28), (void *)(&z), 8); - (void) memcpy((void *)(gc->pc + 36), (void *)(&w), 8); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_ProgramLocalParameter4dvARB 4216 -void -__indirect_glProgramLocalParameter4dvARB(GLenum target, GLuint index, const GLdouble * params) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 44; - emit_header(gc->pc, X_GLrop_ProgramLocalParameter4dvARB, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&target), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&index), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(params), 32); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_ProgramLocalParameter4fvARB 4215 -void -__indirect_glProgramLocalParameter4fARB(GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 28; - emit_header(gc->pc, X_GLrop_ProgramLocalParameter4fvARB, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&target), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&index), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(&x), 4); - (void) memcpy((void *)(gc->pc + 16), (void *)(&y), 4); - (void) memcpy((void *)(gc->pc + 20), (void *)(&z), 4); - (void) memcpy((void *)(gc->pc + 24), (void *)(&w), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_ProgramLocalParameter4fvARB 4215 -void -__indirect_glProgramLocalParameter4fvARB(GLenum target, GLuint index, const GLfloat * params) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 28; - emit_header(gc->pc, X_GLrop_ProgramLocalParameter4fvARB, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&target), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&index), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(params), 16); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLvop_GetProgramivARB 1307 -void -__indirect_glGetProgramivARB(GLenum target, GLenum pname, GLint * params) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - Display * const dpy = gc->currentDpy; - const GLuint cmdlen = 8; - if (__builtin_expect(dpy != NULL, 1)) { - GLubyte const * pc = __glXSetupVendorRequest(gc, X_GLXVendorPrivateWithReply, X_GLvop_GetProgramivARB, cmdlen); - (void) memcpy((void *)(pc + 0), (void *)(&target), 4); - (void) memcpy((void *)(pc + 4), (void *)(&pname), 4); - (void) __glXReadReply(dpy, 4, params, GL_FALSE); - UnlockDisplay(dpy); SyncHandle(); - } - return; -} - -#define X_GLvop_GetProgramStringARB 1308 -void -__indirect_glGetProgramStringARB(GLenum target, GLenum pname, GLvoid * string) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - Display * const dpy = gc->currentDpy; - const GLuint cmdlen = 8; - if (__builtin_expect(dpy != NULL, 1)) { - GLubyte const * pc = __glXSetupVendorRequest(gc, X_GLXVendorPrivateWithReply, X_GLvop_GetProgramStringARB, cmdlen); - (void) memcpy((void *)(pc + 0), (void *)(&target), 4); - (void) memcpy((void *)(pc + 4), (void *)(&pname), 4); - (void) __glXReadReply(dpy, 1, string, GL_TRUE); - UnlockDisplay(dpy); SyncHandle(); - } - return; -} - -#define X_GLrop_ProgramNamedParameter4fvNV 4218 -void -__indirect_glProgramNamedParameter4fNV(GLuint id, GLsizei len, const GLubyte * name, GLfloat x, GLfloat y, GLfloat z, GLfloat w) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 28 + __GLX_PAD(len); - if (__builtin_expect(len >= 0, 1)) { - emit_header(gc->pc, X_GLrop_ProgramNamedParameter4fvNV, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&id), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&len), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(&x), 4); - (void) memcpy((void *)(gc->pc + 16), (void *)(&y), 4); - (void) memcpy((void *)(gc->pc + 20), (void *)(&z), 4); - (void) memcpy((void *)(gc->pc + 24), (void *)(&w), 4); - (void) memcpy((void *)(gc->pc + 28), (void *)(name), len); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } - } -} - -#define X_GLrop_ProgramNamedParameter4dvNV 4219 -void -__indirect_glProgramNamedParameter4dNV(GLuint id, GLsizei len, const GLubyte * name, GLdouble x, GLdouble y, GLdouble z, GLdouble w) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 44 + __GLX_PAD(len); - if (__builtin_expect(len >= 0, 1)) { - emit_header(gc->pc, X_GLrop_ProgramNamedParameter4dvNV, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&x), 8); - (void) memcpy((void *)(gc->pc + 12), (void *)(&y), 8); - (void) memcpy((void *)(gc->pc + 20), (void *)(&z), 8); - (void) memcpy((void *)(gc->pc + 28), (void *)(&w), 8); - (void) memcpy((void *)(gc->pc + 36), (void *)(&id), 4); - (void) memcpy((void *)(gc->pc + 40), (void *)(&len), 4); - (void) memcpy((void *)(gc->pc + 44), (void *)(name), len); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } - } -} - -#define X_GLrop_ProgramNamedParameter4fvNV 4218 -void -__indirect_glProgramNamedParameter4fvNV(GLuint id, GLsizei len, const GLubyte * name, const GLfloat * v) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 28 + __GLX_PAD(len); - if (__builtin_expect(len >= 0, 1)) { - emit_header(gc->pc, X_GLrop_ProgramNamedParameter4fvNV, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&id), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&len), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(v), 16); - (void) memcpy((void *)(gc->pc + 28), (void *)(name), len); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } - } -} - -#define X_GLrop_ProgramNamedParameter4dvNV 4219 -void -__indirect_glProgramNamedParameter4dvNV(GLuint id, GLsizei len, const GLubyte * name, const GLdouble * v) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 44 + __GLX_PAD(len); - if (__builtin_expect(len >= 0, 1)) { - emit_header(gc->pc, X_GLrop_ProgramNamedParameter4dvNV, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(v), 32); - (void) memcpy((void *)(gc->pc + 36), (void *)(&id), 4); - (void) memcpy((void *)(gc->pc + 40), (void *)(&len), 4); - (void) memcpy((void *)(gc->pc + 44), (void *)(name), len); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } - } -} - -#define X_GLvop_GetProgramNamedParameterfvNV 1310 -void -__indirect_glGetProgramNamedParameterfvNV(GLuint id, GLsizei len, const GLubyte * name, GLfloat * params) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - Display * const dpy = gc->currentDpy; - const GLuint cmdlen = 8 + __GLX_PAD(len); - if (__builtin_expect((len >= 0) && (dpy != NULL), 1)) { - GLubyte const * pc = __glXSetupVendorRequest(gc, X_GLXVendorPrivateWithReply, X_GLvop_GetProgramNamedParameterfvNV, cmdlen); - (void) memcpy((void *)(pc + 0), (void *)(&id), 4); - (void) memcpy((void *)(pc + 4), (void *)(&len), 4); - (void) memcpy((void *)(pc + 8), (void *)(name), len); - (void) __glXReadReply(dpy, 4, params, GL_TRUE); - UnlockDisplay(dpy); SyncHandle(); - } - return; -} - -#define X_GLvop_GetProgramNamedParameterdvNV 1311 -void -__indirect_glGetProgramNamedParameterdvNV(GLuint id, GLsizei len, const GLubyte * name, GLdouble * params) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - Display * const dpy = gc->currentDpy; - const GLuint cmdlen = 8 + __GLX_PAD(len); - if (__builtin_expect((len >= 0) && (dpy != NULL), 1)) { - GLubyte const * pc = __glXSetupVendorRequest(gc, X_GLXVendorPrivateWithReply, X_GLvop_GetProgramNamedParameterdvNV, cmdlen); - (void) memcpy((void *)(pc + 0), (void *)(&id), 4); - (void) memcpy((void *)(pc + 4), (void *)(&len), 4); - (void) memcpy((void *)(pc + 8), (void *)(name), len); - (void) __glXReadReply(dpy, 8, params, GL_TRUE); - UnlockDisplay(dpy); SyncHandle(); - } - return; -} - -#define X_GLsop_GenQueriesARB 162 -void -__indirect_glGenQueriesARB(GLsizei n, GLuint * ids) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - Display * const dpy = gc->currentDpy; - const GLuint cmdlen = 4; - if (__builtin_expect((n >= 0) && (dpy != NULL), 1)) { -#ifdef USE_XCB - XCBConnection *c = XCBConnectionOfDisplay(dpy); - (void) __glXFlushRenderBuffer(gc, gc->pc); - XCBGlxGenQueriesARBRep *reply = XCBGlxGenQueriesARBReply(c, XCBGlxGenQueriesARB(c, gc->currentContextTag, n), NULL); - (void)memcpy(ids, XCBGlxGenQueriesARBData(reply), XCBGlxGenQueriesARBDataLength(reply) * sizeof(GLuint)); - free(reply); -#else - GLubyte const * pc = __glXSetupSingleRequest(gc, X_GLsop_GenQueriesARB, cmdlen); - (void) memcpy((void *)(pc + 0), (void *)(&n), 4); - (void) __glXReadReply(dpy, 4, ids, GL_TRUE); - UnlockDisplay(dpy); SyncHandle(); -#endif /* USE_XCB */ - } - return; -} - -#define X_GLsop_DeleteQueriesARB 161 -void -__indirect_glDeleteQueriesARB(GLsizei n, const GLuint * ids) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - Display * const dpy = gc->currentDpy; - const GLuint cmdlen = 4 + __GLX_PAD((n * 4)); - if (__builtin_expect((n >= 0) && (dpy != NULL), 1)) { -#ifdef USE_XCB - XCBConnection *c = XCBConnectionOfDisplay(dpy); - (void) __glXFlushRenderBuffer(gc, gc->pc); - XCBGlxDeleteQueriesARB(c, gc->currentContextTag, n, ids); -#else - GLubyte const * pc = __glXSetupSingleRequest(gc, X_GLsop_DeleteQueriesARB, cmdlen); - (void) memcpy((void *)(pc + 0), (void *)(&n), 4); - (void) memcpy((void *)(pc + 4), (void *)(ids), (n * 4)); - UnlockDisplay(dpy); SyncHandle(); -#endif /* USE_XCB */ - } - return; -} - -#define X_GLsop_IsQueryARB 163 -GLboolean -__indirect_glIsQueryARB(GLuint id) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - Display * const dpy = gc->currentDpy; - GLboolean retval = (GLboolean) 0; - const GLuint cmdlen = 4; - if (__builtin_expect(dpy != NULL, 1)) { -#ifdef USE_XCB - XCBConnection *c = XCBConnectionOfDisplay(dpy); - (void) __glXFlushRenderBuffer(gc, gc->pc); - XCBGlxIsQueryARBRep *reply = XCBGlxIsQueryARBReply(c, XCBGlxIsQueryARB(c, gc->currentContextTag, id), NULL); - retval = reply->ret_val; - free(reply); -#else - GLubyte const * pc = __glXSetupSingleRequest(gc, X_GLsop_IsQueryARB, cmdlen); - (void) memcpy((void *)(pc + 0), (void *)(&id), 4); - retval = (GLboolean) __glXReadReply(dpy, 0, NULL, GL_FALSE); - UnlockDisplay(dpy); SyncHandle(); -#endif /* USE_XCB */ - } - return retval; -} - -#define X_GLrop_BeginQueryARB 231 -void -__indirect_glBeginQueryARB(GLenum target, GLuint id) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12; - emit_header(gc->pc, X_GLrop_BeginQueryARB, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&target), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&id), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_EndQueryARB 232 -void -__indirect_glEndQueryARB(GLenum target) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 8; - emit_header(gc->pc, X_GLrop_EndQueryARB, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&target), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLsop_GetQueryivARB 164 -void -__indirect_glGetQueryivARB(GLenum target, GLenum pname, GLint * params) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - Display * const dpy = gc->currentDpy; - const GLuint cmdlen = 8; - if (__builtin_expect(dpy != NULL, 1)) { -#ifdef USE_XCB - XCBConnection *c = XCBConnectionOfDisplay(dpy); - (void) __glXFlushRenderBuffer(gc, gc->pc); - XCBGlxGetQueryivARBRep *reply = XCBGlxGetQueryivARBReply(c, XCBGlxGetQueryivARB(c, gc->currentContextTag, target, pname), NULL); - if (XCBGlxGetQueryivARBDataLength(reply) == 0) - (void)memcpy(params, &reply->datum, sizeof(reply->datum)); - else - (void)memcpy(params, XCBGlxGetQueryivARBData(reply), XCBGlxGetQueryivARBDataLength(reply) * sizeof(GLint)); - free(reply); -#else - GLubyte const * pc = __glXSetupSingleRequest(gc, X_GLsop_GetQueryivARB, cmdlen); - (void) memcpy((void *)(pc + 0), (void *)(&target), 4); - (void) memcpy((void *)(pc + 4), (void *)(&pname), 4); - (void) __glXReadReply(dpy, 4, params, GL_FALSE); - UnlockDisplay(dpy); SyncHandle(); -#endif /* USE_XCB */ - } - return; -} - -#define X_GLsop_GetQueryObjectivARB 165 -void -__indirect_glGetQueryObjectivARB(GLuint id, GLenum pname, GLint * params) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - Display * const dpy = gc->currentDpy; - const GLuint cmdlen = 8; - if (__builtin_expect(dpy != NULL, 1)) { -#ifdef USE_XCB - XCBConnection *c = XCBConnectionOfDisplay(dpy); - (void) __glXFlushRenderBuffer(gc, gc->pc); - XCBGlxGetQueryObjectivARBRep *reply = XCBGlxGetQueryObjectivARBReply(c, XCBGlxGetQueryObjectivARB(c, gc->currentContextTag, id, pname), NULL); - if (XCBGlxGetQueryObjectivARBDataLength(reply) == 0) - (void)memcpy(params, &reply->datum, sizeof(reply->datum)); - else - (void)memcpy(params, XCBGlxGetQueryObjectivARBData(reply), XCBGlxGetQueryObjectivARBDataLength(reply) * sizeof(GLint)); - free(reply); -#else - GLubyte const * pc = __glXSetupSingleRequest(gc, X_GLsop_GetQueryObjectivARB, cmdlen); - (void) memcpy((void *)(pc + 0), (void *)(&id), 4); - (void) memcpy((void *)(pc + 4), (void *)(&pname), 4); - (void) __glXReadReply(dpy, 4, params, GL_FALSE); - UnlockDisplay(dpy); SyncHandle(); -#endif /* USE_XCB */ - } - return; -} - -#define X_GLsop_GetQueryObjectuivARB 166 -void -__indirect_glGetQueryObjectuivARB(GLuint id, GLenum pname, GLuint * params) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - Display * const dpy = gc->currentDpy; - const GLuint cmdlen = 8; - if (__builtin_expect(dpy != NULL, 1)) { -#ifdef USE_XCB - XCBConnection *c = XCBConnectionOfDisplay(dpy); - (void) __glXFlushRenderBuffer(gc, gc->pc); - XCBGlxGetQueryObjectuivARBRep *reply = XCBGlxGetQueryObjectuivARBReply(c, XCBGlxGetQueryObjectuivARB(c, gc->currentContextTag, id, pname), NULL); - if (XCBGlxGetQueryObjectuivARBDataLength(reply) == 0) - (void)memcpy(params, &reply->datum, sizeof(reply->datum)); - else - (void)memcpy(params, XCBGlxGetQueryObjectuivARBData(reply), XCBGlxGetQueryObjectuivARBDataLength(reply) * sizeof(GLuint)); - free(reply); -#else - GLubyte const * pc = __glXSetupSingleRequest(gc, X_GLsop_GetQueryObjectuivARB, cmdlen); - (void) memcpy((void *)(pc + 0), (void *)(&id), 4); - (void) memcpy((void *)(pc + 4), (void *)(&pname), 4); - (void) __glXReadReply(dpy, 4, params, GL_FALSE); - UnlockDisplay(dpy); SyncHandle(); -#endif /* USE_XCB */ - } - return; -} - -#define X_GLvop_GetVertexAttribdvNV 1301 -void -__indirect_glGetVertexAttribdvNV(GLuint index, GLenum pname, GLdouble * params) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - Display * const dpy = gc->currentDpy; - const GLuint cmdlen = 8; - if (__builtin_expect(dpy != NULL, 1)) { - GLubyte const * pc = __glXSetupVendorRequest(gc, X_GLXVendorPrivateWithReply, X_GLvop_GetVertexAttribdvNV, cmdlen); - (void) memcpy((void *)(pc + 0), (void *)(&index), 4); - (void) memcpy((void *)(pc + 4), (void *)(&pname), 4); - (void) __glXReadReply(dpy, 8, params, GL_FALSE); - UnlockDisplay(dpy); SyncHandle(); - } - return; -} - -#define X_GLvop_GetVertexAttribfvNV 1302 -void -__indirect_glGetVertexAttribfvNV(GLuint index, GLenum pname, GLfloat * params) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - Display * const dpy = gc->currentDpy; - const GLuint cmdlen = 8; - if (__builtin_expect(dpy != NULL, 1)) { - GLubyte const * pc = __glXSetupVendorRequest(gc, X_GLXVendorPrivateWithReply, X_GLvop_GetVertexAttribfvNV, cmdlen); - (void) memcpy((void *)(pc + 0), (void *)(&index), 4); - (void) memcpy((void *)(pc + 4), (void *)(&pname), 4); - (void) __glXReadReply(dpy, 4, params, GL_FALSE); - UnlockDisplay(dpy); SyncHandle(); - } - return; -} - -#define X_GLvop_GetVertexAttribivNV 1303 -void -__indirect_glGetVertexAttribivNV(GLuint index, GLenum pname, GLint * params) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - Display * const dpy = gc->currentDpy; - const GLuint cmdlen = 8; - if (__builtin_expect(dpy != NULL, 1)) { - GLubyte const * pc = __glXSetupVendorRequest(gc, X_GLXVendorPrivateWithReply, X_GLvop_GetVertexAttribivNV, cmdlen); - (void) memcpy((void *)(pc + 0), (void *)(&index), 4); - (void) memcpy((void *)(pc + 4), (void *)(&pname), 4); - (void) __glXReadReply(dpy, 4, params, GL_FALSE); - UnlockDisplay(dpy); SyncHandle(); - } - return; -} - -#define X_GLrop_VertexAttrib1dvNV 4197 -void -__indirect_glVertexAttrib1dNV(GLuint index, GLdouble x) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 16; - emit_header(gc->pc, X_GLrop_VertexAttrib1dvNV, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&index), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&x), 8); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_VertexAttrib1dvNV 4197 -void -__indirect_glVertexAttrib1dvNV(GLuint index, const GLdouble * v) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 16; - emit_header(gc->pc, X_GLrop_VertexAttrib1dvNV, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&index), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(v), 8); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_VertexAttrib1fvNV 4193 -void -__indirect_glVertexAttrib1fNV(GLuint index, GLfloat x) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12; - emit_header(gc->pc, X_GLrop_VertexAttrib1fvNV, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&index), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&x), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_VertexAttrib1fvNV 4193 -void -__indirect_glVertexAttrib1fvNV(GLuint index, const GLfloat * v) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12; - emit_header(gc->pc, X_GLrop_VertexAttrib1fvNV, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&index), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(v), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_VertexAttrib1svNV 4189 -void -__indirect_glVertexAttrib1sNV(GLuint index, GLshort x) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12; - emit_header(gc->pc, X_GLrop_VertexAttrib1svNV, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&index), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&x), 2); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_VertexAttrib1svNV 4189 -void -__indirect_glVertexAttrib1svNV(GLuint index, const GLshort * v) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12; - emit_header(gc->pc, X_GLrop_VertexAttrib1svNV, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&index), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(v), 2); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_VertexAttrib2dvNV 4198 -void -__indirect_glVertexAttrib2dNV(GLuint index, GLdouble x, GLdouble y) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 24; - emit_header(gc->pc, X_GLrop_VertexAttrib2dvNV, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&index), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&x), 8); - (void) memcpy((void *)(gc->pc + 16), (void *)(&y), 8); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_VertexAttrib2dvNV 4198 -void -__indirect_glVertexAttrib2dvNV(GLuint index, const GLdouble * v) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 24; - emit_header(gc->pc, X_GLrop_VertexAttrib2dvNV, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&index), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(v), 16); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_VertexAttrib2fvNV 4194 -void -__indirect_glVertexAttrib2fNV(GLuint index, GLfloat x, GLfloat y) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 16; - emit_header(gc->pc, X_GLrop_VertexAttrib2fvNV, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&index), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&x), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(&y), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_VertexAttrib2fvNV 4194 -void -__indirect_glVertexAttrib2fvNV(GLuint index, const GLfloat * v) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 16; - emit_header(gc->pc, X_GLrop_VertexAttrib2fvNV, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&index), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(v), 8); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_VertexAttrib2svNV 4190 -void -__indirect_glVertexAttrib2sNV(GLuint index, GLshort x, GLshort y) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12; - emit_header(gc->pc, X_GLrop_VertexAttrib2svNV, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&index), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&x), 2); - (void) memcpy((void *)(gc->pc + 10), (void *)(&y), 2); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_VertexAttrib2svNV 4190 -void -__indirect_glVertexAttrib2svNV(GLuint index, const GLshort * v) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12; - emit_header(gc->pc, X_GLrop_VertexAttrib2svNV, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&index), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(v), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_VertexAttrib3dvNV 4199 -void -__indirect_glVertexAttrib3dNV(GLuint index, GLdouble x, GLdouble y, GLdouble z) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 32; - emit_header(gc->pc, X_GLrop_VertexAttrib3dvNV, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&index), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&x), 8); - (void) memcpy((void *)(gc->pc + 16), (void *)(&y), 8); - (void) memcpy((void *)(gc->pc + 24), (void *)(&z), 8); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_VertexAttrib3dvNV 4199 -void -__indirect_glVertexAttrib3dvNV(GLuint index, const GLdouble * v) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 32; - emit_header(gc->pc, X_GLrop_VertexAttrib3dvNV, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&index), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(v), 24); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_VertexAttrib3fvNV 4195 -void -__indirect_glVertexAttrib3fNV(GLuint index, GLfloat x, GLfloat y, GLfloat z) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 20; - emit_header(gc->pc, X_GLrop_VertexAttrib3fvNV, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&index), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&x), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(&y), 4); - (void) memcpy((void *)(gc->pc + 16), (void *)(&z), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_VertexAttrib3fvNV 4195 -void -__indirect_glVertexAttrib3fvNV(GLuint index, const GLfloat * v) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 20; - emit_header(gc->pc, X_GLrop_VertexAttrib3fvNV, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&index), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(v), 12); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_VertexAttrib3svNV 4191 -void -__indirect_glVertexAttrib3sNV(GLuint index, GLshort x, GLshort y, GLshort z) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 16; - emit_header(gc->pc, X_GLrop_VertexAttrib3svNV, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&index), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&x), 2); - (void) memcpy((void *)(gc->pc + 10), (void *)(&y), 2); - (void) memcpy((void *)(gc->pc + 12), (void *)(&z), 2); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_VertexAttrib3svNV 4191 -void -__indirect_glVertexAttrib3svNV(GLuint index, const GLshort * v) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 16; - emit_header(gc->pc, X_GLrop_VertexAttrib3svNV, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&index), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(v), 6); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_VertexAttrib4dvNV 4200 -void -__indirect_glVertexAttrib4dNV(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 40; - emit_header(gc->pc, X_GLrop_VertexAttrib4dvNV, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&index), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&x), 8); - (void) memcpy((void *)(gc->pc + 16), (void *)(&y), 8); - (void) memcpy((void *)(gc->pc + 24), (void *)(&z), 8); - (void) memcpy((void *)(gc->pc + 32), (void *)(&w), 8); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_VertexAttrib4dvNV 4200 -void -__indirect_glVertexAttrib4dvNV(GLuint index, const GLdouble * v) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 40; - emit_header(gc->pc, X_GLrop_VertexAttrib4dvNV, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&index), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(v), 32); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_VertexAttrib4fvNV 4196 -void -__indirect_glVertexAttrib4fNV(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 24; - emit_header(gc->pc, X_GLrop_VertexAttrib4fvNV, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&index), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&x), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(&y), 4); - (void) memcpy((void *)(gc->pc + 16), (void *)(&z), 4); - (void) memcpy((void *)(gc->pc + 20), (void *)(&w), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_VertexAttrib4fvNV 4196 -void -__indirect_glVertexAttrib4fvNV(GLuint index, const GLfloat * v) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 24; - emit_header(gc->pc, X_GLrop_VertexAttrib4fvNV, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&index), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(v), 16); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_VertexAttrib4svNV 4192 -void -__indirect_glVertexAttrib4sNV(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 16; - emit_header(gc->pc, X_GLrop_VertexAttrib4svNV, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&index), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&x), 2); - (void) memcpy((void *)(gc->pc + 10), (void *)(&y), 2); - (void) memcpy((void *)(gc->pc + 12), (void *)(&z), 2); - (void) memcpy((void *)(gc->pc + 14), (void *)(&w), 2); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_VertexAttrib4svNV 4192 -void -__indirect_glVertexAttrib4svNV(GLuint index, const GLshort * v) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 16; - emit_header(gc->pc, X_GLrop_VertexAttrib4svNV, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&index), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(v), 8); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_VertexAttrib4ubvNV 4201 -void -__indirect_glVertexAttrib4ubNV(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12; - emit_header(gc->pc, X_GLrop_VertexAttrib4ubvNV, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&index), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&x), 1); - (void) memcpy((void *)(gc->pc + 9), (void *)(&y), 1); - (void) memcpy((void *)(gc->pc + 10), (void *)(&z), 1); - (void) memcpy((void *)(gc->pc + 11), (void *)(&w), 1); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_VertexAttrib4ubvNV 4201 -void -__indirect_glVertexAttrib4ubvNV(GLuint index, const GLubyte * v) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12; - emit_header(gc->pc, X_GLrop_VertexAttrib4ubvNV, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&index), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(v), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLvop_IsRenderbufferEXT 1422 -GLboolean -__indirect_glIsRenderbufferEXT(GLuint renderbuffer) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - Display * const dpy = gc->currentDpy; - GLboolean retval = (GLboolean) 0; - const GLuint cmdlen = 4; - if (__builtin_expect(dpy != NULL, 1)) { - GLubyte const * pc = __glXSetupVendorRequest(gc, X_GLXVendorPrivateWithReply, X_GLvop_IsRenderbufferEXT, cmdlen); - (void) memcpy((void *)(pc + 0), (void *)(&renderbuffer), 4); - retval = (GLboolean) __glXReadReply(dpy, 0, NULL, GL_FALSE); - UnlockDisplay(dpy); SyncHandle(); - } - return retval; -} - -#define X_GLrop_BindRenderbufferEXT 4316 -void -__indirect_glBindRenderbufferEXT(GLenum target, GLuint renderbuffer) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12; - emit_header(gc->pc, X_GLrop_BindRenderbufferEXT, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&target), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&renderbuffer), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_DeleteRenderbuffersEXT 4317 -void -__indirect_glDeleteRenderbuffersEXT(GLsizei n, const GLuint * renderbuffers) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 8 + __GLX_PAD((n * 4)); - if (__builtin_expect(n >= 0, 1)) { - emit_header(gc->pc, X_GLrop_DeleteRenderbuffersEXT, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&n), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(renderbuffers), (n * 4)); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } - } -} - -#define X_GLvop_GenRenderbuffersEXT 1423 -void -__indirect_glGenRenderbuffersEXT(GLsizei n, GLuint * renderbuffers) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - Display * const dpy = gc->currentDpy; - const GLuint cmdlen = 4; - if (__builtin_expect((n >= 0) && (dpy != NULL), 1)) { - GLubyte const * pc = __glXSetupVendorRequest(gc, X_GLXVendorPrivateWithReply, X_GLvop_GenRenderbuffersEXT, cmdlen); - (void) memcpy((void *)(pc + 0), (void *)(&n), 4); - (void) __glXReadReply(dpy, 4, renderbuffers, GL_TRUE); - UnlockDisplay(dpy); SyncHandle(); - } - return; -} - -#define X_GLrop_RenderbufferStorageEXT 4318 -void -__indirect_glRenderbufferStorageEXT(GLenum target, GLenum internalformat, GLsizei width, GLsizei height) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 20; - emit_header(gc->pc, X_GLrop_RenderbufferStorageEXT, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&target), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&internalformat), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(&width), 4); - (void) memcpy((void *)(gc->pc + 16), (void *)(&height), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLvop_GetRenderbufferParameterivEXT 1424 -void -__indirect_glGetRenderbufferParameterivEXT(GLenum target, GLenum pname, GLint * params) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - Display * const dpy = gc->currentDpy; - const GLuint cmdlen = 8; - if (__builtin_expect(dpy != NULL, 1)) { - GLubyte const * pc = __glXSetupVendorRequest(gc, X_GLXVendorPrivateWithReply, X_GLvop_GetRenderbufferParameterivEXT, cmdlen); - (void) memcpy((void *)(pc + 0), (void *)(&target), 4); - (void) memcpy((void *)(pc + 4), (void *)(&pname), 4); - (void) __glXReadReply(dpy, 4, params, GL_FALSE); - UnlockDisplay(dpy); SyncHandle(); - } - return; -} - -#define X_GLvop_IsFramebufferEXT 1425 -GLboolean -__indirect_glIsFramebufferEXT(GLuint framebuffer) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - Display * const dpy = gc->currentDpy; - GLboolean retval = (GLboolean) 0; - const GLuint cmdlen = 4; - if (__builtin_expect(dpy != NULL, 1)) { - GLubyte const * pc = __glXSetupVendorRequest(gc, X_GLXVendorPrivateWithReply, X_GLvop_IsFramebufferEXT, cmdlen); - (void) memcpy((void *)(pc + 0), (void *)(&framebuffer), 4); - retval = (GLboolean) __glXReadReply(dpy, 0, NULL, GL_FALSE); - UnlockDisplay(dpy); SyncHandle(); - } - return retval; -} - -#define X_GLrop_BindFramebufferEXT 4319 -void -__indirect_glBindFramebufferEXT(GLenum target, GLuint framebuffer) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 12; - emit_header(gc->pc, X_GLrop_BindFramebufferEXT, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&target), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&framebuffer), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_DeleteFramebuffersEXT 4320 -void -__indirect_glDeleteFramebuffersEXT(GLsizei n, const GLuint * framebuffers) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 8 + __GLX_PAD((n * 4)); - if (__builtin_expect(n >= 0, 1)) { - emit_header(gc->pc, X_GLrop_DeleteFramebuffersEXT, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&n), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(framebuffers), (n * 4)); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } - } -} - -#define X_GLvop_GenFramebuffersEXT 1426 -void -__indirect_glGenFramebuffersEXT(GLsizei n, GLuint * framebuffers) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - Display * const dpy = gc->currentDpy; - const GLuint cmdlen = 4; - if (__builtin_expect((n >= 0) && (dpy != NULL), 1)) { - GLubyte const * pc = __glXSetupVendorRequest(gc, X_GLXVendorPrivateWithReply, X_GLvop_GenFramebuffersEXT, cmdlen); - (void) memcpy((void *)(pc + 0), (void *)(&n), 4); - (void) __glXReadReply(dpy, 4, framebuffers, GL_TRUE); - UnlockDisplay(dpy); SyncHandle(); - } - return; -} - -#define X_GLvop_CheckFramebufferStatusEXT 1427 -GLenum -__indirect_glCheckFramebufferStatusEXT(GLenum target) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - Display * const dpy = gc->currentDpy; - GLenum retval = (GLenum) 0; - const GLuint cmdlen = 4; - if (__builtin_expect(dpy != NULL, 1)) { - GLubyte const * pc = __glXSetupVendorRequest(gc, X_GLXVendorPrivateWithReply, X_GLvop_CheckFramebufferStatusEXT, cmdlen); - (void) memcpy((void *)(pc + 0), (void *)(&target), 4); - retval = (GLenum) __glXReadReply(dpy, 0, NULL, GL_FALSE); - UnlockDisplay(dpy); SyncHandle(); - } - return retval; -} - -#define X_GLrop_FramebufferTexture1DEXT 4321 -void -__indirect_glFramebufferTexture1DEXT(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 24; - emit_header(gc->pc, X_GLrop_FramebufferTexture1DEXT, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&target), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&attachment), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(&textarget), 4); - (void) memcpy((void *)(gc->pc + 16), (void *)(&texture), 4); - (void) memcpy((void *)(gc->pc + 20), (void *)(&level), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_FramebufferTexture2DEXT 4322 -void -__indirect_glFramebufferTexture2DEXT(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 24; - emit_header(gc->pc, X_GLrop_FramebufferTexture2DEXT, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&target), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&attachment), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(&textarget), 4); - (void) memcpy((void *)(gc->pc + 16), (void *)(&texture), 4); - (void) memcpy((void *)(gc->pc + 20), (void *)(&level), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_FramebufferTexture3DEXT 4323 -void -__indirect_glFramebufferTexture3DEXT(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 28; - emit_header(gc->pc, X_GLrop_FramebufferTexture3DEXT, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&target), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&attachment), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(&textarget), 4); - (void) memcpy((void *)(gc->pc + 16), (void *)(&texture), 4); - (void) memcpy((void *)(gc->pc + 20), (void *)(&level), 4); - (void) memcpy((void *)(gc->pc + 24), (void *)(&zoffset), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLrop_FramebufferRenderbufferEXT 4324 -void -__indirect_glFramebufferRenderbufferEXT(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 20; - emit_header(gc->pc, X_GLrop_FramebufferRenderbufferEXT, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&target), 4); - (void) memcpy((void *)(gc->pc + 8), (void *)(&attachment), 4); - (void) memcpy((void *)(gc->pc + 12), (void *)(&renderbuffertarget), 4); - (void) memcpy((void *)(gc->pc + 16), (void *)(&renderbuffer), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - -#define X_GLvop_GetFramebufferAttachmentParameterivEXT 1428 -void -__indirect_glGetFramebufferAttachmentParameterivEXT(GLenum target, GLenum attachment, GLenum pname, GLint * params) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - Display * const dpy = gc->currentDpy; - const GLuint cmdlen = 12; - if (__builtin_expect(dpy != NULL, 1)) { - GLubyte const * pc = __glXSetupVendorRequest(gc, X_GLXVendorPrivateWithReply, X_GLvop_GetFramebufferAttachmentParameterivEXT, cmdlen); - (void) memcpy((void *)(pc + 0), (void *)(&target), 4); - (void) memcpy((void *)(pc + 4), (void *)(&attachment), 4); - (void) memcpy((void *)(pc + 8), (void *)(&pname), 4); - (void) __glXReadReply(dpy, 4, params, GL_FALSE); - UnlockDisplay(dpy); SyncHandle(); - } - return; -} - -#define X_GLrop_GenerateMipmapEXT 4325 -void -__indirect_glGenerateMipmapEXT(GLenum target) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - const GLuint cmdlen = 8; - emit_header(gc->pc, X_GLrop_GenerateMipmapEXT, cmdlen); - (void) memcpy((void *)(gc->pc + 4), (void *)(&target), 4); - gc->pc += cmdlen; - if (__builtin_expect(gc->pc > gc->limit, 0)) { (void) __glXFlushRenderBuffer(gc, gc->pc); } -} - - -# undef FASTCALL -# undef NOINLINE diff --git a/nx-X11/extras/Mesa/src/glx/x11/indirect.h b/nx-X11/extras/Mesa/src/glx/x11/indirect.h deleted file mode 100644 index 1c45fa28a..000000000 --- a/nx-X11/extras/Mesa/src/glx/x11/indirect.h +++ /dev/null @@ -1,707 +0,0 @@ -/* DO NOT EDIT - This file generated automatically by glX_proto_send.py (from Mesa) script */ - -/* - * Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas. - * (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 - * PRECISION INSIGHT, 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_H_ ) -# define _INDIRECT_H_ - -/** - * \file - * Prototypes for indirect rendering functions. - * - * \author Kevin E. Martin - * \author Ian Romanick - */ - -# if (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3)) && defined(__ELF__) -# define HIDDEN __attribute__((visibility("hidden"))) -# else -# define HIDDEN -# endif -# if defined(__i386__) && defined(__GNUC__) && !defined(__CYGWIN__) && !defined(__MINGW32__) -# define FASTCALL __attribute__((fastcall)) -# else -# define FASTCALL -# endif -# if defined(__GNUC__) -# define NOINLINE __attribute__((noinline)) -# else -# define NOINLINE -# endif - -#include "glxclient.h" - -extern HIDDEN NOINLINE CARD32 __glXReadReply( Display *dpy, size_t size, - void * dest, GLboolean reply_is_always_array ); - -extern HIDDEN NOINLINE void __glXReadPixelReply( Display *dpy, - __GLXcontext * gc, unsigned max_dim, GLint width, GLint height, - GLint depth, GLenum format, GLenum type, void * dest, - GLboolean dimensions_in_reply ); - -extern HIDDEN NOINLINE FASTCALL GLubyte * __glXSetupSingleRequest( - __GLXcontext * gc, GLint sop, GLint cmdlen ); - -extern HIDDEN NOINLINE FASTCALL GLubyte * __glXSetupVendorRequest( - __GLXcontext * gc, GLint code, GLint vop, GLint cmdlen ); - -extern HIDDEN void __indirect_glNewList(GLuint list, GLenum mode); -extern HIDDEN void __indirect_glEndList(void); -extern HIDDEN void __indirect_glCallList(GLuint list); -extern HIDDEN void __indirect_glCallLists(GLsizei n, GLenum type, const GLvoid * lists); -extern HIDDEN void __indirect_glDeleteLists(GLuint list, GLsizei range); -extern HIDDEN GLuint __indirect_glGenLists(GLsizei range); -extern HIDDEN void __indirect_glListBase(GLuint base); -extern HIDDEN void __indirect_glBegin(GLenum mode); -extern HIDDEN void __indirect_glBitmap(GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte * bitmap); -extern HIDDEN void __indirect_glColor3b(GLbyte red, GLbyte green, GLbyte blue); -extern HIDDEN void __indirect_glColor3bv(const GLbyte * v); -extern HIDDEN void __indirect_glColor3d(GLdouble red, GLdouble green, GLdouble blue); -extern HIDDEN void __indirect_glColor3dv(const GLdouble * v); -extern HIDDEN void __indirect_glColor3f(GLfloat red, GLfloat green, GLfloat blue); -extern HIDDEN void __indirect_glColor3fv(const GLfloat * v); -extern HIDDEN void __indirect_glColor3i(GLint red, GLint green, GLint blue); -extern HIDDEN void __indirect_glColor3iv(const GLint * v); -extern HIDDEN void __indirect_glColor3s(GLshort red, GLshort green, GLshort blue); -extern HIDDEN void __indirect_glColor3sv(const GLshort * v); -extern HIDDEN void __indirect_glColor3ub(GLubyte red, GLubyte green, GLubyte blue); -extern HIDDEN void __indirect_glColor3ubv(const GLubyte * v); -extern HIDDEN void __indirect_glColor3ui(GLuint red, GLuint green, GLuint blue); -extern HIDDEN void __indirect_glColor3uiv(const GLuint * v); -extern HIDDEN void __indirect_glColor3us(GLushort red, GLushort green, GLushort blue); -extern HIDDEN void __indirect_glColor3usv(const GLushort * v); -extern HIDDEN void __indirect_glColor4b(GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha); -extern HIDDEN void __indirect_glColor4bv(const GLbyte * v); -extern HIDDEN void __indirect_glColor4d(GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha); -extern HIDDEN void __indirect_glColor4dv(const GLdouble * v); -extern HIDDEN void __indirect_glColor4f(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -extern HIDDEN void __indirect_glColor4fv(const GLfloat * v); -extern HIDDEN void __indirect_glColor4i(GLint red, GLint green, GLint blue, GLint alpha); -extern HIDDEN void __indirect_glColor4iv(const GLint * v); -extern HIDDEN void __indirect_glColor4s(GLshort red, GLshort green, GLshort blue, GLshort alpha); -extern HIDDEN void __indirect_glColor4sv(const GLshort * v); -extern HIDDEN void __indirect_glColor4ub(GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha); -extern HIDDEN void __indirect_glColor4ubv(const GLubyte * v); -extern HIDDEN void __indirect_glColor4ui(GLuint red, GLuint green, GLuint blue, GLuint alpha); -extern HIDDEN void __indirect_glColor4uiv(const GLuint * v); -extern HIDDEN void __indirect_glColor4us(GLushort red, GLushort green, GLushort blue, GLushort alpha); -extern HIDDEN void __indirect_glColor4usv(const GLushort * v); -extern HIDDEN void __indirect_glEdgeFlag(GLboolean flag); -extern HIDDEN void __indirect_glEdgeFlagv(const GLboolean * flag); -extern HIDDEN void __indirect_glEnd(void); -extern HIDDEN void __indirect_glIndexd(GLdouble c); -extern HIDDEN void __indirect_glIndexdv(const GLdouble * c); -extern HIDDEN void __indirect_glIndexf(GLfloat c); -extern HIDDEN void __indirect_glIndexfv(const GLfloat * c); -extern HIDDEN void __indirect_glIndexi(GLint c); -extern HIDDEN void __indirect_glIndexiv(const GLint * c); -extern HIDDEN void __indirect_glIndexs(GLshort c); -extern HIDDEN void __indirect_glIndexsv(const GLshort * c); -extern HIDDEN void __indirect_glNormal3b(GLbyte nx, GLbyte ny, GLbyte nz); -extern HIDDEN void __indirect_glNormal3bv(const GLbyte * v); -extern HIDDEN void __indirect_glNormal3d(GLdouble nx, GLdouble ny, GLdouble nz); -extern HIDDEN void __indirect_glNormal3dv(const GLdouble * v); -extern HIDDEN void __indirect_glNormal3f(GLfloat nx, GLfloat ny, GLfloat nz); -extern HIDDEN void __indirect_glNormal3fv(const GLfloat * v); -extern HIDDEN void __indirect_glNormal3i(GLint nx, GLint ny, GLint nz); -extern HIDDEN void __indirect_glNormal3iv(const GLint * v); -extern HIDDEN void __indirect_glNormal3s(GLshort nx, GLshort ny, GLshort nz); -extern HIDDEN void __indirect_glNormal3sv(const GLshort * v); -extern HIDDEN void __indirect_glRasterPos2d(GLdouble x, GLdouble y); -extern HIDDEN void __indirect_glRasterPos2dv(const GLdouble * v); -extern HIDDEN void __indirect_glRasterPos2f(GLfloat x, GLfloat y); -extern HIDDEN void __indirect_glRasterPos2fv(const GLfloat * v); -extern HIDDEN void __indirect_glRasterPos2i(GLint x, GLint y); -extern HIDDEN void __indirect_glRasterPos2iv(const GLint * v); -extern HIDDEN void __indirect_glRasterPos2s(GLshort x, GLshort y); -extern HIDDEN void __indirect_glRasterPos2sv(const GLshort * v); -extern HIDDEN void __indirect_glRasterPos3d(GLdouble x, GLdouble y, GLdouble z); -extern HIDDEN void __indirect_glRasterPos3dv(const GLdouble * v); -extern HIDDEN void __indirect_glRasterPos3f(GLfloat x, GLfloat y, GLfloat z); -extern HIDDEN void __indirect_glRasterPos3fv(const GLfloat * v); -extern HIDDEN void __indirect_glRasterPos3i(GLint x, GLint y, GLint z); -extern HIDDEN void __indirect_glRasterPos3iv(const GLint * v); -extern HIDDEN void __indirect_glRasterPos3s(GLshort x, GLshort y, GLshort z); -extern HIDDEN void __indirect_glRasterPos3sv(const GLshort * v); -extern HIDDEN void __indirect_glRasterPos4d(GLdouble x, GLdouble y, GLdouble z, GLdouble w); -extern HIDDEN void __indirect_glRasterPos4dv(const GLdouble * v); -extern HIDDEN void __indirect_glRasterPos4f(GLfloat x, GLfloat y, GLfloat z, GLfloat w); -extern HIDDEN void __indirect_glRasterPos4fv(const GLfloat * v); -extern HIDDEN void __indirect_glRasterPos4i(GLint x, GLint y, GLint z, GLint w); -extern HIDDEN void __indirect_glRasterPos4iv(const GLint * v); -extern HIDDEN void __indirect_glRasterPos4s(GLshort x, GLshort y, GLshort z, GLshort w); -extern HIDDEN void __indirect_glRasterPos4sv(const GLshort * v); -extern HIDDEN void __indirect_glRectd(GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2); -extern HIDDEN void __indirect_glRectdv(const GLdouble * v1, const GLdouble * v2); -extern HIDDEN void __indirect_glRectf(GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2); -extern HIDDEN void __indirect_glRectfv(const GLfloat * v1, const GLfloat * v2); -extern HIDDEN void __indirect_glRecti(GLint x1, GLint y1, GLint x2, GLint y2); -extern HIDDEN void __indirect_glRectiv(const GLint * v1, const GLint * v2); -extern HIDDEN void __indirect_glRects(GLshort x1, GLshort y1, GLshort x2, GLshort y2); -extern HIDDEN void __indirect_glRectsv(const GLshort * v1, const GLshort * v2); -extern HIDDEN void __indirect_glTexCoord1d(GLdouble s); -extern HIDDEN void __indirect_glTexCoord1dv(const GLdouble * v); -extern HIDDEN void __indirect_glTexCoord1f(GLfloat s); -extern HIDDEN void __indirect_glTexCoord1fv(const GLfloat * v); -extern HIDDEN void __indirect_glTexCoord1i(GLint s); -extern HIDDEN void __indirect_glTexCoord1iv(const GLint * v); -extern HIDDEN void __indirect_glTexCoord1s(GLshort s); -extern HIDDEN void __indirect_glTexCoord1sv(const GLshort * v); -extern HIDDEN void __indirect_glTexCoord2d(GLdouble s, GLdouble t); -extern HIDDEN void __indirect_glTexCoord2dv(const GLdouble * v); -extern HIDDEN void __indirect_glTexCoord2f(GLfloat s, GLfloat t); -extern HIDDEN void __indirect_glTexCoord2fv(const GLfloat * v); -extern HIDDEN void __indirect_glTexCoord2i(GLint s, GLint t); -extern HIDDEN void __indirect_glTexCoord2iv(const GLint * v); -extern HIDDEN void __indirect_glTexCoord2s(GLshort s, GLshort t); -extern HIDDEN void __indirect_glTexCoord2sv(const GLshort * v); -extern HIDDEN void __indirect_glTexCoord3d(GLdouble s, GLdouble t, GLdouble r); -extern HIDDEN void __indirect_glTexCoord3dv(const GLdouble * v); -extern HIDDEN void __indirect_glTexCoord3f(GLfloat s, GLfloat t, GLfloat r); -extern HIDDEN void __indirect_glTexCoord3fv(const GLfloat * v); -extern HIDDEN void __indirect_glTexCoord3i(GLint s, GLint t, GLint r); -extern HIDDEN void __indirect_glTexCoord3iv(const GLint * v); -extern HIDDEN void __indirect_glTexCoord3s(GLshort s, GLshort t, GLshort r); -extern HIDDEN void __indirect_glTexCoord3sv(const GLshort * v); -extern HIDDEN void __indirect_glTexCoord4d(GLdouble s, GLdouble t, GLdouble r, GLdouble q); -extern HIDDEN void __indirect_glTexCoord4dv(const GLdouble * v); -extern HIDDEN void __indirect_glTexCoord4f(GLfloat s, GLfloat t, GLfloat r, GLfloat q); -extern HIDDEN void __indirect_glTexCoord4fv(const GLfloat * v); -extern HIDDEN void __indirect_glTexCoord4i(GLint s, GLint t, GLint r, GLint q); -extern HIDDEN void __indirect_glTexCoord4iv(const GLint * v); -extern HIDDEN void __indirect_glTexCoord4s(GLshort s, GLshort t, GLshort r, GLshort q); -extern HIDDEN void __indirect_glTexCoord4sv(const GLshort * v); -extern HIDDEN void __indirect_glVertex2d(GLdouble x, GLdouble y); -extern HIDDEN void __indirect_glVertex2dv(const GLdouble * v); -extern HIDDEN void __indirect_glVertex2f(GLfloat x, GLfloat y); -extern HIDDEN void __indirect_glVertex2fv(const GLfloat * v); -extern HIDDEN void __indirect_glVertex2i(GLint x, GLint y); -extern HIDDEN void __indirect_glVertex2iv(const GLint * v); -extern HIDDEN void __indirect_glVertex2s(GLshort x, GLshort y); -extern HIDDEN void __indirect_glVertex2sv(const GLshort * v); -extern HIDDEN void __indirect_glVertex3d(GLdouble x, GLdouble y, GLdouble z); -extern HIDDEN void __indirect_glVertex3dv(const GLdouble * v); -extern HIDDEN void __indirect_glVertex3f(GLfloat x, GLfloat y, GLfloat z); -extern HIDDEN void __indirect_glVertex3fv(const GLfloat * v); -extern HIDDEN void __indirect_glVertex3i(GLint x, GLint y, GLint z); -extern HIDDEN void __indirect_glVertex3iv(const GLint * v); -extern HIDDEN void __indirect_glVertex3s(GLshort x, GLshort y, GLshort z); -extern HIDDEN void __indirect_glVertex3sv(const GLshort * v); -extern HIDDEN void __indirect_glVertex4d(GLdouble x, GLdouble y, GLdouble z, GLdouble w); -extern HIDDEN void __indirect_glVertex4dv(const GLdouble * v); -extern HIDDEN void __indirect_glVertex4f(GLfloat x, GLfloat y, GLfloat z, GLfloat w); -extern HIDDEN void __indirect_glVertex4fv(const GLfloat * v); -extern HIDDEN void __indirect_glVertex4i(GLint x, GLint y, GLint z, GLint w); -extern HIDDEN void __indirect_glVertex4iv(const GLint * v); -extern HIDDEN void __indirect_glVertex4s(GLshort x, GLshort y, GLshort z, GLshort w); -extern HIDDEN void __indirect_glVertex4sv(const GLshort * v); -extern HIDDEN void __indirect_glClipPlane(GLenum plane, const GLdouble * equation); -extern HIDDEN void __indirect_glColorMaterial(GLenum face, GLenum mode); -extern HIDDEN void __indirect_glCullFace(GLenum mode); -extern HIDDEN void __indirect_glFogf(GLenum pname, GLfloat param); -extern HIDDEN void __indirect_glFogfv(GLenum pname, const GLfloat * params); -extern HIDDEN void __indirect_glFogi(GLenum pname, GLint param); -extern HIDDEN void __indirect_glFogiv(GLenum pname, const GLint * params); -extern HIDDEN void __indirect_glFrontFace(GLenum mode); -extern HIDDEN void __indirect_glHint(GLenum target, GLenum mode); -extern HIDDEN void __indirect_glLightf(GLenum light, GLenum pname, GLfloat param); -extern HIDDEN void __indirect_glLightfv(GLenum light, GLenum pname, const GLfloat * params); -extern HIDDEN void __indirect_glLighti(GLenum light, GLenum pname, GLint param); -extern HIDDEN void __indirect_glLightiv(GLenum light, GLenum pname, const GLint * params); -extern HIDDEN void __indirect_glLightModelf(GLenum pname, GLfloat param); -extern HIDDEN void __indirect_glLightModelfv(GLenum pname, const GLfloat * params); -extern HIDDEN void __indirect_glLightModeli(GLenum pname, GLint param); -extern HIDDEN void __indirect_glLightModeliv(GLenum pname, const GLint * params); -extern HIDDEN void __indirect_glLineStipple(GLint factor, GLushort pattern); -extern HIDDEN void __indirect_glLineWidth(GLfloat width); -extern HIDDEN void __indirect_glMaterialf(GLenum face, GLenum pname, GLfloat param); -extern HIDDEN void __indirect_glMaterialfv(GLenum face, GLenum pname, const GLfloat * params); -extern HIDDEN void __indirect_glMateriali(GLenum face, GLenum pname, GLint param); -extern HIDDEN void __indirect_glMaterialiv(GLenum face, GLenum pname, const GLint * params); -extern HIDDEN void __indirect_glPointSize(GLfloat size); -extern HIDDEN void __indirect_glPolygonMode(GLenum face, GLenum mode); -extern HIDDEN void __indirect_glPolygonStipple(const GLubyte * mask); -extern HIDDEN void __indirect_glScissor(GLint x, GLint y, GLsizei width, GLsizei height); -extern HIDDEN void __indirect_glShadeModel(GLenum mode); -extern HIDDEN void __indirect_glTexParameterf(GLenum target, GLenum pname, GLfloat param); -extern HIDDEN void __indirect_glTexParameterfv(GLenum target, GLenum pname, const GLfloat * params); -extern HIDDEN void __indirect_glTexParameteri(GLenum target, GLenum pname, GLint param); -extern HIDDEN void __indirect_glTexParameteriv(GLenum target, GLenum pname, const GLint * params); -extern HIDDEN void __indirect_glTexImage1D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid * pixels); -extern HIDDEN void __indirect_glTexImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid * pixels); -extern HIDDEN void __indirect_glTexEnvf(GLenum target, GLenum pname, GLfloat param); -extern HIDDEN void __indirect_glTexEnvfv(GLenum target, GLenum pname, const GLfloat * params); -extern HIDDEN void __indirect_glTexEnvi(GLenum target, GLenum pname, GLint param); -extern HIDDEN void __indirect_glTexEnviv(GLenum target, GLenum pname, const GLint * params); -extern HIDDEN void __indirect_glTexGend(GLenum coord, GLenum pname, GLdouble param); -extern HIDDEN void __indirect_glTexGendv(GLenum coord, GLenum pname, const GLdouble * params); -extern HIDDEN void __indirect_glTexGenf(GLenum coord, GLenum pname, GLfloat param); -extern HIDDEN void __indirect_glTexGenfv(GLenum coord, GLenum pname, const GLfloat * params); -extern HIDDEN void __indirect_glTexGeni(GLenum coord, GLenum pname, GLint param); -extern HIDDEN void __indirect_glTexGeniv(GLenum coord, GLenum pname, const GLint * params); -extern HIDDEN void __indirect_glFeedbackBuffer(GLsizei size, GLenum type, GLfloat * buffer); -extern HIDDEN void __indirect_glSelectBuffer(GLsizei size, GLuint * buffer); -extern HIDDEN GLint __indirect_glRenderMode(GLenum mode); -extern HIDDEN void __indirect_glInitNames(void); -extern HIDDEN void __indirect_glLoadName(GLuint name); -extern HIDDEN void __indirect_glPassThrough(GLfloat token); -extern HIDDEN void __indirect_glPopName(void); -extern HIDDEN void __indirect_glPushName(GLuint name); -extern HIDDEN void __indirect_glDrawBuffer(GLenum mode); -extern HIDDEN void __indirect_glClear(GLbitfield mask); -extern HIDDEN void __indirect_glClearAccum(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -extern HIDDEN void __indirect_glClearIndex(GLfloat c); -extern HIDDEN void __indirect_glClearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); -extern HIDDEN void __indirect_glClearStencil(GLint s); -extern HIDDEN void __indirect_glClearDepth(GLclampd depth); -extern HIDDEN void __indirect_glStencilMask(GLuint mask); -extern HIDDEN void __indirect_glColorMask(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); -extern HIDDEN void __indirect_glDepthMask(GLboolean flag); -extern HIDDEN void __indirect_glIndexMask(GLuint mask); -extern HIDDEN void __indirect_glAccum(GLenum op, GLfloat value); -extern HIDDEN void __indirect_glDisable(GLenum cap); -extern HIDDEN void __indirect_glEnable(GLenum cap); -extern HIDDEN void __indirect_glFinish(void); -extern HIDDEN void __indirect_glFlush(void); -extern HIDDEN void __indirect_glPopAttrib(void); -extern HIDDEN void __indirect_glPushAttrib(GLbitfield mask); -extern HIDDEN void __indirect_glMap1d(GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble * points); -extern HIDDEN void __indirect_glMap1f(GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat * points); -extern HIDDEN void __indirect_glMap2d(GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble * points); -extern HIDDEN void __indirect_glMap2f(GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat * points); -extern HIDDEN void __indirect_glMapGrid1d(GLint un, GLdouble u1, GLdouble u2); -extern HIDDEN void __indirect_glMapGrid1f(GLint un, GLfloat u1, GLfloat u2); -extern HIDDEN void __indirect_glMapGrid2d(GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2); -extern HIDDEN void __indirect_glMapGrid2f(GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2); -extern HIDDEN void __indirect_glEvalCoord1d(GLdouble u); -extern HIDDEN void __indirect_glEvalCoord1dv(const GLdouble * u); -extern HIDDEN void __indirect_glEvalCoord1f(GLfloat u); -extern HIDDEN void __indirect_glEvalCoord1fv(const GLfloat * u); -extern HIDDEN void __indirect_glEvalCoord2d(GLdouble u, GLdouble v); -extern HIDDEN void __indirect_glEvalCoord2dv(const GLdouble * u); -extern HIDDEN void __indirect_glEvalCoord2f(GLfloat u, GLfloat v); -extern HIDDEN void __indirect_glEvalCoord2fv(const GLfloat * u); -extern HIDDEN void __indirect_glEvalMesh1(GLenum mode, GLint i1, GLint i2); -extern HIDDEN void __indirect_glEvalPoint1(GLint i); -extern HIDDEN void __indirect_glEvalMesh2(GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2); -extern HIDDEN void __indirect_glEvalPoint2(GLint i, GLint j); -extern HIDDEN void __indirect_glAlphaFunc(GLenum func, GLclampf ref); -extern HIDDEN void __indirect_glBlendFunc(GLenum sfactor, GLenum dfactor); -extern HIDDEN void __indirect_glLogicOp(GLenum opcode); -extern HIDDEN void __indirect_glStencilFunc(GLenum func, GLint ref, GLuint mask); -extern HIDDEN void __indirect_glStencilOp(GLenum fail, GLenum zfail, GLenum zpass); -extern HIDDEN void __indirect_glDepthFunc(GLenum func); -extern HIDDEN void __indirect_glPixelZoom(GLfloat xfactor, GLfloat yfactor); -extern HIDDEN void __indirect_glPixelTransferf(GLenum pname, GLfloat param); -extern HIDDEN void __indirect_glPixelTransferi(GLenum pname, GLint param); -extern HIDDEN void __indirect_glPixelStoref(GLenum pname, GLfloat param); -extern HIDDEN void __indirect_glPixelStorei(GLenum pname, GLint param); -extern HIDDEN void __indirect_glPixelMapfv(GLenum map, GLsizei mapsize, const GLfloat * values); -extern HIDDEN void __indirect_glPixelMapuiv(GLenum map, GLsizei mapsize, const GLuint * values); -extern HIDDEN void __indirect_glPixelMapusv(GLenum map, GLsizei mapsize, const GLushort * values); -extern HIDDEN void __indirect_glReadBuffer(GLenum mode); -extern HIDDEN void __indirect_glCopyPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum type); -extern HIDDEN void __indirect_glReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid * pixels); -extern HIDDEN void __indirect_glDrawPixels(GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid * pixels); -extern HIDDEN void __indirect_glGetBooleanv(GLenum pname, GLboolean * params); -extern HIDDEN void __indirect_glGetClipPlane(GLenum plane, GLdouble * equation); -extern HIDDEN void __indirect_glGetDoublev(GLenum pname, GLdouble * params); -extern HIDDEN GLenum __indirect_glGetError(void); -extern HIDDEN void __indirect_glGetFloatv(GLenum pname, GLfloat * params); -extern HIDDEN void __indirect_glGetIntegerv(GLenum pname, GLint * params); -extern HIDDEN void __indirect_glGetLightfv(GLenum light, GLenum pname, GLfloat * params); -extern HIDDEN void __indirect_glGetLightiv(GLenum light, GLenum pname, GLint * params); -extern HIDDEN void __indirect_glGetMapdv(GLenum target, GLenum query, GLdouble * v); -extern HIDDEN void __indirect_glGetMapfv(GLenum target, GLenum query, GLfloat * v); -extern HIDDEN void __indirect_glGetMapiv(GLenum target, GLenum query, GLint * v); -extern HIDDEN void __indirect_glGetMaterialfv(GLenum face, GLenum pname, GLfloat * params); -extern HIDDEN void __indirect_glGetMaterialiv(GLenum face, GLenum pname, GLint * params); -extern HIDDEN void __indirect_glGetPixelMapfv(GLenum map, GLfloat * values); -extern HIDDEN void __indirect_glGetPixelMapuiv(GLenum map, GLuint * values); -extern HIDDEN void __indirect_glGetPixelMapusv(GLenum map, GLushort * values); -extern HIDDEN void __indirect_glGetPolygonStipple(GLubyte * mask); -extern HIDDEN const GLubyte * __indirect_glGetString(GLenum name); -extern HIDDEN void __indirect_glGetTexEnvfv(GLenum target, GLenum pname, GLfloat * params); -extern HIDDEN void __indirect_glGetTexEnviv(GLenum target, GLenum pname, GLint * params); -extern HIDDEN void __indirect_glGetTexGendv(GLenum coord, GLenum pname, GLdouble * params); -extern HIDDEN void __indirect_glGetTexGenfv(GLenum coord, GLenum pname, GLfloat * params); -extern HIDDEN void __indirect_glGetTexGeniv(GLenum coord, GLenum pname, GLint * params); -extern HIDDEN void __indirect_glGetTexImage(GLenum target, GLint level, GLenum format, GLenum type, GLvoid * pixels); -extern HIDDEN void __indirect_glGetTexParameterfv(GLenum target, GLenum pname, GLfloat * params); -extern HIDDEN void __indirect_glGetTexParameteriv(GLenum target, GLenum pname, GLint * params); -extern HIDDEN void __indirect_glGetTexLevelParameterfv(GLenum target, GLint level, GLenum pname, GLfloat * params); -extern HIDDEN void __indirect_glGetTexLevelParameteriv(GLenum target, GLint level, GLenum pname, GLint * params); -extern HIDDEN GLboolean __indirect_glIsEnabled(GLenum cap); -extern HIDDEN GLboolean __indirect_glIsList(GLuint list); -extern HIDDEN void __indirect_glDepthRange(GLclampd zNear, GLclampd zFar); -extern HIDDEN void __indirect_glFrustum(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); -extern HIDDEN void __indirect_glLoadIdentity(void); -extern HIDDEN void __indirect_glLoadMatrixf(const GLfloat * m); -extern HIDDEN void __indirect_glLoadMatrixd(const GLdouble * m); -extern HIDDEN void __indirect_glMatrixMode(GLenum mode); -extern HIDDEN void __indirect_glMultMatrixf(const GLfloat * m); -extern HIDDEN void __indirect_glMultMatrixd(const GLdouble * m); -extern HIDDEN void __indirect_glOrtho(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); -extern HIDDEN void __indirect_glPopMatrix(void); -extern HIDDEN void __indirect_glPushMatrix(void); -extern HIDDEN void __indirect_glRotated(GLdouble angle, GLdouble x, GLdouble y, GLdouble z); -extern HIDDEN void __indirect_glRotatef(GLfloat angle, GLfloat x, GLfloat y, GLfloat z); -extern HIDDEN void __indirect_glScaled(GLdouble x, GLdouble y, GLdouble z); -extern HIDDEN void __indirect_glScalef(GLfloat x, GLfloat y, GLfloat z); -extern HIDDEN void __indirect_glTranslated(GLdouble x, GLdouble y, GLdouble z); -extern HIDDEN void __indirect_glTranslatef(GLfloat x, GLfloat y, GLfloat z); -extern HIDDEN void __indirect_glViewport(GLint x, GLint y, GLsizei width, GLsizei height); -extern HIDDEN void __indirect_glArrayElement(GLint i); -extern HIDDEN void __indirect_glBindTexture(GLenum target, GLuint texture); -extern HIDDEN void __indirect_glColorPointer(GLint size, GLenum type, GLsizei stride, const GLvoid * pointer); -extern HIDDEN void __indirect_glDisableClientState(GLenum array); -extern HIDDEN void __indirect_glDrawArrays(GLenum mode, GLint first, GLsizei count); -extern HIDDEN void __indirect_glDrawElements(GLenum mode, GLsizei count, GLenum type, const GLvoid * indices); -extern HIDDEN void __indirect_glEdgeFlagPointer(GLsizei stride, const GLvoid * pointer); -extern HIDDEN void __indirect_glEnableClientState(GLenum array); -extern HIDDEN void __indirect_glIndexPointer(GLenum type, GLsizei stride, const GLvoid * pointer); -extern HIDDEN void __indirect_glIndexub(GLubyte c); -extern HIDDEN void __indirect_glIndexubv(const GLubyte * c); -extern HIDDEN void __indirect_glInterleavedArrays(GLenum format, GLsizei stride, const GLvoid * pointer); -extern HIDDEN void __indirect_glNormalPointer(GLenum type, GLsizei stride, const GLvoid * pointer); -extern HIDDEN void __indirect_glPolygonOffset(GLfloat factor, GLfloat units); -extern HIDDEN void __indirect_glTexCoordPointer(GLint size, GLenum type, GLsizei stride, const GLvoid * pointer); -extern HIDDEN void __indirect_glVertexPointer(GLint size, GLenum type, GLsizei stride, const GLvoid * pointer); -extern HIDDEN GLboolean __indirect_glAreTexturesResident(GLsizei n, const GLuint * textures, GLboolean * residences); -extern HIDDEN void __indirect_glCopyTexImage1D(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); -extern HIDDEN void __indirect_glCopyTexImage2D(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -extern HIDDEN void __indirect_glCopyTexSubImage1D(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); -extern HIDDEN void __indirect_glCopyTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -extern HIDDEN void __indirect_glDeleteTextures(GLsizei n, const GLuint * textures); -extern HIDDEN void __indirect_glGenTextures(GLsizei n, GLuint * textures); -extern HIDDEN void __indirect_glGetPointerv(GLenum pname, GLvoid ** params); -extern HIDDEN GLboolean __indirect_glIsTexture(GLuint texture); -extern HIDDEN void __indirect_glPrioritizeTextures(GLsizei n, const GLuint * textures, const GLclampf * priorities); -extern HIDDEN void __indirect_glTexSubImage1D(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid * pixels); -extern HIDDEN void __indirect_glTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid * pixels); -extern HIDDEN void __indirect_glPopClientAttrib(void); -extern HIDDEN void __indirect_glPushClientAttrib(GLbitfield mask); -extern HIDDEN void __indirect_glBlendColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); -extern HIDDEN void __indirect_glBlendEquation(GLenum mode); -extern HIDDEN void __indirect_glDrawRangeElements(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid * indices); -extern HIDDEN void __indirect_glColorTable(GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid * table); -extern HIDDEN void __indirect_glColorTableParameterfv(GLenum target, GLenum pname, const GLfloat * params); -extern HIDDEN void __indirect_glColorTableParameteriv(GLenum target, GLenum pname, const GLint * params); -extern HIDDEN void __indirect_glCopyColorTable(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); -extern HIDDEN void __indirect_glGetColorTable(GLenum target, GLenum format, GLenum type, GLvoid * table); -extern HIDDEN void __indirect_glGetColorTableParameterfv(GLenum target, GLenum pname, GLfloat * params); -extern HIDDEN void __indirect_glGetColorTableParameteriv(GLenum target, GLenum pname, GLint * params); -extern HIDDEN void __indirect_glColorSubTable(GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid * data); -extern HIDDEN void __indirect_glCopyColorSubTable(GLenum target, GLsizei start, GLint x, GLint y, GLsizei width); -extern HIDDEN void __indirect_glConvolutionFilter1D(GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid * image); -extern HIDDEN void __indirect_glConvolutionFilter2D(GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid * image); -extern HIDDEN void __indirect_glConvolutionParameterf(GLenum target, GLenum pname, GLfloat params); -extern HIDDEN void __indirect_glConvolutionParameterfv(GLenum target, GLenum pname, const GLfloat * params); -extern HIDDEN void __indirect_glConvolutionParameteri(GLenum target, GLenum pname, GLint params); -extern HIDDEN void __indirect_glConvolutionParameteriv(GLenum target, GLenum pname, const GLint * params); -extern HIDDEN void __indirect_glCopyConvolutionFilter1D(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); -extern HIDDEN void __indirect_glCopyConvolutionFilter2D(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height); -extern HIDDEN void __indirect_glGetConvolutionFilter(GLenum target, GLenum format, GLenum type, GLvoid * image); -extern HIDDEN void __indirect_glGetConvolutionParameterfv(GLenum target, GLenum pname, GLfloat * params); -extern HIDDEN void __indirect_glGetConvolutionParameteriv(GLenum target, GLenum pname, GLint * params); -extern HIDDEN void __indirect_glGetSeparableFilter(GLenum target, GLenum format, GLenum type, GLvoid * row, GLvoid * column, GLvoid * span); -extern HIDDEN void __indirect_glSeparableFilter2D(GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid * row, const GLvoid * column); -extern HIDDEN void __indirect_glGetHistogram(GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid * values); -extern HIDDEN void __indirect_glGetHistogramParameterfv(GLenum target, GLenum pname, GLfloat * params); -extern HIDDEN void __indirect_glGetHistogramParameteriv(GLenum target, GLenum pname, GLint * params); -extern HIDDEN void __indirect_glGetMinmax(GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid * values); -extern HIDDEN void __indirect_glGetMinmaxParameterfv(GLenum target, GLenum pname, GLfloat * params); -extern HIDDEN void __indirect_glGetMinmaxParameteriv(GLenum target, GLenum pname, GLint * params); -extern HIDDEN void __indirect_glHistogram(GLenum target, GLsizei width, GLenum internalformat, GLboolean sink); -extern HIDDEN void __indirect_glMinmax(GLenum target, GLenum internalformat, GLboolean sink); -extern HIDDEN void __indirect_glResetHistogram(GLenum target); -extern HIDDEN void __indirect_glResetMinmax(GLenum target); -extern HIDDEN void __indirect_glTexImage3D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid * pixels); -extern HIDDEN void __indirect_glTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid * pixels); -extern HIDDEN void __indirect_glCopyTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -extern HIDDEN void __indirect_glActiveTextureARB(GLenum texture); -extern HIDDEN void __indirect_glClientActiveTextureARB(GLenum texture); -extern HIDDEN void __indirect_glMultiTexCoord1dARB(GLenum target, GLdouble s); -extern HIDDEN void __indirect_glMultiTexCoord1dvARB(GLenum target, const GLdouble * v); -extern HIDDEN void __indirect_glMultiTexCoord1fARB(GLenum target, GLfloat s); -extern HIDDEN void __indirect_glMultiTexCoord1fvARB(GLenum target, const GLfloat * v); -extern HIDDEN void __indirect_glMultiTexCoord1iARB(GLenum target, GLint s); -extern HIDDEN void __indirect_glMultiTexCoord1ivARB(GLenum target, const GLint * v); -extern HIDDEN void __indirect_glMultiTexCoord1sARB(GLenum target, GLshort s); -extern HIDDEN void __indirect_glMultiTexCoord1svARB(GLenum target, const GLshort * v); -extern HIDDEN void __indirect_glMultiTexCoord2dARB(GLenum target, GLdouble s, GLdouble t); -extern HIDDEN void __indirect_glMultiTexCoord2dvARB(GLenum target, const GLdouble * v); -extern HIDDEN void __indirect_glMultiTexCoord2fARB(GLenum target, GLfloat s, GLfloat t); -extern HIDDEN void __indirect_glMultiTexCoord2fvARB(GLenum target, const GLfloat * v); -extern HIDDEN void __indirect_glMultiTexCoord2iARB(GLenum target, GLint s, GLint t); -extern HIDDEN void __indirect_glMultiTexCoord2ivARB(GLenum target, const GLint * v); -extern HIDDEN void __indirect_glMultiTexCoord2sARB(GLenum target, GLshort s, GLshort t); -extern HIDDEN void __indirect_glMultiTexCoord2svARB(GLenum target, const GLshort * v); -extern HIDDEN void __indirect_glMultiTexCoord3dARB(GLenum target, GLdouble s, GLdouble t, GLdouble r); -extern HIDDEN void __indirect_glMultiTexCoord3dvARB(GLenum target, const GLdouble * v); -extern HIDDEN void __indirect_glMultiTexCoord3fARB(GLenum target, GLfloat s, GLfloat t, GLfloat r); -extern HIDDEN void __indirect_glMultiTexCoord3fvARB(GLenum target, const GLfloat * v); -extern HIDDEN void __indirect_glMultiTexCoord3iARB(GLenum target, GLint s, GLint t, GLint r); -extern HIDDEN void __indirect_glMultiTexCoord3ivARB(GLenum target, const GLint * v); -extern HIDDEN void __indirect_glMultiTexCoord3sARB(GLenum target, GLshort s, GLshort t, GLshort r); -extern HIDDEN void __indirect_glMultiTexCoord3svARB(GLenum target, const GLshort * v); -extern HIDDEN void __indirect_glMultiTexCoord4dARB(GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); -extern HIDDEN void __indirect_glMultiTexCoord4dvARB(GLenum target, const GLdouble * v); -extern HIDDEN void __indirect_glMultiTexCoord4fARB(GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); -extern HIDDEN void __indirect_glMultiTexCoord4fvARB(GLenum target, const GLfloat * v); -extern HIDDEN void __indirect_glMultiTexCoord4iARB(GLenum target, GLint s, GLint t, GLint r, GLint q); -extern HIDDEN void __indirect_glMultiTexCoord4ivARB(GLenum target, const GLint * v); -extern HIDDEN void __indirect_glMultiTexCoord4sARB(GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); -extern HIDDEN void __indirect_glMultiTexCoord4svARB(GLenum target, const GLshort * v); -extern HIDDEN void __indirect_glLoadTransposeMatrixfARB(const GLfloat * m); -extern HIDDEN void __indirect_glLoadTransposeMatrixdARB(const GLdouble * m); -extern HIDDEN void __indirect_glMultTransposeMatrixfARB(const GLfloat * m); -extern HIDDEN void __indirect_glMultTransposeMatrixdARB(const GLdouble * m); -extern HIDDEN void __indirect_glSampleCoverageARB(GLclampf value, GLboolean invert); -extern HIDDEN void __indirect_glDrawBuffersARB(GLsizei n, const GLenum * bufs); -extern HIDDEN GLboolean __indirect_glAreTexturesResidentEXT(GLsizei n, const GLuint * textures, GLboolean * residences); -extern HIDDEN void __indirect_glGenTexturesEXT(GLsizei n, GLuint * textures); -extern HIDDEN GLboolean __indirect_glIsTextureEXT(GLuint texture); -extern HIDDEN void __indirect_glSampleMaskSGIS(GLclampf value, GLboolean invert); -extern HIDDEN void __indirect_glSamplePatternSGIS(GLenum pattern); -extern HIDDEN void __indirect_glColorPointerEXT(GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid * pointer); -extern HIDDEN void __indirect_glEdgeFlagPointerEXT(GLsizei stride, GLsizei count, const GLboolean * pointer); -extern HIDDEN void __indirect_glIndexPointerEXT(GLenum type, GLsizei stride, GLsizei count, const GLvoid * pointer); -extern HIDDEN void __indirect_glNormalPointerEXT(GLenum type, GLsizei stride, GLsizei count, const GLvoid * pointer); -extern HIDDEN void __indirect_glTexCoordPointerEXT(GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid * pointer); -extern HIDDEN void __indirect_glVertexPointerEXT(GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid * pointer); -extern HIDDEN void __indirect_glPointParameterfEXT(GLenum pname, GLfloat param); -extern HIDDEN void __indirect_glPointParameterfvEXT(GLenum pname, const GLfloat * params); -extern HIDDEN void __indirect_glWindowPos2dMESA(GLdouble x, GLdouble y); -extern HIDDEN void __indirect_glWindowPos2dvMESA(const GLdouble * v); -extern HIDDEN void __indirect_glWindowPos2fMESA(GLfloat x, GLfloat y); -extern HIDDEN void __indirect_glWindowPos2fvMESA(const GLfloat * v); -extern HIDDEN void __indirect_glWindowPos2iMESA(GLint x, GLint y); -extern HIDDEN void __indirect_glWindowPos2ivMESA(const GLint * v); -extern HIDDEN void __indirect_glWindowPos2sMESA(GLshort x, GLshort y); -extern HIDDEN void __indirect_glWindowPos2svMESA(const GLshort * v); -extern HIDDEN void __indirect_glWindowPos3dMESA(GLdouble x, GLdouble y, GLdouble z); -extern HIDDEN void __indirect_glWindowPos3dvMESA(const GLdouble * v); -extern HIDDEN void __indirect_glWindowPos3fMESA(GLfloat x, GLfloat y, GLfloat z); -extern HIDDEN void __indirect_glWindowPos3fvMESA(const GLfloat * v); -extern HIDDEN void __indirect_glWindowPos3iMESA(GLint x, GLint y, GLint z); -extern HIDDEN void __indirect_glWindowPos3ivMESA(const GLint * v); -extern HIDDEN void __indirect_glWindowPos3sMESA(GLshort x, GLshort y, GLshort z); -extern HIDDEN void __indirect_glWindowPos3svMESA(const GLshort * v); -extern HIDDEN void __indirect_glBlendFuncSeparateEXT(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); -extern HIDDEN void __indirect_glFogCoordfEXT(GLfloat coord); -extern HIDDEN void __indirect_glFogCoordfvEXT(const GLfloat * coord); -extern HIDDEN void __indirect_glFogCoorddEXT(GLdouble coord); -extern HIDDEN void __indirect_glFogCoorddvEXT(const GLdouble * coord); -extern HIDDEN void __indirect_glFogCoordPointerEXT(GLenum type, GLsizei stride, const GLvoid * pointer); -extern HIDDEN void __indirect_glCompressedTexImage3DARB(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid * data); -extern HIDDEN void __indirect_glCompressedTexImage2DARB(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid * data); -extern HIDDEN void __indirect_glCompressedTexImage1DARB(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid * data); -extern HIDDEN void __indirect_glCompressedTexSubImage3DARB(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid * data); -extern HIDDEN void __indirect_glCompressedTexSubImage2DARB(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid * data); -extern HIDDEN void __indirect_glCompressedTexSubImage1DARB(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid * data); -extern HIDDEN void __indirect_glGetCompressedTexImageARB(GLenum target, GLint level, GLvoid * img); -extern HIDDEN void __indirect_glSecondaryColor3bEXT(GLbyte red, GLbyte green, GLbyte blue); -extern HIDDEN void __indirect_glSecondaryColor3bvEXT(const GLbyte * v); -extern HIDDEN void __indirect_glSecondaryColor3dEXT(GLdouble red, GLdouble green, GLdouble blue); -extern HIDDEN void __indirect_glSecondaryColor3dvEXT(const GLdouble * v); -extern HIDDEN void __indirect_glSecondaryColor3fEXT(GLfloat red, GLfloat green, GLfloat blue); -extern HIDDEN void __indirect_glSecondaryColor3fvEXT(const GLfloat * v); -extern HIDDEN void __indirect_glSecondaryColor3iEXT(GLint red, GLint green, GLint blue); -extern HIDDEN void __indirect_glSecondaryColor3ivEXT(const GLint * v); -extern HIDDEN void __indirect_glSecondaryColor3sEXT(GLshort red, GLshort green, GLshort blue); -extern HIDDEN void __indirect_glSecondaryColor3svEXT(const GLshort * v); -extern HIDDEN void __indirect_glSecondaryColor3ubEXT(GLubyte red, GLubyte green, GLubyte blue); -extern HIDDEN void __indirect_glSecondaryColor3ubvEXT(const GLubyte * v); -extern HIDDEN void __indirect_glSecondaryColor3uiEXT(GLuint red, GLuint green, GLuint blue); -extern HIDDEN void __indirect_glSecondaryColor3uivEXT(const GLuint * v); -extern HIDDEN void __indirect_glSecondaryColor3usEXT(GLushort red, GLushort green, GLushort blue); -extern HIDDEN void __indirect_glSecondaryColor3usvEXT(const GLushort * v); -extern HIDDEN void __indirect_glSecondaryColorPointerEXT(GLint size, GLenum type, GLsizei stride, const GLvoid * pointer); -extern HIDDEN GLboolean __indirect_glAreProgramsResidentNV(GLsizei n, const GLuint * ids, GLboolean * residences); -extern HIDDEN void __indirect_glBindProgramNV(GLenum target, GLuint program); -extern HIDDEN void __indirect_glDeleteProgramsNV(GLsizei n, const GLuint * programs); -extern HIDDEN void __indirect_glExecuteProgramNV(GLenum target, GLuint id, const GLfloat * params); -extern HIDDEN void __indirect_glGenProgramsNV(GLsizei n, GLuint * programs); -extern HIDDEN void __indirect_glGetProgramParameterdvNV(GLenum target, GLuint index, GLenum pname, GLdouble * params); -extern HIDDEN void __indirect_glGetProgramParameterfvNV(GLenum target, GLuint index, GLenum pname, GLfloat * params); -extern HIDDEN void __indirect_glGetProgramivNV(GLuint id, GLenum pname, GLint * params); -extern HIDDEN void __indirect_glGetProgramStringNV(GLuint id, GLenum pname, GLubyte * program); -extern HIDDEN void __indirect_glGetTrackMatrixivNV(GLenum target, GLuint address, GLenum pname, GLint * params); -extern HIDDEN void __indirect_glGetVertexAttribdvARB(GLuint index, GLenum pname, GLdouble * params); -extern HIDDEN void __indirect_glGetVertexAttribfvARB(GLuint index, GLenum pname, GLfloat * params); -extern HIDDEN void __indirect_glGetVertexAttribivARB(GLuint index, GLenum pname, GLint * params); -extern HIDDEN void __indirect_glGetVertexAttribPointervNV(GLuint index, GLenum pname, GLvoid ** params); -extern HIDDEN GLboolean __indirect_glIsProgramNV(GLuint program); -extern HIDDEN void __indirect_glLoadProgramNV(GLenum target, GLuint id, GLsizei len, const GLubyte * program); -extern HIDDEN void __indirect_glProgramParameter4dNV(GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -extern HIDDEN void __indirect_glProgramParameter4dvNV(GLenum target, GLuint index, const GLdouble * params); -extern HIDDEN void __indirect_glProgramParameter4fNV(GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -extern HIDDEN void __indirect_glProgramParameter4fvNV(GLenum target, GLuint index, const GLfloat * params); -extern HIDDEN void __indirect_glProgramParameters4dvNV(GLenum target, GLuint index, GLuint num, const GLdouble * params); -extern HIDDEN void __indirect_glProgramParameters4fvNV(GLenum target, GLuint index, GLuint num, const GLfloat * params); -extern HIDDEN void __indirect_glRequestResidentProgramsNV(GLsizei n, const GLuint * ids); -extern HIDDEN void __indirect_glTrackMatrixNV(GLenum target, GLuint address, GLenum matrix, GLenum transform); -extern HIDDEN void __indirect_glVertexAttribPointerNV(GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid * pointer); -extern HIDDEN void __indirect_glVertexAttrib1dARB(GLuint index, GLdouble x); -extern HIDDEN void __indirect_glVertexAttrib1dvARB(GLuint index, const GLdouble * v); -extern HIDDEN void __indirect_glVertexAttrib1fARB(GLuint index, GLfloat x); -extern HIDDEN void __indirect_glVertexAttrib1fvARB(GLuint index, const GLfloat * v); -extern HIDDEN void __indirect_glVertexAttrib1sARB(GLuint index, GLshort x); -extern HIDDEN void __indirect_glVertexAttrib1svARB(GLuint index, const GLshort * v); -extern HIDDEN void __indirect_glVertexAttrib2dARB(GLuint index, GLdouble x, GLdouble y); -extern HIDDEN void __indirect_glVertexAttrib2dvARB(GLuint index, const GLdouble * v); -extern HIDDEN void __indirect_glVertexAttrib2fARB(GLuint index, GLfloat x, GLfloat y); -extern HIDDEN void __indirect_glVertexAttrib2fvARB(GLuint index, const GLfloat * v); -extern HIDDEN void __indirect_glVertexAttrib2sARB(GLuint index, GLshort x, GLshort y); -extern HIDDEN void __indirect_glVertexAttrib2svARB(GLuint index, const GLshort * v); -extern HIDDEN void __indirect_glVertexAttrib3dARB(GLuint index, GLdouble x, GLdouble y, GLdouble z); -extern HIDDEN void __indirect_glVertexAttrib3dvARB(GLuint index, const GLdouble * v); -extern HIDDEN void __indirect_glVertexAttrib3fARB(GLuint index, GLfloat x, GLfloat y, GLfloat z); -extern HIDDEN void __indirect_glVertexAttrib3fvARB(GLuint index, const GLfloat * v); -extern HIDDEN void __indirect_glVertexAttrib3sARB(GLuint index, GLshort x, GLshort y, GLshort z); -extern HIDDEN void __indirect_glVertexAttrib3svARB(GLuint index, const GLshort * v); -extern HIDDEN void __indirect_glVertexAttrib4dARB(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -extern HIDDEN void __indirect_glVertexAttrib4dvARB(GLuint index, const GLdouble * v); -extern HIDDEN void __indirect_glVertexAttrib4fARB(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -extern HIDDEN void __indirect_glVertexAttrib4fvARB(GLuint index, const GLfloat * v); -extern HIDDEN void __indirect_glVertexAttrib4sARB(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); -extern HIDDEN void __indirect_glVertexAttrib4svARB(GLuint index, const GLshort * v); -extern HIDDEN void __indirect_glVertexAttrib4NubARB(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); -extern HIDDEN void __indirect_glVertexAttrib4NubvARB(GLuint index, const GLubyte * v); -extern HIDDEN void __indirect_glVertexAttribs1dvNV(GLuint index, GLsizei n, const GLdouble * v); -extern HIDDEN void __indirect_glVertexAttribs1fvNV(GLuint index, GLsizei n, const GLfloat * v); -extern HIDDEN void __indirect_glVertexAttribs1svNV(GLuint index, GLsizei n, const GLshort * v); -extern HIDDEN void __indirect_glVertexAttribs2dvNV(GLuint index, GLsizei n, const GLdouble * v); -extern HIDDEN void __indirect_glVertexAttribs2fvNV(GLuint index, GLsizei n, const GLfloat * v); -extern HIDDEN void __indirect_glVertexAttribs2svNV(GLuint index, GLsizei n, const GLshort * v); -extern HIDDEN void __indirect_glVertexAttribs3dvNV(GLuint index, GLsizei n, const GLdouble * v); -extern HIDDEN void __indirect_glVertexAttribs3fvNV(GLuint index, GLsizei n, const GLfloat * v); -extern HIDDEN void __indirect_glVertexAttribs3svNV(GLuint index, GLsizei n, const GLshort * v); -extern HIDDEN void __indirect_glVertexAttribs4dvNV(GLuint index, GLsizei n, const GLdouble * v); -extern HIDDEN void __indirect_glVertexAttribs4fvNV(GLuint index, GLsizei n, const GLfloat * v); -extern HIDDEN void __indirect_glVertexAttribs4svNV(GLuint index, GLsizei n, const GLshort * v); -extern HIDDEN void __indirect_glVertexAttribs4ubvNV(GLuint index, GLsizei n, const GLubyte * v); -extern HIDDEN void __indirect_glPointParameteriNV(GLenum pname, GLint param); -extern HIDDEN void __indirect_glPointParameterivNV(GLenum pname, const GLint * params); -extern HIDDEN void __indirect_glMultiDrawArraysEXT(GLenum mode, GLint * first, GLsizei * count, GLsizei primcount); -extern HIDDEN void __indirect_glMultiDrawElementsEXT(GLenum mode, const GLsizei * count, GLenum type, const GLvoid ** indices, GLsizei primcount); -extern HIDDEN void __indirect_glActiveStencilFaceEXT(GLenum face); -extern HIDDEN void __indirect_glVertexAttrib4bvARB(GLuint index, const GLbyte * v); -extern HIDDEN void __indirect_glVertexAttrib4ivARB(GLuint index, const GLint * v); -extern HIDDEN void __indirect_glVertexAttrib4ubvARB(GLuint index, const GLubyte * v); -extern HIDDEN void __indirect_glVertexAttrib4usvARB(GLuint index, const GLushort * v); -extern HIDDEN void __indirect_glVertexAttrib4uivARB(GLuint index, const GLuint * v); -extern HIDDEN void __indirect_glVertexAttrib4NbvARB(GLuint index, const GLbyte * v); -extern HIDDEN void __indirect_glVertexAttrib4NsvARB(GLuint index, const GLshort * v); -extern HIDDEN void __indirect_glVertexAttrib4NivARB(GLuint index, const GLint * v); -extern HIDDEN void __indirect_glVertexAttrib4NusvARB(GLuint index, const GLushort * v); -extern HIDDEN void __indirect_glVertexAttrib4NuivARB(GLuint index, const GLuint * v); -extern HIDDEN void __indirect_glVertexAttribPointerARB(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid * pointer); -extern HIDDEN void __indirect_glEnableVertexAttribArrayARB(GLuint index); -extern HIDDEN void __indirect_glDisableVertexAttribArrayARB(GLuint index); -extern HIDDEN void __indirect_glProgramStringARB(GLenum target, GLenum format, GLsizei len, const GLvoid * string); -extern HIDDEN void __indirect_glProgramEnvParameter4dARB(GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -extern HIDDEN void __indirect_glProgramEnvParameter4dvARB(GLenum target, GLuint index, const GLdouble * params); -extern HIDDEN void __indirect_glProgramEnvParameter4fARB(GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -extern HIDDEN void __indirect_glProgramEnvParameter4fvARB(GLenum target, GLuint index, const GLfloat * params); -extern HIDDEN void __indirect_glProgramLocalParameter4dARB(GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -extern HIDDEN void __indirect_glProgramLocalParameter4dvARB(GLenum target, GLuint index, const GLdouble * params); -extern HIDDEN void __indirect_glProgramLocalParameter4fARB(GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -extern HIDDEN void __indirect_glProgramLocalParameter4fvARB(GLenum target, GLuint index, const GLfloat * params); -extern HIDDEN void __indirect_glGetProgramEnvParameterdvARB(GLenum target, GLuint index, GLdouble * params); -extern HIDDEN void __indirect_glGetProgramEnvParameterfvARB(GLenum target, GLuint index, GLfloat * params); -extern HIDDEN void __indirect_glGetProgramLocalParameterdvARB(GLenum target, GLuint index, GLdouble * params); -extern HIDDEN void __indirect_glGetProgramLocalParameterfvARB(GLenum target, GLuint index, GLfloat * params); -extern HIDDEN void __indirect_glGetProgramivARB(GLenum target, GLenum pname, GLint * params); -extern HIDDEN void __indirect_glGetProgramStringARB(GLenum target, GLenum pname, GLvoid * string); -extern HIDDEN void __indirect_glProgramNamedParameter4fNV(GLuint id, GLsizei len, const GLubyte * name, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -extern HIDDEN void __indirect_glProgramNamedParameter4dNV(GLuint id, GLsizei len, const GLubyte * name, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -extern HIDDEN void __indirect_glProgramNamedParameter4fvNV(GLuint id, GLsizei len, const GLubyte * name, const GLfloat * v); -extern HIDDEN void __indirect_glProgramNamedParameter4dvNV(GLuint id, GLsizei len, const GLubyte * name, const GLdouble * v); -extern HIDDEN void __indirect_glGetProgramNamedParameterfvNV(GLuint id, GLsizei len, const GLubyte * name, GLfloat * params); -extern HIDDEN void __indirect_glGetProgramNamedParameterdvNV(GLuint id, GLsizei len, const GLubyte * name, GLdouble * params); -extern HIDDEN void __indirect_glGenQueriesARB(GLsizei n, GLuint * ids); -extern HIDDEN void __indirect_glDeleteQueriesARB(GLsizei n, const GLuint * ids); -extern HIDDEN GLboolean __indirect_glIsQueryARB(GLuint id); -extern HIDDEN void __indirect_glBeginQueryARB(GLenum target, GLuint id); -extern HIDDEN void __indirect_glEndQueryARB(GLenum target); -extern HIDDEN void __indirect_glGetQueryivARB(GLenum target, GLenum pname, GLint * params); -extern HIDDEN void __indirect_glGetQueryObjectivARB(GLuint id, GLenum pname, GLint * params); -extern HIDDEN void __indirect_glGetQueryObjectuivARB(GLuint id, GLenum pname, GLuint * params); -extern HIDDEN void __indirect_glGetVertexAttribdvNV(GLuint index, GLenum pname, GLdouble * params); -extern HIDDEN void __indirect_glGetVertexAttribfvNV(GLuint index, GLenum pname, GLfloat * params); -extern HIDDEN void __indirect_glGetVertexAttribivNV(GLuint index, GLenum pname, GLint * params); -extern HIDDEN void __indirect_glVertexAttrib1dNV(GLuint index, GLdouble x); -extern HIDDEN void __indirect_glVertexAttrib1dvNV(GLuint index, const GLdouble * v); -extern HIDDEN void __indirect_glVertexAttrib1fNV(GLuint index, GLfloat x); -extern HIDDEN void __indirect_glVertexAttrib1fvNV(GLuint index, const GLfloat * v); -extern HIDDEN void __indirect_glVertexAttrib1sNV(GLuint index, GLshort x); -extern HIDDEN void __indirect_glVertexAttrib1svNV(GLuint index, const GLshort * v); -extern HIDDEN void __indirect_glVertexAttrib2dNV(GLuint index, GLdouble x, GLdouble y); -extern HIDDEN void __indirect_glVertexAttrib2dvNV(GLuint index, const GLdouble * v); -extern HIDDEN void __indirect_glVertexAttrib2fNV(GLuint index, GLfloat x, GLfloat y); -extern HIDDEN void __indirect_glVertexAttrib2fvNV(GLuint index, const GLfloat * v); -extern HIDDEN void __indirect_glVertexAttrib2sNV(GLuint index, GLshort x, GLshort y); -extern HIDDEN void __indirect_glVertexAttrib2svNV(GLuint index, const GLshort * v); -extern HIDDEN void __indirect_glVertexAttrib3dNV(GLuint index, GLdouble x, GLdouble y, GLdouble z); -extern HIDDEN void __indirect_glVertexAttrib3dvNV(GLuint index, const GLdouble * v); -extern HIDDEN void __indirect_glVertexAttrib3fNV(GLuint index, GLfloat x, GLfloat y, GLfloat z); -extern HIDDEN void __indirect_glVertexAttrib3fvNV(GLuint index, const GLfloat * v); -extern HIDDEN void __indirect_glVertexAttrib3sNV(GLuint index, GLshort x, GLshort y, GLshort z); -extern HIDDEN void __indirect_glVertexAttrib3svNV(GLuint index, const GLshort * v); -extern HIDDEN void __indirect_glVertexAttrib4dNV(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -extern HIDDEN void __indirect_glVertexAttrib4dvNV(GLuint index, const GLdouble * v); -extern HIDDEN void __indirect_glVertexAttrib4fNV(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -extern HIDDEN void __indirect_glVertexAttrib4fvNV(GLuint index, const GLfloat * v); -extern HIDDEN void __indirect_glVertexAttrib4sNV(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); -extern HIDDEN void __indirect_glVertexAttrib4svNV(GLuint index, const GLshort * v); -extern HIDDEN void __indirect_glVertexAttrib4ubNV(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); -extern HIDDEN void __indirect_glVertexAttrib4ubvNV(GLuint index, const GLubyte * v); -extern HIDDEN GLboolean __indirect_glIsRenderbufferEXT(GLuint renderbuffer); -extern HIDDEN void __indirect_glBindRenderbufferEXT(GLenum target, GLuint renderbuffer); -extern HIDDEN void __indirect_glDeleteRenderbuffersEXT(GLsizei n, const GLuint * renderbuffers); -extern HIDDEN void __indirect_glGenRenderbuffersEXT(GLsizei n, GLuint * renderbuffers); -extern HIDDEN void __indirect_glRenderbufferStorageEXT(GLenum target, GLenum internalformat, GLsizei width, GLsizei height); -extern HIDDEN void __indirect_glGetRenderbufferParameterivEXT(GLenum target, GLenum pname, GLint * params); -extern HIDDEN GLboolean __indirect_glIsFramebufferEXT(GLuint framebuffer); -extern HIDDEN void __indirect_glBindFramebufferEXT(GLenum target, GLuint framebuffer); -extern HIDDEN void __indirect_glDeleteFramebuffersEXT(GLsizei n, const GLuint * framebuffers); -extern HIDDEN void __indirect_glGenFramebuffersEXT(GLsizei n, GLuint * framebuffers); -extern HIDDEN GLenum __indirect_glCheckFramebufferStatusEXT(GLenum target); -extern HIDDEN void __indirect_glFramebufferTexture1DEXT(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -extern HIDDEN void __indirect_glFramebufferTexture2DEXT(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -extern HIDDEN void __indirect_glFramebufferTexture3DEXT(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); -extern HIDDEN void __indirect_glFramebufferRenderbufferEXT(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -extern HIDDEN void __indirect_glGetFramebufferAttachmentParameterivEXT(GLenum target, GLenum attachment, GLenum pname, GLint * params); -extern HIDDEN void __indirect_glGenerateMipmapEXT(GLenum target); - -# undef HIDDEN -# undef FASTCALL -# undef NOINLINE - -#endif /* !defined( _INDIRECT_H_ ) */ diff --git a/nx-X11/extras/Mesa/src/glx/x11/indirect_init.c b/nx-X11/extras/Mesa/src/glx/x11/indirect_init.c deleted file mode 100644 index 6627edfeb..000000000 --- a/nx-X11/extras/Mesa/src/glx/x11/indirect_init.c +++ /dev/null @@ -1,779 +0,0 @@ -/* DO NOT EDIT - This file generated automatically by glX_proto_send.py (from Mesa) script */ - -/* - * Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas. - * (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 - * PRECISION INSIGHT, 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. - */ - -/** - * \file indirect_init.c - * Initialize indirect rendering dispatch table. - * - * \author Kevin E. Martin - * \author Brian Paul - * \author Ian Romanick - */ - -#include "indirect_init.h" -#include "indirect.h" -#include "glapi.h" - - -/** - * No-op function used to initialize functions that have no GLX protocol - * support. - */ -static int NoOp(void) -{ - return 0; -} - -/** - * Create and initialize a new GL dispatch table. The table is initialized - * with GLX indirect rendering protocol functions. - */ -__GLapi * __glXNewIndirectAPI( void ) -{ - __GLapi *glAPI; - GLuint entries; - - entries = _glapi_get_dispatch_table_size(); - glAPI = (__GLapi *) Xmalloc(entries * sizeof(void *)); - - /* first, set all entries to point to no-op functions */ - { - int i; - void **dispatch = (void **) glAPI; - for (i = 0; i < entries; i++) { - dispatch[i] = (void *) NoOp; - } - } - - /* now, initialize the entries we understand */ - - /* 1.0 */ - - glAPI->NewList = __indirect_glNewList; - glAPI->EndList = __indirect_glEndList; - glAPI->CallList = __indirect_glCallList; - glAPI->CallLists = __indirect_glCallLists; - glAPI->DeleteLists = __indirect_glDeleteLists; - glAPI->GenLists = __indirect_glGenLists; - glAPI->ListBase = __indirect_glListBase; - glAPI->Begin = __indirect_glBegin; - glAPI->Bitmap = __indirect_glBitmap; - glAPI->Color3b = __indirect_glColor3b; - glAPI->Color3bv = __indirect_glColor3bv; - glAPI->Color3d = __indirect_glColor3d; - glAPI->Color3dv = __indirect_glColor3dv; - glAPI->Color3f = __indirect_glColor3f; - glAPI->Color3fv = __indirect_glColor3fv; - glAPI->Color3i = __indirect_glColor3i; - glAPI->Color3iv = __indirect_glColor3iv; - glAPI->Color3s = __indirect_glColor3s; - glAPI->Color3sv = __indirect_glColor3sv; - glAPI->Color3ub = __indirect_glColor3ub; - glAPI->Color3ubv = __indirect_glColor3ubv; - glAPI->Color3ui = __indirect_glColor3ui; - glAPI->Color3uiv = __indirect_glColor3uiv; - glAPI->Color3us = __indirect_glColor3us; - glAPI->Color3usv = __indirect_glColor3usv; - glAPI->Color4b = __indirect_glColor4b; - glAPI->Color4bv = __indirect_glColor4bv; - glAPI->Color4d = __indirect_glColor4d; - glAPI->Color4dv = __indirect_glColor4dv; - glAPI->Color4f = __indirect_glColor4f; - glAPI->Color4fv = __indirect_glColor4fv; - glAPI->Color4i = __indirect_glColor4i; - glAPI->Color4iv = __indirect_glColor4iv; - glAPI->Color4s = __indirect_glColor4s; - glAPI->Color4sv = __indirect_glColor4sv; - glAPI->Color4ub = __indirect_glColor4ub; - glAPI->Color4ubv = __indirect_glColor4ubv; - glAPI->Color4ui = __indirect_glColor4ui; - glAPI->Color4uiv = __indirect_glColor4uiv; - glAPI->Color4us = __indirect_glColor4us; - glAPI->Color4usv = __indirect_glColor4usv; - glAPI->EdgeFlag = __indirect_glEdgeFlag; - glAPI->EdgeFlagv = __indirect_glEdgeFlagv; - glAPI->End = __indirect_glEnd; - glAPI->Indexd = __indirect_glIndexd; - glAPI->Indexdv = __indirect_glIndexdv; - glAPI->Indexf = __indirect_glIndexf; - glAPI->Indexfv = __indirect_glIndexfv; - glAPI->Indexi = __indirect_glIndexi; - glAPI->Indexiv = __indirect_glIndexiv; - glAPI->Indexs = __indirect_glIndexs; - glAPI->Indexsv = __indirect_glIndexsv; - glAPI->Normal3b = __indirect_glNormal3b; - glAPI->Normal3bv = __indirect_glNormal3bv; - glAPI->Normal3d = __indirect_glNormal3d; - glAPI->Normal3dv = __indirect_glNormal3dv; - glAPI->Normal3f = __indirect_glNormal3f; - glAPI->Normal3fv = __indirect_glNormal3fv; - glAPI->Normal3i = __indirect_glNormal3i; - glAPI->Normal3iv = __indirect_glNormal3iv; - glAPI->Normal3s = __indirect_glNormal3s; - glAPI->Normal3sv = __indirect_glNormal3sv; - glAPI->RasterPos2d = __indirect_glRasterPos2d; - glAPI->RasterPos2dv = __indirect_glRasterPos2dv; - glAPI->RasterPos2f = __indirect_glRasterPos2f; - glAPI->RasterPos2fv = __indirect_glRasterPos2fv; - glAPI->RasterPos2i = __indirect_glRasterPos2i; - glAPI->RasterPos2iv = __indirect_glRasterPos2iv; - glAPI->RasterPos2s = __indirect_glRasterPos2s; - glAPI->RasterPos2sv = __indirect_glRasterPos2sv; - glAPI->RasterPos3d = __indirect_glRasterPos3d; - glAPI->RasterPos3dv = __indirect_glRasterPos3dv; - glAPI->RasterPos3f = __indirect_glRasterPos3f; - glAPI->RasterPos3fv = __indirect_glRasterPos3fv; - glAPI->RasterPos3i = __indirect_glRasterPos3i; - glAPI->RasterPos3iv = __indirect_glRasterPos3iv; - glAPI->RasterPos3s = __indirect_glRasterPos3s; - glAPI->RasterPos3sv = __indirect_glRasterPos3sv; - glAPI->RasterPos4d = __indirect_glRasterPos4d; - glAPI->RasterPos4dv = __indirect_glRasterPos4dv; - glAPI->RasterPos4f = __indirect_glRasterPos4f; - glAPI->RasterPos4fv = __indirect_glRasterPos4fv; - glAPI->RasterPos4i = __indirect_glRasterPos4i; - glAPI->RasterPos4iv = __indirect_glRasterPos4iv; - glAPI->RasterPos4s = __indirect_glRasterPos4s; - glAPI->RasterPos4sv = __indirect_glRasterPos4sv; - glAPI->Rectd = __indirect_glRectd; - glAPI->Rectdv = __indirect_glRectdv; - glAPI->Rectf = __indirect_glRectf; - glAPI->Rectfv = __indirect_glRectfv; - glAPI->Recti = __indirect_glRecti; - glAPI->Rectiv = __indirect_glRectiv; - glAPI->Rects = __indirect_glRects; - glAPI->Rectsv = __indirect_glRectsv; - glAPI->TexCoord1d = __indirect_glTexCoord1d; - glAPI->TexCoord1dv = __indirect_glTexCoord1dv; - glAPI->TexCoord1f = __indirect_glTexCoord1f; - glAPI->TexCoord1fv = __indirect_glTexCoord1fv; - glAPI->TexCoord1i = __indirect_glTexCoord1i; - glAPI->TexCoord1iv = __indirect_glTexCoord1iv; - glAPI->TexCoord1s = __indirect_glTexCoord1s; - glAPI->TexCoord1sv = __indirect_glTexCoord1sv; - glAPI->TexCoord2d = __indirect_glTexCoord2d; - glAPI->TexCoord2dv = __indirect_glTexCoord2dv; - glAPI->TexCoord2f = __indirect_glTexCoord2f; - glAPI->TexCoord2fv = __indirect_glTexCoord2fv; - glAPI->TexCoord2i = __indirect_glTexCoord2i; - glAPI->TexCoord2iv = __indirect_glTexCoord2iv; - glAPI->TexCoord2s = __indirect_glTexCoord2s; - glAPI->TexCoord2sv = __indirect_glTexCoord2sv; - glAPI->TexCoord3d = __indirect_glTexCoord3d; - glAPI->TexCoord3dv = __indirect_glTexCoord3dv; - glAPI->TexCoord3f = __indirect_glTexCoord3f; - glAPI->TexCoord3fv = __indirect_glTexCoord3fv; - glAPI->TexCoord3i = __indirect_glTexCoord3i; - glAPI->TexCoord3iv = __indirect_glTexCoord3iv; - glAPI->TexCoord3s = __indirect_glTexCoord3s; - glAPI->TexCoord3sv = __indirect_glTexCoord3sv; - glAPI->TexCoord4d = __indirect_glTexCoord4d; - glAPI->TexCoord4dv = __indirect_glTexCoord4dv; - glAPI->TexCoord4f = __indirect_glTexCoord4f; - glAPI->TexCoord4fv = __indirect_glTexCoord4fv; - glAPI->TexCoord4i = __indirect_glTexCoord4i; - glAPI->TexCoord4iv = __indirect_glTexCoord4iv; - glAPI->TexCoord4s = __indirect_glTexCoord4s; - glAPI->TexCoord4sv = __indirect_glTexCoord4sv; - glAPI->Vertex2d = __indirect_glVertex2d; - glAPI->Vertex2dv = __indirect_glVertex2dv; - glAPI->Vertex2f = __indirect_glVertex2f; - glAPI->Vertex2fv = __indirect_glVertex2fv; - glAPI->Vertex2i = __indirect_glVertex2i; - glAPI->Vertex2iv = __indirect_glVertex2iv; - glAPI->Vertex2s = __indirect_glVertex2s; - glAPI->Vertex2sv = __indirect_glVertex2sv; - glAPI->Vertex3d = __indirect_glVertex3d; - glAPI->Vertex3dv = __indirect_glVertex3dv; - glAPI->Vertex3f = __indirect_glVertex3f; - glAPI->Vertex3fv = __indirect_glVertex3fv; - glAPI->Vertex3i = __indirect_glVertex3i; - glAPI->Vertex3iv = __indirect_glVertex3iv; - glAPI->Vertex3s = __indirect_glVertex3s; - glAPI->Vertex3sv = __indirect_glVertex3sv; - glAPI->Vertex4d = __indirect_glVertex4d; - glAPI->Vertex4dv = __indirect_glVertex4dv; - glAPI->Vertex4f = __indirect_glVertex4f; - glAPI->Vertex4fv = __indirect_glVertex4fv; - glAPI->Vertex4i = __indirect_glVertex4i; - glAPI->Vertex4iv = __indirect_glVertex4iv; - glAPI->Vertex4s = __indirect_glVertex4s; - glAPI->Vertex4sv = __indirect_glVertex4sv; - glAPI->ClipPlane = __indirect_glClipPlane; - glAPI->ColorMaterial = __indirect_glColorMaterial; - glAPI->CullFace = __indirect_glCullFace; - glAPI->Fogf = __indirect_glFogf; - glAPI->Fogfv = __indirect_glFogfv; - glAPI->Fogi = __indirect_glFogi; - glAPI->Fogiv = __indirect_glFogiv; - glAPI->FrontFace = __indirect_glFrontFace; - glAPI->Hint = __indirect_glHint; - glAPI->Lightf = __indirect_glLightf; - glAPI->Lightfv = __indirect_glLightfv; - glAPI->Lighti = __indirect_glLighti; - glAPI->Lightiv = __indirect_glLightiv; - glAPI->LightModelf = __indirect_glLightModelf; - glAPI->LightModelfv = __indirect_glLightModelfv; - glAPI->LightModeli = __indirect_glLightModeli; - glAPI->LightModeliv = __indirect_glLightModeliv; - glAPI->LineStipple = __indirect_glLineStipple; - glAPI->LineWidth = __indirect_glLineWidth; - glAPI->Materialf = __indirect_glMaterialf; - glAPI->Materialfv = __indirect_glMaterialfv; - glAPI->Materiali = __indirect_glMateriali; - glAPI->Materialiv = __indirect_glMaterialiv; - glAPI->PointSize = __indirect_glPointSize; - glAPI->PolygonMode = __indirect_glPolygonMode; - glAPI->PolygonStipple = __indirect_glPolygonStipple; - glAPI->Scissor = __indirect_glScissor; - glAPI->ShadeModel = __indirect_glShadeModel; - glAPI->TexParameterf = __indirect_glTexParameterf; - glAPI->TexParameterfv = __indirect_glTexParameterfv; - glAPI->TexParameteri = __indirect_glTexParameteri; - glAPI->TexParameteriv = __indirect_glTexParameteriv; - glAPI->TexImage1D = __indirect_glTexImage1D; - glAPI->TexImage2D = __indirect_glTexImage2D; - glAPI->TexEnvf = __indirect_glTexEnvf; - glAPI->TexEnvfv = __indirect_glTexEnvfv; - glAPI->TexEnvi = __indirect_glTexEnvi; - glAPI->TexEnviv = __indirect_glTexEnviv; - glAPI->TexGend = __indirect_glTexGend; - glAPI->TexGendv = __indirect_glTexGendv; - glAPI->TexGenf = __indirect_glTexGenf; - glAPI->TexGenfv = __indirect_glTexGenfv; - glAPI->TexGeni = __indirect_glTexGeni; - glAPI->TexGeniv = __indirect_glTexGeniv; - glAPI->FeedbackBuffer = __indirect_glFeedbackBuffer; - glAPI->SelectBuffer = __indirect_glSelectBuffer; - glAPI->RenderMode = __indirect_glRenderMode; - glAPI->InitNames = __indirect_glInitNames; - glAPI->LoadName = __indirect_glLoadName; - glAPI->PassThrough = __indirect_glPassThrough; - glAPI->PopName = __indirect_glPopName; - glAPI->PushName = __indirect_glPushName; - glAPI->DrawBuffer = __indirect_glDrawBuffer; - glAPI->Clear = __indirect_glClear; - glAPI->ClearAccum = __indirect_glClearAccum; - glAPI->ClearIndex = __indirect_glClearIndex; - glAPI->ClearColor = __indirect_glClearColor; - glAPI->ClearStencil = __indirect_glClearStencil; - glAPI->ClearDepth = __indirect_glClearDepth; - glAPI->StencilMask = __indirect_glStencilMask; - glAPI->ColorMask = __indirect_glColorMask; - glAPI->DepthMask = __indirect_glDepthMask; - glAPI->IndexMask = __indirect_glIndexMask; - glAPI->Accum = __indirect_glAccum; - glAPI->Disable = __indirect_glDisable; - glAPI->Enable = __indirect_glEnable; - glAPI->Finish = __indirect_glFinish; - glAPI->Flush = __indirect_glFlush; - glAPI->PopAttrib = __indirect_glPopAttrib; - glAPI->PushAttrib = __indirect_glPushAttrib; - glAPI->Map1d = __indirect_glMap1d; - glAPI->Map1f = __indirect_glMap1f; - glAPI->Map2d = __indirect_glMap2d; - glAPI->Map2f = __indirect_glMap2f; - glAPI->MapGrid1d = __indirect_glMapGrid1d; - glAPI->MapGrid1f = __indirect_glMapGrid1f; - glAPI->MapGrid2d = __indirect_glMapGrid2d; - glAPI->MapGrid2f = __indirect_glMapGrid2f; - glAPI->EvalCoord1d = __indirect_glEvalCoord1d; - glAPI->EvalCoord1dv = __indirect_glEvalCoord1dv; - glAPI->EvalCoord1f = __indirect_glEvalCoord1f; - glAPI->EvalCoord1fv = __indirect_glEvalCoord1fv; - glAPI->EvalCoord2d = __indirect_glEvalCoord2d; - glAPI->EvalCoord2dv = __indirect_glEvalCoord2dv; - glAPI->EvalCoord2f = __indirect_glEvalCoord2f; - glAPI->EvalCoord2fv = __indirect_glEvalCoord2fv; - glAPI->EvalMesh1 = __indirect_glEvalMesh1; - glAPI->EvalPoint1 = __indirect_glEvalPoint1; - glAPI->EvalMesh2 = __indirect_glEvalMesh2; - glAPI->EvalPoint2 = __indirect_glEvalPoint2; - glAPI->AlphaFunc = __indirect_glAlphaFunc; - glAPI->BlendFunc = __indirect_glBlendFunc; - glAPI->LogicOp = __indirect_glLogicOp; - glAPI->StencilFunc = __indirect_glStencilFunc; - glAPI->StencilOp = __indirect_glStencilOp; - glAPI->DepthFunc = __indirect_glDepthFunc; - glAPI->PixelZoom = __indirect_glPixelZoom; - glAPI->PixelTransferf = __indirect_glPixelTransferf; - glAPI->PixelTransferi = __indirect_glPixelTransferi; - glAPI->PixelStoref = __indirect_glPixelStoref; - glAPI->PixelStorei = __indirect_glPixelStorei; - glAPI->PixelMapfv = __indirect_glPixelMapfv; - glAPI->PixelMapuiv = __indirect_glPixelMapuiv; - glAPI->PixelMapusv = __indirect_glPixelMapusv; - glAPI->ReadBuffer = __indirect_glReadBuffer; - glAPI->CopyPixels = __indirect_glCopyPixels; - glAPI->ReadPixels = __indirect_glReadPixels; - glAPI->DrawPixels = __indirect_glDrawPixels; - glAPI->GetBooleanv = __indirect_glGetBooleanv; - glAPI->GetClipPlane = __indirect_glGetClipPlane; - glAPI->GetDoublev = __indirect_glGetDoublev; - glAPI->GetError = __indirect_glGetError; - glAPI->GetFloatv = __indirect_glGetFloatv; - glAPI->GetIntegerv = __indirect_glGetIntegerv; - glAPI->GetLightfv = __indirect_glGetLightfv; - glAPI->GetLightiv = __indirect_glGetLightiv; - glAPI->GetMapdv = __indirect_glGetMapdv; - glAPI->GetMapfv = __indirect_glGetMapfv; - glAPI->GetMapiv = __indirect_glGetMapiv; - glAPI->GetMaterialfv = __indirect_glGetMaterialfv; - glAPI->GetMaterialiv = __indirect_glGetMaterialiv; - glAPI->GetPixelMapfv = __indirect_glGetPixelMapfv; - glAPI->GetPixelMapuiv = __indirect_glGetPixelMapuiv; - glAPI->GetPixelMapusv = __indirect_glGetPixelMapusv; - glAPI->GetPolygonStipple = __indirect_glGetPolygonStipple; - glAPI->GetString = __indirect_glGetString; - glAPI->GetTexEnvfv = __indirect_glGetTexEnvfv; - glAPI->GetTexEnviv = __indirect_glGetTexEnviv; - glAPI->GetTexGendv = __indirect_glGetTexGendv; - glAPI->GetTexGenfv = __indirect_glGetTexGenfv; - glAPI->GetTexGeniv = __indirect_glGetTexGeniv; - glAPI->GetTexImage = __indirect_glGetTexImage; - glAPI->GetTexParameterfv = __indirect_glGetTexParameterfv; - glAPI->GetTexParameteriv = __indirect_glGetTexParameteriv; - glAPI->GetTexLevelParameterfv = __indirect_glGetTexLevelParameterfv; - glAPI->GetTexLevelParameteriv = __indirect_glGetTexLevelParameteriv; - glAPI->IsEnabled = __indirect_glIsEnabled; - glAPI->IsList = __indirect_glIsList; - glAPI->DepthRange = __indirect_glDepthRange; - glAPI->Frustum = __indirect_glFrustum; - glAPI->LoadIdentity = __indirect_glLoadIdentity; - glAPI->LoadMatrixf = __indirect_glLoadMatrixf; - glAPI->LoadMatrixd = __indirect_glLoadMatrixd; - glAPI->MatrixMode = __indirect_glMatrixMode; - glAPI->MultMatrixf = __indirect_glMultMatrixf; - glAPI->MultMatrixd = __indirect_glMultMatrixd; - glAPI->Ortho = __indirect_glOrtho; - glAPI->PopMatrix = __indirect_glPopMatrix; - glAPI->PushMatrix = __indirect_glPushMatrix; - glAPI->Rotated = __indirect_glRotated; - glAPI->Rotatef = __indirect_glRotatef; - glAPI->Scaled = __indirect_glScaled; - glAPI->Scalef = __indirect_glScalef; - glAPI->Translated = __indirect_glTranslated; - glAPI->Translatef = __indirect_glTranslatef; - glAPI->Viewport = __indirect_glViewport; - - /* 1.1 */ - - glAPI->ArrayElement = __indirect_glArrayElement; - glAPI->BindTexture = __indirect_glBindTexture; - glAPI->ColorPointer = __indirect_glColorPointer; - glAPI->DisableClientState = __indirect_glDisableClientState; - glAPI->DrawArrays = __indirect_glDrawArrays; - glAPI->DrawElements = __indirect_glDrawElements; - glAPI->EdgeFlagPointer = __indirect_glEdgeFlagPointer; - glAPI->EnableClientState = __indirect_glEnableClientState; - glAPI->IndexPointer = __indirect_glIndexPointer; - glAPI->Indexub = __indirect_glIndexub; - glAPI->Indexubv = __indirect_glIndexubv; - glAPI->InterleavedArrays = __indirect_glInterleavedArrays; - glAPI->NormalPointer = __indirect_glNormalPointer; - glAPI->PolygonOffset = __indirect_glPolygonOffset; - glAPI->TexCoordPointer = __indirect_glTexCoordPointer; - glAPI->VertexPointer = __indirect_glVertexPointer; - glAPI->AreTexturesResident = __indirect_glAreTexturesResident; - glAPI->CopyTexImage1D = __indirect_glCopyTexImage1D; - glAPI->CopyTexImage2D = __indirect_glCopyTexImage2D; - glAPI->CopyTexSubImage1D = __indirect_glCopyTexSubImage1D; - glAPI->CopyTexSubImage2D = __indirect_glCopyTexSubImage2D; - glAPI->DeleteTextures = __indirect_glDeleteTextures; - glAPI->GenTextures = __indirect_glGenTextures; - glAPI->GetPointerv = __indirect_glGetPointerv; - glAPI->IsTexture = __indirect_glIsTexture; - glAPI->PrioritizeTextures = __indirect_glPrioritizeTextures; - glAPI->TexSubImage1D = __indirect_glTexSubImage1D; - glAPI->TexSubImage2D = __indirect_glTexSubImage2D; - glAPI->PopClientAttrib = __indirect_glPopClientAttrib; - glAPI->PushClientAttrib = __indirect_glPushClientAttrib; - - /* 1.2 */ - - glAPI->BlendColor = __indirect_glBlendColor; - glAPI->BlendEquation = __indirect_glBlendEquation; - glAPI->DrawRangeElements = __indirect_glDrawRangeElements; - glAPI->ColorTable = __indirect_glColorTable; - glAPI->ColorTableParameterfv = __indirect_glColorTableParameterfv; - glAPI->ColorTableParameteriv = __indirect_glColorTableParameteriv; - glAPI->CopyColorTable = __indirect_glCopyColorTable; - glAPI->GetColorTable = __indirect_glGetColorTable; - glAPI->GetColorTableParameterfv = __indirect_glGetColorTableParameterfv; - glAPI->GetColorTableParameteriv = __indirect_glGetColorTableParameteriv; - glAPI->ColorSubTable = __indirect_glColorSubTable; - glAPI->CopyColorSubTable = __indirect_glCopyColorSubTable; - glAPI->ConvolutionFilter1D = __indirect_glConvolutionFilter1D; - glAPI->ConvolutionFilter2D = __indirect_glConvolutionFilter2D; - glAPI->ConvolutionParameterf = __indirect_glConvolutionParameterf; - glAPI->ConvolutionParameterfv = __indirect_glConvolutionParameterfv; - glAPI->ConvolutionParameteri = __indirect_glConvolutionParameteri; - glAPI->ConvolutionParameteriv = __indirect_glConvolutionParameteriv; - glAPI->CopyConvolutionFilter1D = __indirect_glCopyConvolutionFilter1D; - glAPI->CopyConvolutionFilter2D = __indirect_glCopyConvolutionFilter2D; - glAPI->GetConvolutionFilter = __indirect_glGetConvolutionFilter; - glAPI->GetConvolutionParameterfv = __indirect_glGetConvolutionParameterfv; - glAPI->GetConvolutionParameteriv = __indirect_glGetConvolutionParameteriv; - glAPI->GetSeparableFilter = __indirect_glGetSeparableFilter; - glAPI->SeparableFilter2D = __indirect_glSeparableFilter2D; - glAPI->GetHistogram = __indirect_glGetHistogram; - glAPI->GetHistogramParameterfv = __indirect_glGetHistogramParameterfv; - glAPI->GetHistogramParameteriv = __indirect_glGetHistogramParameteriv; - glAPI->GetMinmax = __indirect_glGetMinmax; - glAPI->GetMinmaxParameterfv = __indirect_glGetMinmaxParameterfv; - glAPI->GetMinmaxParameteriv = __indirect_glGetMinmaxParameteriv; - glAPI->Histogram = __indirect_glHistogram; - glAPI->Minmax = __indirect_glMinmax; - glAPI->ResetHistogram = __indirect_glResetHistogram; - glAPI->ResetMinmax = __indirect_glResetMinmax; - glAPI->TexImage3D = __indirect_glTexImage3D; - glAPI->TexSubImage3D = __indirect_glTexSubImage3D; - glAPI->CopyTexSubImage3D = __indirect_glCopyTexSubImage3D; - - /* 1. GL_ARB_multitexture */ - - glAPI->MultiTexCoord2dARB = __indirect_glMultiTexCoord2dARB; - glAPI->MultiTexCoord2dvARB = __indirect_glMultiTexCoord2dvARB; - glAPI->MultiTexCoord2fARB = __indirect_glMultiTexCoord2fARB; - glAPI->MultiTexCoord2fvARB = __indirect_glMultiTexCoord2fvARB; - glAPI->MultiTexCoord2iARB = __indirect_glMultiTexCoord2iARB; - glAPI->MultiTexCoord2ivARB = __indirect_glMultiTexCoord2ivARB; - glAPI->MultiTexCoord2sARB = __indirect_glMultiTexCoord2sARB; - glAPI->MultiTexCoord2svARB = __indirect_glMultiTexCoord2svARB; - glAPI->MultiTexCoord3dARB = __indirect_glMultiTexCoord3dARB; - glAPI->MultiTexCoord3dvARB = __indirect_glMultiTexCoord3dvARB; - glAPI->MultiTexCoord3fARB = __indirect_glMultiTexCoord3fARB; - glAPI->MultiTexCoord3fvARB = __indirect_glMultiTexCoord3fvARB; - glAPI->MultiTexCoord3iARB = __indirect_glMultiTexCoord3iARB; - glAPI->MultiTexCoord3ivARB = __indirect_glMultiTexCoord3ivARB; - glAPI->MultiTexCoord3sARB = __indirect_glMultiTexCoord3sARB; - glAPI->MultiTexCoord3svARB = __indirect_glMultiTexCoord3svARB; - glAPI->MultiTexCoord4dARB = __indirect_glMultiTexCoord4dARB; - glAPI->MultiTexCoord4dvARB = __indirect_glMultiTexCoord4dvARB; - glAPI->MultiTexCoord4fARB = __indirect_glMultiTexCoord4fARB; - glAPI->MultiTexCoord4fvARB = __indirect_glMultiTexCoord4fvARB; - glAPI->MultiTexCoord4iARB = __indirect_glMultiTexCoord4iARB; - glAPI->MultiTexCoord4ivARB = __indirect_glMultiTexCoord4ivARB; - glAPI->MultiTexCoord4sARB = __indirect_glMultiTexCoord4sARB; - glAPI->MultiTexCoord4svARB = __indirect_glMultiTexCoord4svARB; - glAPI->ActiveTextureARB = __indirect_glActiveTextureARB; - glAPI->ClientActiveTextureARB = __indirect_glClientActiveTextureARB; - glAPI->MultiTexCoord1dARB = __indirect_glMultiTexCoord1dARB; - glAPI->MultiTexCoord1dvARB = __indirect_glMultiTexCoord1dvARB; - glAPI->MultiTexCoord1fARB = __indirect_glMultiTexCoord1fARB; - glAPI->MultiTexCoord1fvARB = __indirect_glMultiTexCoord1fvARB; - glAPI->MultiTexCoord1iARB = __indirect_glMultiTexCoord1iARB; - glAPI->MultiTexCoord1ivARB = __indirect_glMultiTexCoord1ivARB; - glAPI->MultiTexCoord1sARB = __indirect_glMultiTexCoord1sARB; - glAPI->MultiTexCoord1svARB = __indirect_glMultiTexCoord1svARB; - - /* 3. GL_ARB_transpose_matrix */ - - glAPI->LoadTransposeMatrixfARB = __indirect_glLoadTransposeMatrixfARB; - glAPI->LoadTransposeMatrixdARB = __indirect_glLoadTransposeMatrixdARB; - glAPI->MultTransposeMatrixfARB = __indirect_glMultTransposeMatrixfARB; - glAPI->MultTransposeMatrixdARB = __indirect_glMultTransposeMatrixdARB; - - /* 5. GL_ARB_multisample */ - - glAPI->SampleCoverageARB = __indirect_glSampleCoverageARB; - - /* 12. GL_ARB_texture_compression */ - - glAPI->CompressedTexImage3DARB = __indirect_glCompressedTexImage3DARB; - glAPI->CompressedTexImage2DARB = __indirect_glCompressedTexImage2DARB; - glAPI->CompressedTexImage1DARB = __indirect_glCompressedTexImage1DARB; - glAPI->CompressedTexSubImage3DARB = __indirect_glCompressedTexSubImage3DARB; - glAPI->CompressedTexSubImage2DARB = __indirect_glCompressedTexSubImage2DARB; - glAPI->CompressedTexSubImage1DARB = __indirect_glCompressedTexSubImage1DARB; - glAPI->GetCompressedTexImageARB = __indirect_glGetCompressedTexImageARB; - - /* 26. GL_ARB_vertex_program */ - - glAPI->VertexAttrib4bvARB = __indirect_glVertexAttrib4bvARB; - glAPI->VertexAttrib4ivARB = __indirect_glVertexAttrib4ivARB; - glAPI->VertexAttrib4ubvARB = __indirect_glVertexAttrib4ubvARB; - glAPI->VertexAttrib4usvARB = __indirect_glVertexAttrib4usvARB; - glAPI->VertexAttrib4uivARB = __indirect_glVertexAttrib4uivARB; - glAPI->VertexAttrib4NbvARB = __indirect_glVertexAttrib4NbvARB; - glAPI->VertexAttrib4NsvARB = __indirect_glVertexAttrib4NsvARB; - glAPI->VertexAttrib4NivARB = __indirect_glVertexAttrib4NivARB; - glAPI->VertexAttrib4NusvARB = __indirect_glVertexAttrib4NusvARB; - glAPI->VertexAttrib4NuivARB = __indirect_glVertexAttrib4NuivARB; - glAPI->VertexAttribPointerARB = __indirect_glVertexAttribPointerARB; - glAPI->EnableVertexAttribArrayARB = __indirect_glEnableVertexAttribArrayARB; - glAPI->DisableVertexAttribArrayARB = __indirect_glDisableVertexAttribArrayARB; - glAPI->ProgramStringARB = __indirect_glProgramStringARB; - glAPI->ProgramEnvParameter4dARB = __indirect_glProgramEnvParameter4dARB; - glAPI->ProgramEnvParameter4dvARB = __indirect_glProgramEnvParameter4dvARB; - glAPI->ProgramEnvParameter4fARB = __indirect_glProgramEnvParameter4fARB; - glAPI->ProgramEnvParameter4fvARB = __indirect_glProgramEnvParameter4fvARB; - glAPI->ProgramLocalParameter4dARB = __indirect_glProgramLocalParameter4dARB; - glAPI->ProgramLocalParameter4dvARB = __indirect_glProgramLocalParameter4dvARB; - glAPI->ProgramLocalParameter4fARB = __indirect_glProgramLocalParameter4fARB; - glAPI->ProgramLocalParameter4fvARB = __indirect_glProgramLocalParameter4fvARB; - glAPI->GetProgramEnvParameterdvARB = __indirect_glGetProgramEnvParameterdvARB; - glAPI->GetProgramEnvParameterfvARB = __indirect_glGetProgramEnvParameterfvARB; - glAPI->GetProgramLocalParameterdvARB = __indirect_glGetProgramLocalParameterdvARB; - glAPI->GetProgramLocalParameterfvARB = __indirect_glGetProgramLocalParameterfvARB; - glAPI->GetProgramivARB = __indirect_glGetProgramivARB; - glAPI->GetProgramStringARB = __indirect_glGetProgramStringARB; - glAPI->GetVertexAttribdvARB = __indirect_glGetVertexAttribdvARB; - glAPI->GetVertexAttribfvARB = __indirect_glGetVertexAttribfvARB; - glAPI->GetVertexAttribivARB = __indirect_glGetVertexAttribivARB; - glAPI->VertexAttrib1dARB = __indirect_glVertexAttrib1dARB; - glAPI->VertexAttrib1dvARB = __indirect_glVertexAttrib1dvARB; - glAPI->VertexAttrib1fARB = __indirect_glVertexAttrib1fARB; - glAPI->VertexAttrib1fvARB = __indirect_glVertexAttrib1fvARB; - glAPI->VertexAttrib1sARB = __indirect_glVertexAttrib1sARB; - glAPI->VertexAttrib1svARB = __indirect_glVertexAttrib1svARB; - glAPI->VertexAttrib2dARB = __indirect_glVertexAttrib2dARB; - glAPI->VertexAttrib2dvARB = __indirect_glVertexAttrib2dvARB; - glAPI->VertexAttrib2fARB = __indirect_glVertexAttrib2fARB; - glAPI->VertexAttrib2fvARB = __indirect_glVertexAttrib2fvARB; - glAPI->VertexAttrib2sARB = __indirect_glVertexAttrib2sARB; - glAPI->VertexAttrib2svARB = __indirect_glVertexAttrib2svARB; - glAPI->VertexAttrib3dARB = __indirect_glVertexAttrib3dARB; - glAPI->VertexAttrib3dvARB = __indirect_glVertexAttrib3dvARB; - glAPI->VertexAttrib3fARB = __indirect_glVertexAttrib3fARB; - glAPI->VertexAttrib3fvARB = __indirect_glVertexAttrib3fvARB; - glAPI->VertexAttrib3sARB = __indirect_glVertexAttrib3sARB; - glAPI->VertexAttrib3svARB = __indirect_glVertexAttrib3svARB; - glAPI->VertexAttrib4dARB = __indirect_glVertexAttrib4dARB; - glAPI->VertexAttrib4dvARB = __indirect_glVertexAttrib4dvARB; - glAPI->VertexAttrib4fARB = __indirect_glVertexAttrib4fARB; - glAPI->VertexAttrib4fvARB = __indirect_glVertexAttrib4fvARB; - glAPI->VertexAttrib4sARB = __indirect_glVertexAttrib4sARB; - glAPI->VertexAttrib4svARB = __indirect_glVertexAttrib4svARB; - glAPI->VertexAttrib4NubARB = __indirect_glVertexAttrib4NubARB; - glAPI->VertexAttrib4NubvARB = __indirect_glVertexAttrib4NubvARB; - - /* 29. GL_ARB_occlusion_query */ - - glAPI->EndQueryARB = __indirect_glEndQueryARB; - glAPI->GetQueryivARB = __indirect_glGetQueryivARB; - glAPI->GetQueryObjectivARB = __indirect_glGetQueryObjectivARB; - glAPI->GetQueryObjectuivARB = __indirect_glGetQueryObjectuivARB; - glAPI->GenQueriesARB = __indirect_glGenQueriesARB; - glAPI->DeleteQueriesARB = __indirect_glDeleteQueriesARB; - glAPI->IsQueryARB = __indirect_glIsQueryARB; - glAPI->BeginQueryARB = __indirect_glBeginQueryARB; - - /* 37. GL_ARB_draw_buffers */ - - glAPI->DrawBuffersARB = __indirect_glDrawBuffersARB; - - /* 20. GL_EXT_texture_object */ - - glAPI->GenTexturesEXT = __indirect_glGenTexturesEXT; - glAPI->IsTextureEXT = __indirect_glIsTextureEXT; - glAPI->AreTexturesResidentEXT = __indirect_glAreTexturesResidentEXT; - - /* 25. GL_SGIS_multisample */ - - glAPI->SampleMaskSGIS = __indirect_glSampleMaskSGIS; - glAPI->SamplePatternSGIS = __indirect_glSamplePatternSGIS; - - /* 30. GL_EXT_vertex_array */ - - glAPI->ColorPointerEXT = __indirect_glColorPointerEXT; - glAPI->EdgeFlagPointerEXT = __indirect_glEdgeFlagPointerEXT; - glAPI->IndexPointerEXT = __indirect_glIndexPointerEXT; - glAPI->NormalPointerEXT = __indirect_glNormalPointerEXT; - glAPI->TexCoordPointerEXT = __indirect_glTexCoordPointerEXT; - glAPI->VertexPointerEXT = __indirect_glVertexPointerEXT; - - /* 54. GL_EXT_point_parameters */ - - glAPI->PointParameterfEXT = __indirect_glPointParameterfEXT; - glAPI->PointParameterfvEXT = __indirect_glPointParameterfvEXT; - - /* 145. GL_EXT_secondary_color */ - - glAPI->SecondaryColor3usvEXT = __indirect_glSecondaryColor3usvEXT; - glAPI->SecondaryColorPointerEXT = __indirect_glSecondaryColorPointerEXT; - glAPI->SecondaryColor3bEXT = __indirect_glSecondaryColor3bEXT; - glAPI->SecondaryColor3bvEXT = __indirect_glSecondaryColor3bvEXT; - glAPI->SecondaryColor3dEXT = __indirect_glSecondaryColor3dEXT; - glAPI->SecondaryColor3dvEXT = __indirect_glSecondaryColor3dvEXT; - glAPI->SecondaryColor3fEXT = __indirect_glSecondaryColor3fEXT; - glAPI->SecondaryColor3fvEXT = __indirect_glSecondaryColor3fvEXT; - glAPI->SecondaryColor3iEXT = __indirect_glSecondaryColor3iEXT; - glAPI->SecondaryColor3ivEXT = __indirect_glSecondaryColor3ivEXT; - glAPI->SecondaryColor3sEXT = __indirect_glSecondaryColor3sEXT; - glAPI->SecondaryColor3svEXT = __indirect_glSecondaryColor3svEXT; - glAPI->SecondaryColor3ubEXT = __indirect_glSecondaryColor3ubEXT; - glAPI->SecondaryColor3ubvEXT = __indirect_glSecondaryColor3ubvEXT; - glAPI->SecondaryColor3uiEXT = __indirect_glSecondaryColor3uiEXT; - glAPI->SecondaryColor3uivEXT = __indirect_glSecondaryColor3uivEXT; - glAPI->SecondaryColor3usEXT = __indirect_glSecondaryColor3usEXT; - - /* 148. GL_EXT_multi_draw_arrays */ - - glAPI->MultiDrawArraysEXT = __indirect_glMultiDrawArraysEXT; - glAPI->MultiDrawElementsEXT = __indirect_glMultiDrawElementsEXT; - - /* 149. GL_EXT_fog_coord */ - - glAPI->FogCoordfEXT = __indirect_glFogCoordfEXT; - glAPI->FogCoordfvEXT = __indirect_glFogCoordfvEXT; - glAPI->FogCoorddEXT = __indirect_glFogCoorddEXT; - glAPI->FogCoorddvEXT = __indirect_glFogCoorddvEXT; - glAPI->FogCoordPointerEXT = __indirect_glFogCoordPointerEXT; - - /* 173. GL_EXT_blend_func_separate */ - - glAPI->BlendFuncSeparateEXT = __indirect_glBlendFuncSeparateEXT; - - /* 197. GL_MESA_window_pos */ - - glAPI->WindowPos2dMESA = __indirect_glWindowPos2dMESA; - glAPI->WindowPos2dvMESA = __indirect_glWindowPos2dvMESA; - glAPI->WindowPos2fMESA = __indirect_glWindowPos2fMESA; - glAPI->WindowPos2fvMESA = __indirect_glWindowPos2fvMESA; - glAPI->WindowPos2iMESA = __indirect_glWindowPos2iMESA; - glAPI->WindowPos2ivMESA = __indirect_glWindowPos2ivMESA; - glAPI->WindowPos2sMESA = __indirect_glWindowPos2sMESA; - glAPI->WindowPos2svMESA = __indirect_glWindowPos2svMESA; - glAPI->WindowPos3dMESA = __indirect_glWindowPos3dMESA; - glAPI->WindowPos3dvMESA = __indirect_glWindowPos3dvMESA; - glAPI->WindowPos3fMESA = __indirect_glWindowPos3fMESA; - glAPI->WindowPos3fvMESA = __indirect_glWindowPos3fvMESA; - glAPI->WindowPos3iMESA = __indirect_glWindowPos3iMESA; - glAPI->WindowPos3ivMESA = __indirect_glWindowPos3ivMESA; - glAPI->WindowPos3sMESA = __indirect_glWindowPos3sMESA; - glAPI->WindowPos3svMESA = __indirect_glWindowPos3svMESA; - - /* 233. GL_NV_vertex_program */ - - glAPI->VertexAttribs4svNV = __indirect_glVertexAttribs4svNV; - glAPI->VertexAttribs4ubvNV = __indirect_glVertexAttribs4ubvNV; - glAPI->VertexAttrib3fNV = __indirect_glVertexAttrib3fNV; - glAPI->VertexAttrib3fvNV = __indirect_glVertexAttrib3fvNV; - glAPI->VertexAttrib3sNV = __indirect_glVertexAttrib3sNV; - glAPI->VertexAttrib3svNV = __indirect_glVertexAttrib3svNV; - glAPI->VertexAttrib4dNV = __indirect_glVertexAttrib4dNV; - glAPI->VertexAttrib3dvNV = __indirect_glVertexAttrib3dvNV; - glAPI->VertexAttrib4fNV = __indirect_glVertexAttrib4fNV; - glAPI->VertexAttrib4fvNV = __indirect_glVertexAttrib4fvNV; - glAPI->VertexAttrib4sNV = __indirect_glVertexAttrib4sNV; - glAPI->VertexAttrib4svNV = __indirect_glVertexAttrib4svNV; - glAPI->VertexAttrib4ubNV = __indirect_glVertexAttrib4ubNV; - glAPI->VertexAttrib4ubvNV = __indirect_glVertexAttrib4ubvNV; - glAPI->VertexAttrib1fvNV = __indirect_glVertexAttrib1fvNV; - glAPI->VertexAttrib3dNV = __indirect_glVertexAttrib3dNV; - glAPI->VertexAttrib4dvNV = __indirect_glVertexAttrib4dvNV; - glAPI->VertexAttrib1sNV = __indirect_glVertexAttrib1sNV; - glAPI->VertexAttrib1fNV = __indirect_glVertexAttrib1fNV; - glAPI->VertexAttrib1svNV = __indirect_glVertexAttrib1svNV; - glAPI->VertexAttrib1dvNV = __indirect_glVertexAttrib1dvNV; - glAPI->AreProgramsResidentNV = __indirect_glAreProgramsResidentNV; - glAPI->BindProgramNV = __indirect_glBindProgramNV; - glAPI->DeleteProgramsNV = __indirect_glDeleteProgramsNV; - glAPI->ExecuteProgramNV = __indirect_glExecuteProgramNV; - glAPI->GenProgramsNV = __indirect_glGenProgramsNV; - glAPI->GetProgramParameterdvNV = __indirect_glGetProgramParameterdvNV; - glAPI->GetProgramParameterfvNV = __indirect_glGetProgramParameterfvNV; - glAPI->GetProgramivNV = __indirect_glGetProgramivNV; - glAPI->GetProgramStringNV = __indirect_glGetProgramStringNV; - glAPI->GetTrackMatrixivNV = __indirect_glGetTrackMatrixivNV; - glAPI->GetVertexAttribPointervNV = __indirect_glGetVertexAttribPointervNV; - glAPI->IsProgramNV = __indirect_glIsProgramNV; - glAPI->LoadProgramNV = __indirect_glLoadProgramNV; - glAPI->ProgramParameter4dNV = __indirect_glProgramParameter4dNV; - glAPI->ProgramParameter4dvNV = __indirect_glProgramParameter4dvNV; - glAPI->ProgramParameter4fNV = __indirect_glProgramParameter4fNV; - glAPI->ProgramParameter4fvNV = __indirect_glProgramParameter4fvNV; - glAPI->ProgramParameters4dvNV = __indirect_glProgramParameters4dvNV; - glAPI->ProgramParameters4fvNV = __indirect_glProgramParameters4fvNV; - glAPI->RequestResidentProgramsNV = __indirect_glRequestResidentProgramsNV; - glAPI->TrackMatrixNV = __indirect_glTrackMatrixNV; - glAPI->VertexAttribPointerNV = __indirect_glVertexAttribPointerNV; - glAPI->VertexAttrib2dNV = __indirect_glVertexAttrib2dNV; - glAPI->VertexAttrib2sNV = __indirect_glVertexAttrib2sNV; - glAPI->VertexAttrib2dvNV = __indirect_glVertexAttrib2dvNV; - glAPI->VertexAttrib2fNV = __indirect_glVertexAttrib2fNV; - glAPI->VertexAttrib2svNV = __indirect_glVertexAttrib2svNV; - glAPI->VertexAttrib2fvNV = __indirect_glVertexAttrib2fvNV; - glAPI->GetVertexAttribdvNV = __indirect_glGetVertexAttribdvNV; - glAPI->GetVertexAttribfvNV = __indirect_glGetVertexAttribfvNV; - glAPI->GetVertexAttribivNV = __indirect_glGetVertexAttribivNV; - glAPI->VertexAttrib1dNV = __indirect_glVertexAttrib1dNV; - glAPI->VertexAttribs1dvNV = __indirect_glVertexAttribs1dvNV; - glAPI->VertexAttribs1fvNV = __indirect_glVertexAttribs1fvNV; - glAPI->VertexAttribs1svNV = __indirect_glVertexAttribs1svNV; - glAPI->VertexAttribs2dvNV = __indirect_glVertexAttribs2dvNV; - glAPI->VertexAttribs2fvNV = __indirect_glVertexAttribs2fvNV; - glAPI->VertexAttribs2svNV = __indirect_glVertexAttribs2svNV; - glAPI->VertexAttribs3dvNV = __indirect_glVertexAttribs3dvNV; - glAPI->VertexAttribs3fvNV = __indirect_glVertexAttribs3fvNV; - glAPI->VertexAttribs3svNV = __indirect_glVertexAttribs3svNV; - glAPI->VertexAttribs4dvNV = __indirect_glVertexAttribs4dvNV; - glAPI->VertexAttribs4fvNV = __indirect_glVertexAttribs4fvNV; - - /* 262. GL_NV_point_sprite */ - - glAPI->PointParameteriNV = __indirect_glPointParameteriNV; - glAPI->PointParameterivNV = __indirect_glPointParameterivNV; - - /* 268. GL_EXT_stencil_two_side */ - - glAPI->ActiveStencilFaceEXT = __indirect_glActiveStencilFaceEXT; - - /* 282. GL_NV_fragment_program */ - - glAPI->ProgramNamedParameter4fNV = __indirect_glProgramNamedParameter4fNV; - glAPI->ProgramNamedParameter4dNV = __indirect_glProgramNamedParameter4dNV; - glAPI->ProgramNamedParameter4fvNV = __indirect_glProgramNamedParameter4fvNV; - glAPI->ProgramNamedParameter4dvNV = __indirect_glProgramNamedParameter4dvNV; - glAPI->GetProgramNamedParameterfvNV = __indirect_glGetProgramNamedParameterfvNV; - glAPI->GetProgramNamedParameterdvNV = __indirect_glGetProgramNamedParameterdvNV; - - /* 310. GL_EXT_framebuffer_object */ - - glAPI->RenderbufferStorageEXT = __indirect_glRenderbufferStorageEXT; - glAPI->GetRenderbufferParameterivEXT = __indirect_glGetRenderbufferParameterivEXT; - glAPI->IsFramebufferEXT = __indirect_glIsFramebufferEXT; - glAPI->BindFramebufferEXT = __indirect_glBindFramebufferEXT; - glAPI->DeleteFramebuffersEXT = __indirect_glDeleteFramebuffersEXT; - glAPI->GenFramebuffersEXT = __indirect_glGenFramebuffersEXT; - glAPI->CheckFramebufferStatusEXT = __indirect_glCheckFramebufferStatusEXT; - glAPI->FramebufferTexture1DEXT = __indirect_glFramebufferTexture1DEXT; - glAPI->FramebufferTexture2DEXT = __indirect_glFramebufferTexture2DEXT; - glAPI->FramebufferTexture3DEXT = __indirect_glFramebufferTexture3DEXT; - glAPI->FramebufferRenderbufferEXT = __indirect_glFramebufferRenderbufferEXT; - glAPI->GetFramebufferAttachmentParameterivEXT = __indirect_glGetFramebufferAttachmentParameterivEXT; - glAPI->GenerateMipmapEXT = __indirect_glGenerateMipmapEXT; - glAPI->IsRenderbufferEXT = __indirect_glIsRenderbufferEXT; - glAPI->BindRenderbufferEXT = __indirect_glBindRenderbufferEXT; - glAPI->DeleteRenderbuffersEXT = __indirect_glDeleteRenderbuffersEXT; - glAPI->GenRenderbuffersEXT = __indirect_glGenRenderbuffersEXT; - - return glAPI; -} - diff --git a/nx-X11/extras/Mesa/src/glx/x11/indirect_init.h b/nx-X11/extras/Mesa/src/glx/x11/indirect_init.h deleted file mode 100644 index 62d04ba6d..000000000 --- a/nx-X11/extras/Mesa/src/glx/x11/indirect_init.h +++ /dev/null @@ -1,42 +0,0 @@ -/* $XFree86: xc/lib/GL/glx/indirect_init.h,v 1.2 2000/02/08 17:18:33 dawes Exp $ */ -/************************************************************************** - -Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas. -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 PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR -ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -**************************************************************************/ - -/* - * Authors: - * Kevin E. Martin - * - */ - -#ifndef _INDIRECT_INIT_H_ -#define _INDIRECT_INIT_H_ - -#include "glxclient.h" - -extern __GLapi *__glXNewIndirectAPI(void); - -#endif /* _INDIRECT_INIT_H_ */ diff --git a/nx-X11/extras/Mesa/src/glx/x11/indirect_transpose_matrix.c b/nx-X11/extras/Mesa/src/glx/x11/indirect_transpose_matrix.c deleted file mode 100644 index 2144410e5..000000000 --- a/nx-X11/extras/Mesa/src/glx/x11/indirect_transpose_matrix.c +++ /dev/null @@ -1,83 +0,0 @@ -/* - * (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. - */ - -#include -#include "indirect.h" - -static void TransposeMatrixf(const GLfloat s[16], GLfloat d[16]) -{ - int i, j; - for (i = 0; i < 4; i++) { - for (j = 0; j < 4; j++) { - d[i*4+j] = s[j*4+i]; - } - } -} - -static void TransposeMatrixd(const GLdouble s[16], GLdouble d[16]) -{ - int i, j; - for (i = 0; i < 4; i++) { - for (j = 0; j < 4; j++) { - d[i*4+j] = s[j*4+i]; - } - } -} - - -void -__indirect_glLoadTransposeMatrixdARB( const GLdouble * m ) -{ - GLdouble mt[16]; - - TransposeMatrixd( m, mt ); - __indirect_glLoadMatrixd( mt ); -} - -void -__indirect_glLoadTransposeMatrixfARB( const GLfloat * m ) -{ - GLfloat mt[16]; - - TransposeMatrixf( m, mt ); - __indirect_glLoadMatrixf( mt ); -} - -void -__indirect_glMultTransposeMatrixdARB( const GLdouble * m ) -{ - GLdouble mt[16]; - - TransposeMatrixd( m, mt ); - __indirect_glMultMatrixd( mt ); -} - -void -__indirect_glMultTransposeMatrixfARB( const GLfloat * m ) -{ - GLfloat mt[16]; - - TransposeMatrixf( m, mt ); - __indirect_glMultMatrixf( mt ); -} diff --git a/nx-X11/extras/Mesa/src/glx/x11/indirect_va_private.h b/nx-X11/extras/Mesa/src/glx/x11/indirect_va_private.h deleted file mode 100644 index ab97dc645..000000000 --- a/nx-X11/extras/Mesa/src/glx/x11/indirect_va_private.h +++ /dev/null @@ -1,308 +0,0 @@ -/* - * (C) Copyright IBM Corporation 2004, 2005 - * All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * 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 _INDIRECT_VA_PRIVATE_ -#define _INDIRECT_VA_PRIVATE_ - -/** - * \file indirect_va_private.h - * - * \author Ian Romanick - */ - -#include - -#include "glxclient.h" -#include "indirect.h" -#include - - -/** - * State descriptor for a single array of vertex data. - */ -struct array_state { - /** - * Pointer to the application supplied data. - */ - const void * data; - - /** - * Enum representing the type of the application supplied data. - */ - GLenum data_type; - - /** - * Stride value supplied by the application. This value is not used - * internally. It is only kept so that it can be queried by the - * application using glGet*v. - */ - GLsizei user_stride; - - /** - * Calculated size, in bytes, of a single element in the array. This - * is calculated based on \c count and the size of the data type - * represented by \c data_type. - */ - GLsizei element_size; - - /** - * Actual byte-stride from one element to the next. This value will - * be equal to either \c user_stride or \c element_stride. - */ - GLsizei true_stride; - - /** - * Number of data values in each element. - */ - GLint count; - - /** - * "Normalized" data is on the range [0,1] (unsigned) or [-1,1] (signed). - * This is used for mapping integral types to floating point types. - */ - GLboolean normalized; - - /** - * Pre-calculated GLX protocol command header. - */ - uint32_t header[2]; - - /** - * Size of the header data. For simple data, like glColorPointerfv, - * this is 4. For complex data that requires either a count (e.g., - * glWeightfvARB), an index (e.g., glVertexAttrib1fvARB), or a - * selector enum (e.g., glMultiTexCoord2fv) this is 8. - */ - unsigned header_size; - - /** - * Set to \c GL_TRUE if this array is enabled. Otherwise, it is set - * to \c GL_FALSE. - */ - GLboolean enabled; - - /** - * For multi-arrayed data (e.g., texture coordinates, generic vertex - * program attributes, etc.), this specifies which array this is. - */ - unsigned index; - - /** - * Per-array-type key. For most arrays, this will be the GL enum for - * that array (e.g., GL_VERTEX_ARRAY for vertex data, GL_NORMAL_ARRAY - * for normal data, GL_TEXTURE_COORD_ARRAY for texture coordinate data, - * etc.). - */ - GLenum key; - - /** - * If this array can be used with the "classic" \c glDrawArrays protocol, - * this is set to \c GL_TRUE. Otherwise, it is set to \c GL_FALSE. - */ - GLboolean old_DrawArrays_possible; -}; - - -/** - * Array state that is pushed / poped by \c glPushClientAttrib and - * \c glPopClientAttrib. - */ -struct array_stack_state { - /** - * Pointer to the application supplied data. - */ - const void * data; - - /** - * Enum representing the type of the application supplied data. - */ - GLenum data_type; - - /** - * Stride value supplied by the application. This value is not used - * internally. It is only kept so that it can be queried by the - * application using glGet*v. - */ - GLsizei user_stride; - - /** - * Number of data values in each element. - */ - GLint count; - - /** - * Per-array-type key. For most arrays, this will be the GL enum for - * that array (e.g., GL_VERTEX_ARRAY for vertex data, GL_NORMAL_ARRAY - * for normal data, GL_TEXTURE_COORD_ARRAY for texture coordinate data, - * etc.). - */ - GLenum key; - - /** - * For multi-arrayed data (e.g., texture coordinates, generic vertex - * program attributes, etc.), this specifies which array this is. - */ - unsigned index; - - /** - * Set to \c GL_TRUE if this array is enabled. Otherwise, it is set - * to \c GL_FALSE. - */ - GLboolean enabled; -}; - - -/** - * Collection of all the vertex array state. - */ -struct array_state_vector { - /** - * Number of arrays tracked by \c ::arrays. - */ - size_t num_arrays; - - /** - * Array of vertex array state. This array contains all of the valid - * vertex arrays. If a vertex array isn't in this array, then it isn't - * valid. For example, if an implementation does not support - * EXT_fog_coord, there won't be a GL_FOG_COORD_ARRAY entry in this - * array. - */ - struct array_state * arrays; - - /** - * Number of currently enabled client-side arrays. The value of this - * field is only valid if \c array_info_cache_valid is true. - */ - size_t enabled_client_array_count; - - /** - * \name ARRAY_INFO cache. - * - * These fields track the state of the ARRAY_INFO cache. The - * \c array_info_cache_size is the size of the actual data stored in - * \c array_info_cache. \c array_info_cache_buffer_size is the size of - * the buffer. This will always be greater than or equal to - * \c array_info_cache_size. - * - * \note - * There are some bytes of extra data before \c array_info_cache that is - * used to hold the header for RenderLarge commands. This is - * \b not included in \c array_info_cache_size or - * \c array_info_cache_buffer_size. \c array_info_cache_base stores a - * pointer to the true start of the buffer (i.e., what malloc returned). - */ - /*@{*/ - size_t array_info_cache_size; - size_t array_info_cache_buffer_size; - void * array_info_cache; - void * array_info_cache_base; - /*@}*/ - - - /** - * Is the cache of ARRAY_INFO data valid? The cache can become invalid - * when one of several state changes occur. Among these chages are - * modifying the array settings for an enabled array and enabling / - * disabling an array. - */ - GLboolean array_info_cache_valid; - - /** - * Is it possible to use the GL 1.1 / EXT_vertex_arrays protocol? Use - * of this protocol is disabled with really old servers (i.e., servers - * that don't support GL 1.1 or EXT_vertex_arrays) or when an environment - * variable is set. - * - * \todo - * GL 1.1 and EXT_vertex_arrays use identical protocol, but have different - * opcodes for \c glDrawArrays. For servers that advertise one or the - * other, there should be a way to select which opcode to use. - */ - GLboolean old_DrawArrays_possible; - - /** - * Is it possible to use the new GL X.X / ARB_vertex_buffer_object - * protocol? - * - * \todo - * This protocol has not yet been defined by the ARB, but is currently a - * work in progress. This field is a place-holder. - */ - GLboolean new_DrawArrays_possible; - - /** - * Active texture unit set by \c glClientActiveTexture. - * - * \sa __glXGetActiveTextureUnit - */ - unsigned active_texture_unit; - - /** - * Number of supported texture units. Even if ARB_multitexture / - * GL 1.3 are not supported, this will be at least 1. When multitexture - * is supported, this will be the value queried by calling - * \c glGetIntegerv with \c GL_MAX_TEXTURE_UNITS. - * - * \todo - * Investigate if this should be the value of \c GL_MAX_TEXTURE_COORDS - * instead (if GL 2.0 / ARB_fragment_shader / ARB_fragment_program / - * NV_fragment_program are supported). - */ - unsigned num_texture_units; - - /** - * Number of generic vertex program attribs. If GL_ARB_vertex_program - * is not supported, this will be zero. Otherwise it will be the value - * queries by calling \c glGetProgramiv with \c GL_VERTEX_PROGRAM_ARB - * and \c GL_MAX_PROGRAM_ATTRIBS_ARB. - */ - unsigned num_vertex_program_attribs; - - /** - * \n Methods for implementing various GL functions. - * - * These method pointers are only valid \c array_info_cache_valid is set. - * When each function starts, it much check \c array_info_cache_valid. - * If it is not set, it must call \c fill_array_info_cache and call - * the new method. - * - * \sa fill_array_info_cache - * - * \todo - * Write code to plug these functions directly into the dispatch table. - */ - /*@{*/ - void (*DrawArrays)( GLenum, GLint, GLsizei ); - void (*DrawElements)( GLenum mode, GLsizei count, GLenum type, - const GLvoid *indices ); - /*@}*/ - - struct array_stack_state * stack; - unsigned active_texture_unit_stack[ __GL_CLIENT_ATTRIB_STACK_DEPTH ]; - unsigned stack_index; -}; - -#endif /* _INDIRECT_VA_PRIVATE_ */ diff --git a/nx-X11/extras/Mesa/src/glx/x11/indirect_vertex_array.c b/nx-X11/extras/Mesa/src/glx/x11/indirect_vertex_array.c deleted file mode 100644 index 62a101e66..000000000 --- a/nx-X11/extras/Mesa/src/glx/x11/indirect_vertex_array.c +++ /dev/null @@ -1,1847 +0,0 @@ -/* - * (C) Copyright IBM Corporation 2004, 2005 - * All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * 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 -#include -#include - -#include "glxclient.h" -#include "indirect.h" -#include -#include "glxextensions.h" -#include "indirect_vertex_array.h" -#include "indirect_va_private.h" - -#define __GLX_PAD(n) (((n)+3) & ~3) - -/** - * \file indirect_vertex_array.c - * Implement GLX protocol for vertex arrays and vertex buffer objects. - * - * The most important function in this fill is \c fill_array_info_cache. - * The \c array_state_vector contains a cache of the ARRAY_INFO data sent - * in the DrawArrays protocol. Certain operations, such as enabling or - * disabling an array, can invalidate this cache. \c fill_array_info_cache - * fills-in this data. Additionally, it examines the enabled state and - * other factors to determine what "version" of DrawArrays protocoal can be - * used. - * - * Current, only two versions of DrawArrays protocol are implemented. The - * first version is the "none" protocol. This is the fallback when the - * server does not support GL 1.1 / EXT_vertex_arrays. It is implemented - * by sending batches of immediate mode commands that are equivalent to the - * DrawArrays protocol. - * - * The other protocol that is currently implemented is the "old" protocol. - * This is the GL 1.1 DrawArrays protocol. The only difference between GL - * 1.1 and EXT_vertex_arrays is the opcode used for the DrawArrays command. - * This protocol is called "old" because the ARB is in the process of - * defining a new protocol, which will probably be called wither "new" or - * "vbo", to support multiple texture coordinate arrays, generic attributes, - * and vertex buffer objects. - * - * \author Ian Romanick - */ - -static void emit_DrawArrays_none( GLenum mode, GLint first, GLsizei count ); -static void emit_DrawArrays_old ( GLenum mode, GLint first, GLsizei count ); - -static void emit_DrawElements_none( GLenum mode, GLsizei count, GLenum type, - const GLvoid *indices ); -static void emit_DrawElements_old ( GLenum mode, GLsizei count, GLenum type, - const GLvoid *indices ); - - -static GLubyte * emit_element_none( GLubyte * dst, - const struct array_state_vector * arrays, unsigned index ); -static GLubyte * emit_element_old( GLubyte * dst, - const struct array_state_vector * arrays, unsigned index ); -static struct array_state * get_array_entry( - const struct array_state_vector * arrays, GLenum key, unsigned index ); -static void fill_array_info_cache( struct array_state_vector * arrays ); -static GLboolean validate_mode(__GLXcontext *gc, GLenum mode); -static GLboolean validate_count(__GLXcontext *gc, GLsizei count); -static GLboolean validate_type(__GLXcontext *gc, GLenum type); - - -/** - * Table of sizes, in bytes, of a GL types. All of the type enums are be in - * the range 0x1400 - 0x140F. That includes types added by extensions (i.e., - * \c GL_HALF_FLOAT_NV). This elements of this table correspond to the - * type enums masked with 0x0f. - * - * \notes - * \c GL_HALF_FLOAT_NV is not included. Neither are \c GL_2_BYTES, - * \c GL_3_BYTES, or \c GL_4_BYTES. - */ -const GLuint __glXTypeSize_table[16] = { - 1, 1, 2, 2, 4, 4, 4, 0, 0, 0, 8, 0, 0, 0, 0, 0 -}; - - - -/** - * Initialize vertex array state of a GLX context. - * - * \param gc GLX context whose vertex array state is to be initialized. - * - * \warning - * This function may only be called after __GLXcontext::gl_extension_bits, - * __GLXcontext::server_minor, and __GLXcontext::server_major have been - * initialized. These values are used to determine what vertex arrays are - * supported. - * - * \bug - * Return values from malloc are not properly tested. - */ -void -__glXInitVertexArrayState( __GLXcontext * gc ) -{ - __GLXattribute * state = (__GLXattribute *)(gc->client_state_private); - struct array_state_vector * arrays; - - unsigned array_count; - unsigned texture_units = 1; - unsigned i; - unsigned j; - unsigned vertex_program_attribs = 0; - - GLboolean got_fog = GL_FALSE; - GLboolean got_secondary_color = GL_FALSE; - - - arrays = calloc( 1, sizeof( struct array_state_vector ) ); - state->array_state = arrays; - - arrays->old_DrawArrays_possible = !state->NoDrawArraysProtocol; - arrays->new_DrawArrays_possible = GL_FALSE; - arrays->DrawArrays = NULL; - - arrays->active_texture_unit = 0; - - - /* Determine how many arrays are actually needed. Only arrays that - * are supported by the server are create. For example, if the server - * supports only 2 texture units, then only 2 texture coordinate arrays - * are created. - * - * At the very least, GL_VERTEX_ARRAY, GL_NORMAL_ARRAY, - * GL_COLOR_ARRAY, GL_INDEX_ARRAY, GL_TEXTURE_COORD_ARRAY, and - * GL_EDGE_FLAG_ARRAY are supported. - */ - - array_count = 5; - - if ( __glExtensionBitIsEnabled( gc, GL_EXT_fog_coord_bit ) - || (gc->server_major > 1) || (gc->server_minor >= 4) ) { - got_fog = GL_TRUE; - array_count++; - } - - if ( __glExtensionBitIsEnabled( gc, GL_EXT_secondary_color_bit ) - || (gc->server_major > 1) || (gc->server_minor >= 4) ) { - got_secondary_color = GL_TRUE; - array_count++; - } - - if ( __glExtensionBitIsEnabled( gc, GL_ARB_multitexture_bit ) - || (gc->server_major > 1) || (gc->server_minor >= 3) ) { - __indirect_glGetIntegerv( GL_MAX_TEXTURE_UNITS, & texture_units ); - } - - if ( __glExtensionBitIsEnabled( gc, GL_ARB_vertex_program_bit ) ) { - __indirect_glGetProgramivARB( GL_VERTEX_PROGRAM_ARB, - GL_MAX_PROGRAM_ATTRIBS_ARB, - & vertex_program_attribs ); - } - - arrays->num_texture_units = texture_units; - arrays->num_vertex_program_attribs = vertex_program_attribs; - array_count += texture_units + vertex_program_attribs; - arrays->num_arrays = array_count; - arrays->arrays = calloc( array_count, sizeof( struct array_state ) ); - - arrays->arrays[0].data_type = GL_FLOAT; - arrays->arrays[0].count = 3; - arrays->arrays[0].key = GL_NORMAL_ARRAY; - arrays->arrays[0].normalized = GL_TRUE; - arrays->arrays[0].old_DrawArrays_possible = GL_TRUE; - - arrays->arrays[1].data_type = GL_FLOAT; - arrays->arrays[1].count = 4; - arrays->arrays[1].key = GL_COLOR_ARRAY; - arrays->arrays[1].normalized = GL_TRUE; - arrays->arrays[1].old_DrawArrays_possible = GL_TRUE; - - arrays->arrays[2].data_type = GL_FLOAT; - arrays->arrays[2].count = 1; - arrays->arrays[2].key = GL_INDEX_ARRAY; - arrays->arrays[2].old_DrawArrays_possible = GL_TRUE; - - arrays->arrays[3].data_type = GL_UNSIGNED_BYTE; - arrays->arrays[3].count = 1; - arrays->arrays[3].key = GL_EDGE_FLAG_ARRAY; - arrays->arrays[3].old_DrawArrays_possible = GL_TRUE; - - for ( i = 0 ; i < texture_units ; i++ ) { - arrays->arrays[4 + i].data_type = GL_FLOAT; - arrays->arrays[4 + i].count = 4; - arrays->arrays[4 + i].key = GL_TEXTURE_COORD_ARRAY; - - arrays->arrays[4 + i].old_DrawArrays_possible = (i == 0); - arrays->arrays[4 + i].index = i; - - arrays->arrays[4 + i].header[1] = i + GL_TEXTURE0; - } - - i = 4 + texture_units; - - if ( got_fog ) { - arrays->arrays[i].data_type = GL_FLOAT; - arrays->arrays[i].count = 1; - arrays->arrays[i].key = GL_FOG_COORDINATE_ARRAY; - arrays->arrays[i].old_DrawArrays_possible = GL_TRUE; - i++; - } - - if ( got_secondary_color ) { - arrays->arrays[i].data_type = GL_FLOAT; - arrays->arrays[i].count = 3; - arrays->arrays[i].key = GL_SECONDARY_COLOR_ARRAY; - arrays->arrays[i].old_DrawArrays_possible = GL_TRUE; - arrays->arrays[i].normalized = GL_TRUE; - i++; - } - - - for ( j = 0 ; j < vertex_program_attribs ; j++ ) { - const unsigned idx = (vertex_program_attribs - (j + 1)); - - - arrays->arrays[idx + i].data_type = GL_FLOAT; - arrays->arrays[idx + i].count = 4; - arrays->arrays[idx + i].key = GL_VERTEX_ATTRIB_ARRAY_POINTER; - - arrays->arrays[idx + i].old_DrawArrays_possible = 0; - arrays->arrays[idx + i].index = idx; - - arrays->arrays[idx + i].header[1] = idx; - } - - i += vertex_program_attribs; - - - /* Vertex array *must* be last becuase of the way that - * emit_DrawArrays_none works. - */ - - arrays->arrays[i].data_type = GL_FLOAT; - arrays->arrays[i].count = 4; - arrays->arrays[i].key = GL_VERTEX_ARRAY; - arrays->arrays[i].old_DrawArrays_possible = GL_TRUE; - - assert( (i + 1) == arrays->num_arrays ); - - arrays->stack_index = 0; - arrays->stack = malloc( sizeof( struct array_stack_state ) - * arrays->num_arrays ); -} - - -/** - * Calculate the size of a single vertex for the "none" protocol. This is - * essentially the size of all the immediate-mode commands required to - * implement the enabled vertex arrays. - */ -static size_t -calculate_single_vertex_size_none( const struct array_state_vector * arrays ) -{ - size_t single_vertex_size = 0; - unsigned i; - - - for ( i = 0 ; i < arrays->num_arrays ; i++ ) { - if ( arrays->arrays[i].enabled ) { - single_vertex_size += ((uint16_t *)arrays->arrays[i].header)[0]; - } - } - - return single_vertex_size; -} - - -/** - * Emit a single element using non-DrawArrays protocol. - */ -GLubyte * -emit_element_none( GLubyte * dst, - const struct array_state_vector * arrays, - unsigned index ) -{ - unsigned i; - - - for ( i = 0 ; i < arrays->num_arrays ; i++ ) { - if ( arrays->arrays[i].enabled ) { - const size_t offset = index * arrays->arrays[i].true_stride; - - /* The generic attributes can have more data than is in the - * elements. This is because a vertex array can be a 2 element, - * normalized, unsigned short, but the "closest" immediate mode - * protocol is for a 4Nus. Since the sizes are small, the - * performance impact on modern processors should be negligible. - */ - (void) memset( dst, 0, - ((uint16_t *)arrays->arrays[i].header)[0] ); - - (void) memcpy( dst, arrays->arrays[i].header, - arrays->arrays[i].header_size ); - - dst += arrays->arrays[i].header_size; - - (void) memcpy( dst, ((GLubyte *) arrays->arrays[i].data) + offset, - arrays->arrays[i].element_size ); - - dst += __GLX_PAD( arrays->arrays[i].element_size ); - } - } - - return dst; -} - - -/** - * Emit a single element using "old" DrawArrays protocol from - * EXT_vertex_arrays / OpenGL 1.1. - */ -GLubyte * -emit_element_old( GLubyte * dst, - const struct array_state_vector * arrays, - unsigned index ) -{ - unsigned i; - - - for ( i = 0 ; i < arrays->num_arrays ; i++ ) { - if ( arrays->arrays[i].enabled ) { - const size_t offset = index * arrays->arrays[i].true_stride; - - (void) memcpy( dst, ((GLubyte *) arrays->arrays[i].data) + offset, - arrays->arrays[i].element_size ); - - dst += __GLX_PAD( arrays->arrays[i].element_size ); - } - } - - return dst; -} - - -struct array_state * -get_array_entry( const struct array_state_vector * arrays, - GLenum key, unsigned index ) -{ - unsigned i; - - for ( i = 0 ; i < arrays->num_arrays ; i++ ) { - if ( (arrays->arrays[i].key == key) - && (arrays->arrays[i].index == index) ) { - return & arrays->arrays[i]; - } - } - - return NULL; -} - - -static GLboolean -allocate_array_info_cache( struct array_state_vector * arrays, - size_t required_size ) -{ -#define MAX_HEADER_SIZE 20 - if ( arrays->array_info_cache_buffer_size < required_size ) { - GLubyte * temp = realloc( arrays->array_info_cache_base, - required_size + MAX_HEADER_SIZE ); - - if ( temp == NULL ) { - return GL_FALSE; - } - - arrays->array_info_cache_base = temp; - arrays->array_info_cache = temp + MAX_HEADER_SIZE; - arrays->array_info_cache_buffer_size = required_size; - } - - arrays->array_info_cache_size = required_size; - return GL_TRUE; -} - - -/** - */ -void -fill_array_info_cache( struct array_state_vector * arrays ) -{ - GLboolean old_DrawArrays_possible; - unsigned i; - - - /* Determine how many arrays are enabled. - */ - - arrays->enabled_client_array_count = 0; - old_DrawArrays_possible = arrays->old_DrawArrays_possible; - for ( i = 0 ; i < arrays->num_arrays ; i++ ) { - if ( arrays->arrays[i].enabled ) { - arrays->enabled_client_array_count++; - old_DrawArrays_possible &= arrays->arrays[i].old_DrawArrays_possible; - } - } - - - if ( arrays->new_DrawArrays_possible ) { - assert( ! arrays->new_DrawArrays_possible ); - } - else if ( old_DrawArrays_possible ) { - const size_t required_size = arrays->enabled_client_array_count * 12; - uint32_t * info; - - - if ( ! allocate_array_info_cache( arrays, required_size ) ) { - return; - } - - - info = (uint32_t *) arrays->array_info_cache; - for ( i = 0 ; i < arrays->num_arrays ; i++ ) { - if ( arrays->arrays[i].enabled ) { - *(info++) = arrays->arrays[i].data_type; - *(info++) = arrays->arrays[i].count; - *(info++) = arrays->arrays[i].key; - } - } - - arrays->DrawArrays = emit_DrawArrays_old; - arrays->DrawElements = emit_DrawElements_old; - } - else { - arrays->DrawArrays = emit_DrawArrays_none; - arrays->DrawElements = emit_DrawElements_none; - } - - arrays->array_info_cache_valid = GL_TRUE; -} - - -/** - * Emit a \c glDrawArrays command using the "none" protocol. That is, - * emit immediate-mode commands that are equivalent to the requiested - * \c glDrawArrays command. This is used with servers that don't support - * the OpenGL 1.1 / EXT_vertex_arrays DrawArrays protocol or in cases where - * vertex state is enabled that is not compatible with that protocol. - */ -void -emit_DrawArrays_none( GLenum mode, GLint first, GLsizei count ) -{ - __GLXcontext *gc = __glXGetCurrentContext(); - const __GLXattribute * state = - (const __GLXattribute *)(gc->client_state_private); - struct array_state_vector * arrays = state->array_state; - - size_t single_vertex_size; - GLubyte * pc; - unsigned i; - static const uint16_t begin_cmd[2] = { 8, X_GLrop_Begin }; - static const uint16_t end_cmd[2] = { 4, X_GLrop_End }; - - - single_vertex_size = calculate_single_vertex_size_none( arrays ); - - pc = gc->pc; - - (void) memcpy( pc, begin_cmd, 4 ); - *(int *)(pc + 4) = mode; - - pc += 8; - - for ( i = 0 ; i < count ; i++ ) { - if ( (pc + single_vertex_size) >= gc->bufEnd ) { - pc = __glXFlushRenderBuffer(gc, gc->pc); - } - - pc = emit_element_none( pc, arrays, first + i ); - } - - if ( (pc + 4) >= gc->bufEnd ) { - pc = __glXFlushRenderBuffer(gc, gc->pc); - } - - (void) memcpy( pc, end_cmd, 4 ); - pc += 4; - - gc->pc = pc; - if ( gc->pc > gc->limit ) { - (void) __glXFlushRenderBuffer(gc, gc->pc); - } -} - - -/** - * Emit the header data for the GL 1.1 / EXT_vertex_arrays DrawArrays - * protocol. - * - * \param gc GLX context. - * \param arrays Array state. - * \param elements_per_request Location to store the number of elements that - * can fit in a single Render / RenderLarge - * command. - * \param total_request Total number of requests for a RenderLarge - * command. If a Render command is used, this - * will be zero. - * \param mode Drawing mode. - * \param count Number of vertices. - * - * \returns - * A pointer to the buffer for array data. - */ -static GLubyte * -emit_DrawArrays_header_old( __GLXcontext * gc, - struct array_state_vector * arrays, - size_t * elements_per_request, - size_t * total_requests, - GLenum mode, GLsizei count ) -{ - size_t command_size; - size_t single_vertex_size; - const unsigned header_size = 16; - unsigned i; - GLubyte * pc; - - - /* Determine the size of the whole command. This includes the header, - * the ARRAY_INFO data and the array data. Once this size is calculated, - * it will be known whether a Render or RenderLarge command is needed. - */ - - single_vertex_size = 0; - for ( i = 0 ; i < arrays->num_arrays ; i++ ) { - if ( arrays->arrays[i].enabled ) { - single_vertex_size += __GLX_PAD( arrays->arrays[i].element_size ); - } - } - - command_size = arrays->array_info_cache_size + header_size - + (single_vertex_size * count); - - - /* Write the header for either a Render command or a RenderLarge - * command. After the header is written, write the ARRAY_INFO data. - */ - - if ( command_size > gc->maxSmallRenderCommandSize ) { - /* maxSize is the maximum amount of data can be stuffed into a single - * packet. sz_xGLXRenderReq is added because bufSize is the maximum - * packet size minus sz_xGLXRenderReq. - */ - const size_t maxSize = (gc->bufSize + sz_xGLXRenderReq) - - sz_xGLXRenderLargeReq; - unsigned vertex_requests; - - - /* Calculate the number of data packets that will be required to send - * the whole command. To do this, the number of verticies that - * will fit in a single buffer must be calculated. - * - * The important value here is elements_per_request. This is the - * number of complete array elements that will fit in a single - * buffer. There may be some wasted space at the end of the buffer, - * but splitting elements across buffer boundries would be painful. - */ - - elements_per_request[0] = maxSize / single_vertex_size; - - vertex_requests = (count + elements_per_request[0] - 1) - / elements_per_request[0]; - - *total_requests = vertex_requests + 1; - - - __glXFlushRenderBuffer(gc, gc->pc); - - command_size += 4; - - pc = ((GLubyte *) arrays->array_info_cache) - (header_size + 4); - *(uint32_t *)(pc + 0) = command_size; - *(uint32_t *)(pc + 4) = X_GLrop_DrawArrays; - *(uint32_t *)(pc + 8) = count; - *(uint32_t *)(pc + 12) = arrays->enabled_client_array_count; - *(uint32_t *)(pc + 16) = mode; - - __glXSendLargeChunk( gc, 1, *total_requests, pc, - header_size + 4 + arrays->array_info_cache_size ); - - pc = gc->pc; - } - else { - if ( (gc->pc + command_size) >= gc->bufEnd ) { - (void) __glXFlushRenderBuffer(gc, gc->pc); - } - - pc = gc->pc; - *(uint16_t *)(pc + 0) = command_size; - *(uint16_t *)(pc + 2) = X_GLrop_DrawArrays; - *(uint32_t *)(pc + 4) = count; - *(uint32_t *)(pc + 8) = arrays->enabled_client_array_count; - *(uint32_t *)(pc + 12) = mode; - - pc += header_size; - - (void) memcpy( pc, arrays->array_info_cache, - arrays->array_info_cache_size ); - pc += arrays->array_info_cache_size; - - *elements_per_request = count; - *total_requests = 0; - } - - - return pc; -} - - -/** - */ -void -emit_DrawArrays_old( GLenum mode, GLint first, GLsizei count ) -{ - __GLXcontext *gc = __glXGetCurrentContext(); - const __GLXattribute * state = - (const __GLXattribute *)(gc->client_state_private); - struct array_state_vector * arrays = state->array_state; - - GLubyte * pc; - size_t elements_per_request; - unsigned total_requests = 0; - unsigned i; - size_t total_sent = 0; - - - pc = emit_DrawArrays_header_old( gc, arrays, & elements_per_request, - & total_requests, mode, count); - - - /* Write the arrays. - */ - - if ( total_requests == 0 ) { - assert( elements_per_request >= count ); - - for ( i = 0 ; i < count ; i++ ) { - pc = emit_element_old( pc, arrays, i + first ); - } - - assert( pc <= gc->bufEnd ); - - gc->pc = pc; - if ( gc->pc > gc->limit ) { - (void) __glXFlushRenderBuffer(gc, gc->pc); - } - } - else { - unsigned req; - - - for ( req = 2 ; req <= total_requests ; req++ ) { - if ( count < elements_per_request ) { - elements_per_request = count; - } - - pc = gc->pc; - for ( i = 0 ; i < elements_per_request ; i++ ) { - pc = emit_element_old( pc, arrays, i + first ); - } - - first += elements_per_request; - - total_sent += (size_t) (pc - gc->pc); - __glXSendLargeChunk( gc, req, total_requests, gc->pc, - pc - gc->pc ); - - count -= elements_per_request; - } - } -} - - -void -emit_DrawElements_none( GLenum mode, GLsizei count, GLenum type, - const GLvoid *indices ) -{ - __GLXcontext *gc = __glXGetCurrentContext(); - const __GLXattribute * state = - (const __GLXattribute *)(gc->client_state_private); - struct array_state_vector * arrays = state->array_state; - static const uint16_t begin_cmd[2] = { 8, X_GLrop_Begin }; - static const uint16_t end_cmd[2] = { 4, X_GLrop_End }; - - GLubyte * pc; - size_t single_vertex_size; - unsigned i; - - - single_vertex_size = calculate_single_vertex_size_none( arrays ); - - - if ( (gc->pc + single_vertex_size) >= gc->bufEnd ) { - gc->pc = __glXFlushRenderBuffer(gc, gc->pc); - } - - pc = gc->pc; - - (void) memcpy( pc, begin_cmd, 4 ); - *(int *)(pc + 4) = mode; - - pc += 8; - - for ( i = 0 ; i < count ; i++ ) { - unsigned index = 0; - - if ( (pc + single_vertex_size) >= gc->bufEnd ) { - pc = __glXFlushRenderBuffer(gc, gc->pc); - } - - switch( type ) { - case GL_UNSIGNED_INT: - index = (unsigned) (((GLuint *) indices)[i]); - break; - case GL_UNSIGNED_SHORT: - index = (unsigned) (((GLushort *) indices)[i]); - break; - case GL_UNSIGNED_BYTE: - index = (unsigned) (((GLubyte *) indices)[i]); - break; - } - pc = emit_element_none( pc, arrays, index ); - } - - if ( (pc + 4) >= gc->bufEnd ) { - pc = __glXFlushRenderBuffer(gc, gc->pc); - } - - (void) memcpy( pc, end_cmd, 4 ); - pc += 4; - - gc->pc = pc; - if ( gc->pc > gc->limit ) { - (void) __glXFlushRenderBuffer(gc, gc->pc); - } -} - - -/** - */ -void -emit_DrawElements_old( GLenum mode, GLsizei count, GLenum type, - const GLvoid *indices ) -{ - __GLXcontext *gc = __glXGetCurrentContext(); - const __GLXattribute * state = - (const __GLXattribute *)(gc->client_state_private); - struct array_state_vector * arrays = state->array_state; - - GLubyte * pc; - size_t elements_per_request; - unsigned total_requests = 0; - unsigned i; - unsigned req; - - - pc = emit_DrawArrays_header_old( gc, arrays, & elements_per_request, - & total_requests, mode, count); - - - /* Write the arrays. - */ - - req = 2; - while ( count > 0 ) { - if ( count < elements_per_request ) { - elements_per_request = count; - } - - switch( type ) { - case GL_UNSIGNED_INT: { - const GLuint * ui_ptr = (const GLuint *) indices; - - for ( i = 0 ; i < elements_per_request ; i++ ) { - const GLint index = (GLint) *(ui_ptr++); - pc = emit_element_old( pc, arrays, index ); - } - break; - } - case GL_UNSIGNED_SHORT: { - const GLushort * us_ptr = (const GLushort *) indices; - - for ( i = 0 ; i < elements_per_request ; i++ ) { - const GLint index = (GLint) *(us_ptr++); - pc = emit_element_old( pc, arrays, index ); - } - break; - } - case GL_UNSIGNED_BYTE: { - const GLubyte * ub_ptr = (const GLubyte *) indices; - - for ( i = 0 ; i < elements_per_request ; i++ ) { - const GLint index = (GLint) *(ub_ptr++); - pc = emit_element_old( pc, arrays, index ); - } - break; - } - } - - if ( total_requests != 0 ) { - __glXSendLargeChunk( gc, req, total_requests, gc->pc, - pc - gc->pc ); - pc = gc->pc; - req++; - } - - count -= elements_per_request; - } - - - assert( (total_requests == 0) || ((req - 1) == total_requests) ); - - if ( total_requests == 0 ) { - assert( pc <= gc->bufEnd ); - - gc->pc = pc; - if ( gc->pc > gc->limit ) { - (void) __glXFlushRenderBuffer(gc, gc->pc); - } - } -} - - -/** - * Validate that the \c mode parameter to \c glDrawArrays, et. al. is valid. - * If it is not valid, then an error code is set in the GLX context. - * - * \returns - * \c GL_TRUE if the argument is valid, \c GL_FALSE if is not. - */ -static GLboolean -validate_mode(__GLXcontext *gc, GLenum mode) -{ - switch(mode) { - case GL_POINTS: - case GL_LINE_STRIP: - case GL_LINE_LOOP: - case GL_LINES: - case GL_TRIANGLE_STRIP: - case GL_TRIANGLE_FAN: - case GL_TRIANGLES: - case GL_QUAD_STRIP: - case GL_QUADS: - case GL_POLYGON: - break; - default: - __glXSetError(gc, GL_INVALID_ENUM); - return GL_FALSE; - } - - return GL_TRUE; -} - - -/** - * Validate that the \c count parameter to \c glDrawArrays, et. al. is valid. - * A value less than zero is invalid and will result in \c GL_INVALID_VALUE - * being set. A value of zero will not result in an error being set, but - * will result in \c GL_FALSE being returned. - * - * \returns - * \c GL_TRUE if the argument is valid, \c GL_FALSE if it is not. - */ -static GLboolean -validate_count(__GLXcontext *gc, GLsizei count) -{ - if (count < 0) { - __glXSetError(gc, GL_INVALID_VALUE); - } - - return (count > 0); -} - - -/** - * Validate that the \c type parameter to \c glDrawElements, et. al. is - * valid. Only \c GL_UNSIGNED_BYTE, \c GL_UNSIGNED_SHORT, and - * \c GL_UNSIGNED_INT are valid. - * - * \returns - * \c GL_TRUE if the argument is valid, \c GL_FALSE if it is not. - */ -static GLboolean validate_type(__GLXcontext *gc, GLenum type) -{ - switch( type ) { - case GL_UNSIGNED_INT: - case GL_UNSIGNED_SHORT: - case GL_UNSIGNED_BYTE: - return GL_TRUE; - default: - __glXSetError(gc, GL_INVALID_ENUM); - return GL_FALSE; - } -} - - -void __indirect_glDrawArrays(GLenum mode, GLint first, GLsizei count) -{ - __GLXcontext *gc = __glXGetCurrentContext(); - const __GLXattribute * state = - (const __GLXattribute *)(gc->client_state_private); - struct array_state_vector * arrays = state->array_state; - - - if ( validate_mode(gc, mode) && validate_count(gc, count) ) { - if ( ! arrays->array_info_cache_valid ) { - fill_array_info_cache( arrays ); - } - - arrays->DrawArrays(mode, first, count); - } -} - - -void __indirect_glArrayElement(GLint index) -{ - __GLXcontext *gc = __glXGetCurrentContext(); - const __GLXattribute * state = - (const __GLXattribute *)(gc->client_state_private); - struct array_state_vector * arrays = state->array_state; - - size_t single_vertex_size; - - - single_vertex_size = calculate_single_vertex_size_none( arrays ); - - if ( (gc->pc + single_vertex_size) >= gc->bufEnd ) { - gc->pc = __glXFlushRenderBuffer(gc, gc->pc); - } - - gc->pc = emit_element_none( gc->pc, arrays, index ); - - if ( gc->pc > gc->limit ) { - (void) __glXFlushRenderBuffer(gc, gc->pc); - } -} - - -void __indirect_glDrawElements(GLenum mode, GLsizei count, GLenum type, - const GLvoid *indices) -{ - __GLXcontext *gc = __glXGetCurrentContext(); - const __GLXattribute * state = - (const __GLXattribute *)(gc->client_state_private); - struct array_state_vector * arrays = state->array_state; - - - if ( validate_mode(gc, mode) && validate_count(gc, count) - && validate_type(gc, type) ) { - if ( ! arrays->array_info_cache_valid ) { - fill_array_info_cache( arrays ); - } - - arrays->DrawElements(mode, count, type, indices); - } -} - - -void __indirect_glDrawRangeElements(GLenum mode, GLuint start, GLuint end, - GLsizei count, GLenum type, - const GLvoid *indices) -{ - __GLXcontext *gc = __glXGetCurrentContext(); - const __GLXattribute * state = - (const __GLXattribute *)(gc->client_state_private); - struct array_state_vector * arrays = state->array_state; - - - if ( validate_mode(gc, mode) && validate_count(gc, count) - && validate_type(gc, type) ) { - if (end < start) { - __glXSetError(gc, GL_INVALID_VALUE); - return; - } - - if ( ! arrays->array_info_cache_valid ) { - fill_array_info_cache( arrays ); - } - - arrays->DrawElements(mode, count, type, indices); - } -} - - -void __indirect_glMultiDrawArraysEXT(GLenum mode, GLint *first, GLsizei *count, - GLsizei primcount) -{ - __GLXcontext *gc = __glXGetCurrentContext(); - const __GLXattribute * state = - (const __GLXattribute *)(gc->client_state_private); - struct array_state_vector * arrays = state->array_state; - GLsizei i; - - - if ( validate_mode(gc, mode) ) { - if ( ! arrays->array_info_cache_valid ) { - fill_array_info_cache( arrays ); - } - - for ( i = 0 ; i < primcount ; i++ ) { - if ( validate_count( gc, count[i] ) ) { - arrays->DrawArrays(mode, first[i], count[i]); - } - } - } -} - - -void __indirect_glMultiDrawElementsEXT(GLenum mode, const GLsizei *count, - GLenum type, const GLvoid ** indices, - GLsizei primcount) -{ - __GLXcontext *gc = __glXGetCurrentContext(); - const __GLXattribute * state = - (const __GLXattribute *)(gc->client_state_private); - struct array_state_vector * arrays = state->array_state; - GLsizei i; - - - if ( validate_mode(gc, mode) && validate_type(gc, type) ) { - if ( ! arrays->array_info_cache_valid ) { - fill_array_info_cache( arrays ); - } - - for ( i = 0 ; i < primcount ; i++ ) { - if ( validate_count( gc, count[i] ) ) { - arrays->DrawElements(mode, count[i], type, indices[i]); - } - } - } -} - - -#define COMMON_ARRAY_DATA_INIT(a, PTR, TYPE, STRIDE, COUNT, NORMALIZED, HDR_SIZE, OPCODE) \ - do { \ - (a)->data = PTR; \ - (a)->data_type = TYPE; \ - (a)->user_stride = STRIDE; \ - (a)->count = COUNT; \ - (a)->normalized = NORMALIZED; \ - \ - (a)->element_size = __glXTypeSize( TYPE ) * COUNT; \ - (a)->true_stride = (STRIDE == 0) \ - ? (a)->element_size : STRIDE; \ - \ - (a)->header_size = HDR_SIZE; \ - ((uint16_t *) (a)->header)[0] = __GLX_PAD((a)->header_size + (a)->element_size); \ - ((uint16_t *) (a)->header)[1] = OPCODE; \ - } while(0) - - -void __indirect_glVertexPointer( GLint size, GLenum type, GLsizei stride, - const GLvoid * pointer ) -{ - static const uint16_t short_ops[5] = { - 0, 0, X_GLrop_Vertex2sv, X_GLrop_Vertex3sv, X_GLrop_Vertex4sv - }; - static const uint16_t int_ops[5] = { - 0, 0, X_GLrop_Vertex2iv, X_GLrop_Vertex3iv, X_GLrop_Vertex4iv - }; - static const uint16_t float_ops[5] = { - 0, 0, X_GLrop_Vertex2fv, X_GLrop_Vertex3fv, X_GLrop_Vertex4fv - }; - static const uint16_t double_ops[5] = { - 0, 0, X_GLrop_Vertex2dv, X_GLrop_Vertex3dv, X_GLrop_Vertex4dv - }; - uint16_t opcode; - __GLXcontext *gc = __glXGetCurrentContext(); - __GLXattribute * state = (__GLXattribute *)(gc->client_state_private); - struct array_state_vector * arrays = state->array_state; - struct array_state * a; - - - if (size < 2 || size > 4 || stride < 0) { - __glXSetError(gc, GL_INVALID_VALUE); - return; - } - - switch ( type ) { - case GL_SHORT: opcode = short_ops[size]; break; - case GL_INT: opcode = int_ops[size]; break; - case GL_FLOAT: opcode = float_ops[size]; break; - case GL_DOUBLE: opcode = double_ops[size]; break; - default: - __glXSetError(gc, GL_INVALID_ENUM); - return; - } - - a = get_array_entry( arrays, GL_VERTEX_ARRAY, 0 ); - assert( a != NULL ); - COMMON_ARRAY_DATA_INIT( a, pointer, type, stride, size, GL_FALSE, 4, - opcode ); - - if ( a->enabled ) { - arrays->array_info_cache_valid = GL_FALSE; - } -} - - -void __indirect_glNormalPointer( GLenum type, GLsizei stride, - const GLvoid * pointer ) -{ - uint16_t opcode; - __GLXcontext *gc = __glXGetCurrentContext(); - __GLXattribute * state = (__GLXattribute *)(gc->client_state_private); - struct array_state_vector * arrays = state->array_state; - struct array_state * a; - - - if (stride < 0) { - __glXSetError(gc, GL_INVALID_VALUE); - return; - } - - switch ( type ) { - case GL_BYTE: opcode = X_GLrop_Normal3bv; break; - case GL_SHORT: opcode = X_GLrop_Normal3sv; break; - case GL_INT: opcode = X_GLrop_Normal3iv; break; - case GL_FLOAT: opcode = X_GLrop_Normal3fv; break; - case GL_DOUBLE: opcode = X_GLrop_Normal3dv; break; - default: - __glXSetError(gc, GL_INVALID_ENUM); - return; - } - - a = get_array_entry( arrays, GL_NORMAL_ARRAY, 0 ); - assert( a != NULL ); - COMMON_ARRAY_DATA_INIT( a, pointer, type, stride, 3, GL_TRUE, 4, - opcode ); - - if ( a->enabled ) { - arrays->array_info_cache_valid = GL_FALSE; - } -} - - -void __indirect_glColorPointer( GLint size, GLenum type, GLsizei stride, - const GLvoid * pointer ) -{ - static const uint16_t byte_ops[5] = { - 0, 0, 0, X_GLrop_Color3bv, X_GLrop_Color4bv - }; - static const uint16_t ubyte_ops[5] = { - 0, 0, 0, X_GLrop_Color3ubv, X_GLrop_Color4ubv - }; - static const uint16_t short_ops[5] = { - 0, 0, 0, X_GLrop_Color3sv, X_GLrop_Color4sv - }; - static const uint16_t ushort_ops[5] = { - 0, 0, 0, X_GLrop_Color3usv, X_GLrop_Color4usv - }; - static const uint16_t int_ops[5] = { - 0, 0, 0, X_GLrop_Color3iv, X_GLrop_Color4iv - }; - static const uint16_t uint_ops[5] = { - 0, 0, 0, X_GLrop_Color3uiv, X_GLrop_Color4uiv - }; - static const uint16_t float_ops[5] = { - 0, 0, 0, X_GLrop_Color3fv, X_GLrop_Color4fv - }; - static const uint16_t double_ops[5] = { - 0, 0, 0, X_GLrop_Color3dv, X_GLrop_Color4dv - }; - uint16_t opcode; - __GLXcontext *gc = __glXGetCurrentContext(); - __GLXattribute * state = (__GLXattribute *)(gc->client_state_private); - struct array_state_vector * arrays = state->array_state; - struct array_state * a; - - - if (size < 3 || size > 4 || stride < 0) { - __glXSetError(gc, GL_INVALID_VALUE); - return; - } - - switch ( type ) { - case GL_BYTE: opcode = byte_ops[size]; break; - case GL_UNSIGNED_BYTE: opcode = ubyte_ops[size]; break; - case GL_SHORT: opcode = short_ops[size]; break; - case GL_UNSIGNED_SHORT: opcode = ushort_ops[size]; break; - case GL_INT: opcode = int_ops[size]; break; - case GL_UNSIGNED_INT: opcode = uint_ops[size]; break; - case GL_FLOAT: opcode = float_ops[size]; break; - case GL_DOUBLE: opcode = double_ops[size]; break; - default: - __glXSetError(gc, GL_INVALID_ENUM); - return; - } - - a = get_array_entry( arrays, GL_COLOR_ARRAY, 0 ); - assert( a != NULL ); - COMMON_ARRAY_DATA_INIT( a, pointer, type, stride, size, GL_TRUE, 4, - opcode ); - - if ( a->enabled ) { - arrays->array_info_cache_valid = GL_FALSE; - } -} - - -void __indirect_glIndexPointer( GLenum type, GLsizei stride, - const GLvoid * pointer ) -{ - uint16_t opcode; - __GLXcontext *gc = __glXGetCurrentContext(); - __GLXattribute * state = (__GLXattribute *)(gc->client_state_private); - struct array_state_vector * arrays = state->array_state; - struct array_state * a; - - - if (stride < 0) { - __glXSetError(gc, GL_INVALID_VALUE); - return; - } - - switch ( type ) { - case GL_UNSIGNED_BYTE: opcode = X_GLrop_Indexubv; break; - case GL_SHORT: opcode = X_GLrop_Indexsv; break; - case GL_INT: opcode = X_GLrop_Indexiv; break; - case GL_FLOAT: opcode = X_GLrop_Indexfv; break; - case GL_DOUBLE: opcode = X_GLrop_Indexdv; break; - default: - __glXSetError(gc, GL_INVALID_ENUM); - return; - } - - a = get_array_entry( arrays, GL_INDEX_ARRAY, 0 ); - assert( a != NULL ); - COMMON_ARRAY_DATA_INIT( a, pointer, type, stride, 1, GL_FALSE, 4, - opcode ); - - if ( a->enabled ) { - arrays->array_info_cache_valid = GL_FALSE; - } -} - - -void __indirect_glEdgeFlagPointer( GLsizei stride, const GLvoid * pointer ) -{ - __GLXcontext *gc = __glXGetCurrentContext(); - __GLXattribute * state = (__GLXattribute *)(gc->client_state_private); - struct array_state_vector * arrays = state->array_state; - struct array_state * a; - - - if (stride < 0) { - __glXSetError(gc, GL_INVALID_VALUE); - return; - } - - - a = get_array_entry( arrays, GL_EDGE_FLAG_ARRAY, 0 ); - assert( a != NULL ); - COMMON_ARRAY_DATA_INIT( a, pointer, GL_UNSIGNED_BYTE, stride, 1, GL_FALSE, - 4, X_GLrop_EdgeFlagv ); - - if ( a->enabled ) { - arrays->array_info_cache_valid = GL_FALSE; - } -} - - -void __indirect_glTexCoordPointer( GLint size, GLenum type, GLsizei stride, - const GLvoid * pointer ) -{ - static const uint16_t short_ops[5] = { - 0, X_GLrop_TexCoord1sv, X_GLrop_TexCoord2sv, X_GLrop_TexCoord3sv, X_GLrop_TexCoord4sv - }; - static const uint16_t int_ops[5] = { - 0, X_GLrop_TexCoord1iv, X_GLrop_TexCoord2iv, X_GLrop_TexCoord3iv, X_GLrop_TexCoord4iv - }; - static const uint16_t float_ops[5] = { - 0, X_GLrop_TexCoord1dv, X_GLrop_TexCoord2fv, X_GLrop_TexCoord3fv, X_GLrop_TexCoord4fv - }; - static const uint16_t double_ops[5] = { - 0, X_GLrop_TexCoord1dv, X_GLrop_TexCoord2dv, X_GLrop_TexCoord3dv, X_GLrop_TexCoord4dv - }; - - static const uint16_t mshort_ops[5] = { - 0, X_GLrop_MultiTexCoord1svARB, X_GLrop_MultiTexCoord2svARB, X_GLrop_MultiTexCoord3svARB, X_GLrop_MultiTexCoord4svARB - }; - static const uint16_t mint_ops[5] = { - 0, X_GLrop_MultiTexCoord1ivARB, X_GLrop_MultiTexCoord2ivARB, X_GLrop_MultiTexCoord3ivARB, X_GLrop_MultiTexCoord4ivARB - }; - static const uint16_t mfloat_ops[5] = { - 0, X_GLrop_MultiTexCoord1dvARB, X_GLrop_MultiTexCoord2fvARB, X_GLrop_MultiTexCoord3fvARB, X_GLrop_MultiTexCoord4fvARB - }; - static const uint16_t mdouble_ops[5] = { - 0, X_GLrop_MultiTexCoord1dvARB, X_GLrop_MultiTexCoord2dvARB, X_GLrop_MultiTexCoord3dvARB, X_GLrop_MultiTexCoord4dvARB - }; - - uint16_t opcode; - __GLXcontext *gc = __glXGetCurrentContext(); - __GLXattribute * state = (__GLXattribute *)(gc->client_state_private); - struct array_state_vector * arrays = state->array_state; - struct array_state * a; - unsigned header_size; - unsigned index; - - - if (size < 1 || size > 4 || stride < 0) { - __glXSetError(gc, GL_INVALID_VALUE); - return; - } - - index = arrays->active_texture_unit; - if ( index == 0 ) { - switch ( type ) { - case GL_SHORT: opcode = short_ops[size]; break; - case GL_INT: opcode = int_ops[size]; break; - case GL_FLOAT: opcode = float_ops[size]; break; - case GL_DOUBLE: opcode = double_ops[size]; break; - default: - __glXSetError(gc, GL_INVALID_ENUM); - return; - } - - header_size = 4; - } - else { - switch ( type ) { - case GL_SHORT: opcode = mshort_ops[size]; break; - case GL_INT: opcode = mint_ops[size]; break; - case GL_FLOAT: opcode = mfloat_ops[size]; break; - case GL_DOUBLE: opcode = mdouble_ops[size]; break; - default: - __glXSetError(gc, GL_INVALID_ENUM); - return; - } - - header_size = 8; - } - - a = get_array_entry( arrays, GL_TEXTURE_COORD_ARRAY, index ); - assert( a != NULL ); - COMMON_ARRAY_DATA_INIT( a, pointer, type, stride, size, GL_FALSE, - header_size, opcode ); - - if ( a->enabled ) { - arrays->array_info_cache_valid = GL_FALSE; - } -} - - -void __indirect_glSecondaryColorPointerEXT( GLint size, GLenum type, GLsizei stride, - const GLvoid * pointer ) -{ - uint16_t opcode; - __GLXcontext *gc = __glXGetCurrentContext(); - __GLXattribute * state = (__GLXattribute *)(gc->client_state_private); - struct array_state_vector * arrays = state->array_state; - struct array_state * a; - - - if (size != 3 || stride < 0) { - __glXSetError(gc, GL_INVALID_VALUE); - return; - } - - switch ( type ) { - case GL_BYTE: opcode = 4126; break; - case GL_UNSIGNED_BYTE: opcode = 4131; break; - case GL_SHORT: opcode = 4127; break; - case GL_UNSIGNED_SHORT: opcode = 4132; break; - case GL_INT: opcode = 4128; break; - case GL_UNSIGNED_INT: opcode = 4133; break; - case GL_FLOAT: opcode = 4129; break; - case GL_DOUBLE: opcode = 4130; break; - default: - __glXSetError(gc, GL_INVALID_ENUM); - return; - } - - a = get_array_entry( arrays, GL_SECONDARY_COLOR_ARRAY, 0 ); - if ( a == NULL ) { - __glXSetError(gc, GL_INVALID_OPERATION); - return; - } - - COMMON_ARRAY_DATA_INIT( a, pointer, type, stride, size, GL_TRUE, 4, - opcode ); - - if ( a->enabled ) { - arrays->array_info_cache_valid = GL_FALSE; - } -} - - -void __indirect_glFogCoordPointerEXT( GLenum type, GLsizei stride, - const GLvoid * pointer ) -{ - uint16_t opcode; - __GLXcontext *gc = __glXGetCurrentContext(); - __GLXattribute * state = (__GLXattribute *)(gc->client_state_private); - struct array_state_vector * arrays = state->array_state; - struct array_state * a; - - - if (stride < 0) { - __glXSetError(gc, GL_INVALID_VALUE); - return; - } - - switch ( type ) { - case GL_FLOAT: opcode = 4124; break; - case GL_DOUBLE: opcode = 4125; break; - default: - __glXSetError(gc, GL_INVALID_ENUM); - return; - } - - a = get_array_entry( arrays, GL_FOG_COORD_ARRAY, 0 ); - if ( a == NULL ) { - __glXSetError(gc, GL_INVALID_OPERATION); - return; - } - - COMMON_ARRAY_DATA_INIT( a, pointer, type, stride, 1, GL_FALSE, 4, - opcode ); - - if ( a->enabled ) { - arrays->array_info_cache_valid = GL_FALSE; - } -} - - -void __indirect_glVertexAttribPointerARB(GLuint index, GLint size, - GLenum type, GLboolean normalized, - GLsizei stride, - const GLvoid * pointer) -{ - static const uint16_t short_ops[5] = { 0, 4189, 4190, 4191, 4192 }; - static const uint16_t float_ops[5] = { 0, 4193, 4194, 4195, 4196 }; - static const uint16_t double_ops[5] = { 0, 4197, 4198, 4199, 4200 }; - - uint16_t opcode; - __GLXcontext *gc = __glXGetCurrentContext(); - __GLXattribute * state = (__GLXattribute *)(gc->client_state_private); - struct array_state_vector * arrays = state->array_state; - struct array_state * a; - unsigned true_immediate_count; - unsigned true_immediate_size; - - - if ( (size < 1) || (size > 4) || (stride < 0) - || (index > arrays->num_vertex_program_attribs) ){ - __glXSetError(gc, GL_INVALID_VALUE); - return; - } - - if ( normalized && (type != GL_FLOAT) && (type != GL_DOUBLE)) { - switch( type ) { - case GL_BYTE: opcode = X_GLrop_VertexAttrib4NbvARB; break; - case GL_UNSIGNED_BYTE: opcode = X_GLrop_VertexAttrib4NubvARB; break; - case GL_SHORT: opcode = X_GLrop_VertexAttrib4NsvARB; break; - case GL_UNSIGNED_SHORT: opcode = X_GLrop_VertexAttrib4NusvARB; break; - case GL_INT: opcode = X_GLrop_VertexAttrib4NivARB; break; - case GL_UNSIGNED_INT: opcode = X_GLrop_VertexAttrib4NuivARB; break; - default: - __glXSetError(gc, GL_INVALID_ENUM); - return; - } - - true_immediate_count = 4; - } - else { - true_immediate_count = size; - - switch( type ) { - case GL_BYTE: - opcode = X_GLrop_VertexAttrib4bvARB; - true_immediate_count = 4; - break; - case GL_UNSIGNED_BYTE: - opcode = X_GLrop_VertexAttrib4ubvARB; - true_immediate_count = 4; - break; - case GL_SHORT: - opcode = short_ops[size]; - break; - case GL_UNSIGNED_SHORT: - opcode = X_GLrop_VertexAttrib4usvARB; - true_immediate_count = 4; - break; - case GL_INT: - opcode = X_GLrop_VertexAttrib4ivARB; - true_immediate_count = 4; - break; - case GL_UNSIGNED_INT: - opcode = X_GLrop_VertexAttrib4uivARB; - true_immediate_count = 4; - break; - case GL_FLOAT: - opcode = float_ops[size]; - break; - case GL_DOUBLE: - opcode = double_ops[size]; - break; - default: - __glXSetError(gc, GL_INVALID_ENUM); - return; - } - } - - a = get_array_entry( arrays, GL_VERTEX_ATTRIB_ARRAY_POINTER, index ); - if ( a == NULL ) { - __glXSetError(gc, GL_INVALID_OPERATION); - return; - } - - COMMON_ARRAY_DATA_INIT( a, pointer, type, stride, size, normalized, 8, - opcode ); - - true_immediate_size = __glXTypeSize(type) * true_immediate_count; - ((uint16_t *) (a)->header)[0] = __GLX_PAD(a->header_size - + true_immediate_size); - - if ( a->enabled ) { - arrays->array_info_cache_valid = GL_FALSE; - } -} - - -/** - * I don't have 100% confidence that this is correct. The different rules - * about whether or not generic vertex attributes alias "classic" vertex - * attributes (i.e., attrib1 ?= primary color) between ARB_vertex_program, - * ARB_vertex_shader, and NV_vertex_program are a bit confusing. My - * feeling is that the client-side doesn't have to worry about it. The - * client just sends all the data to the server and lets the server deal - * with it. - */ -void __indirect_glVertexAttribPointerNV( GLuint index, GLint size, - GLenum type, GLsizei stride, - const GLvoid * pointer) -{ - __GLXcontext *gc = __glXGetCurrentContext(); - GLboolean normalized = GL_FALSE; - - - switch( type ) { - case GL_UNSIGNED_BYTE: - if ( size != 4 ) { - __glXSetError(gc, GL_INVALID_VALUE); - return; - } - normalized = GL_TRUE; - - case GL_SHORT: - case GL_FLOAT: - case GL_DOUBLE: - __indirect_glVertexAttribPointerARB(index, size, type, - normalized, - stride, pointer); - return; - default: - __glXSetError(gc, GL_INVALID_ENUM); - return; - } -} - - -void __indirect_glClientActiveTextureARB(GLenum texture) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - __GLXattribute * const state = (__GLXattribute *)(gc->client_state_private); - struct array_state_vector * const arrays = state->array_state; - const GLint unit = (GLint) texture - GL_TEXTURE0; - - - if ( (unit < 0) || (unit > arrays->num_texture_units) ) { - __glXSetError(gc, GL_INVALID_ENUM); - return; - } - - arrays->active_texture_unit = unit; -} - - -/** - */ -GLboolean -__glXSetArrayEnable( __GLXattribute * state, - GLenum key, unsigned index, GLboolean enable ) -{ - struct array_state_vector * arrays = state->array_state; - struct array_state * a; - - - if ( key == GL_TEXTURE_COORD_ARRAY ) { - index = arrays->active_texture_unit; - } - - a = get_array_entry( arrays, key, index ); - - if ( (a != NULL) && (a->enabled != enable) ) { - a->enabled = enable; - arrays->array_info_cache_valid = GL_FALSE; - } - - return (a != NULL); -} - - -void -__glXArrayDisableAll( __GLXattribute * state ) -{ - struct array_state_vector * arrays = state->array_state; - unsigned i; - - - for ( i = 0 ; i < arrays->num_arrays ; i++ ) { - arrays->arrays[i].enabled = GL_FALSE; - } - - arrays->array_info_cache_valid = GL_FALSE; -} - - -/** - */ -GLboolean -__glXGetArrayEnable( const __GLXattribute * const state, - GLenum key, unsigned index, GLintptr * dest ) -{ - const struct array_state_vector * arrays = state->array_state; - const struct array_state * a = get_array_entry( (struct array_state_vector *) arrays, - key, index ); - - if ( a != NULL ) { - *dest = (GLintptr) a->enabled; - } - - return (a != NULL); -} - - -/** - */ -GLboolean -__glXGetArrayType( const __GLXattribute * const state, - GLenum key, unsigned index, GLintptr * dest ) -{ - const struct array_state_vector * arrays = state->array_state; - const struct array_state * a = get_array_entry( (struct array_state_vector *) arrays, - key, index ); - - if ( a != NULL ) { - *dest = (GLintptr) a->enabled; - } - - return (a != NULL); -} - - -/** - */ -GLboolean -__glXGetArraySize( const __GLXattribute * const state, - GLenum key, unsigned index, GLintptr * dest ) -{ - const struct array_state_vector * arrays = state->array_state; - const struct array_state * a = get_array_entry( (struct array_state_vector *) arrays, - key, index ); - - if ( a != NULL ) { - *dest = (GLintptr) a->count; - } - - return (a != NULL); -} - - -/** - */ -GLboolean -__glXGetArrayStride( const __GLXattribute * const state, - GLenum key, unsigned index, GLintptr * dest ) -{ - const struct array_state_vector * arrays = state->array_state; - const struct array_state * a = get_array_entry( (struct array_state_vector *) arrays, - key, index ); - - if ( a != NULL ) { - *dest = (GLintptr) a->user_stride; - } - - return (a != NULL); -} - - -/** - */ -GLboolean -__glXGetArrayPointer( const __GLXattribute * const state, - GLenum key, unsigned index, void ** dest ) -{ - const struct array_state_vector * arrays = state->array_state; - const struct array_state * a = get_array_entry( (struct array_state_vector *) arrays, - key, index ); - - - if ( a != NULL ) { - *dest = (void *) (a->data); - } - - return (a != NULL); -} - - -/** - */ -GLboolean -__glXGetArrayNormalized( const __GLXattribute * const state, - GLenum key, unsigned index, GLintptr * dest ) -{ - const struct array_state_vector * arrays = state->array_state; - const struct array_state * a = get_array_entry( (struct array_state_vector *) arrays, - key, index ); - - - if ( a != NULL ) { - *dest = (GLintptr) a->normalized; - } - - return (a != NULL); -} - - -/** - */ -GLuint -__glXGetActiveTextureUnit( const __GLXattribute * const state ) -{ - return state->array_state->active_texture_unit; -} - - -void -__glXPushArrayState( __GLXattribute * state ) -{ - struct array_state_vector * arrays = state->array_state; - struct array_stack_state * stack = & arrays->stack[ (arrays->stack_index * arrays->num_arrays)]; - unsigned i; - - - for ( i = 0 ; i < arrays->num_arrays ; i++ ) { - stack[i].data = arrays->arrays[i].data; - stack[i].data_type = arrays->arrays[i].data_type; - stack[i].user_stride = arrays->arrays[i].user_stride; - stack[i].count = arrays->arrays[i].count; - stack[i].key = arrays->arrays[i].key; - stack[i].enabled = arrays->arrays[i].enabled; - } - - arrays->active_texture_unit_stack[ arrays->stack_index ] = - arrays->active_texture_unit; - - arrays->stack_index++; -} - - -void -__glXPopArrayState( __GLXattribute * state ) -{ - struct array_state_vector * arrays = state->array_state; - struct array_stack_state * stack; - unsigned i; - - - arrays->stack_index--; - stack = & arrays->stack[ (arrays->stack_index * arrays->num_arrays) ]; - - for ( i = 0 ; i < arrays->num_arrays ; i++ ) { - switch ( stack[i].key ) { - case GL_NORMAL_ARRAY: - __indirect_glNormalPointer( stack[i].data_type, - stack[i].user_stride, - stack[i].data ); - break; - case GL_COLOR_ARRAY: - __indirect_glColorPointer( stack[i].count, - stack[i].data_type, - stack[i].user_stride, - stack[i].data ); - break; - case GL_INDEX_ARRAY: - __indirect_glIndexPointer( stack[i].data_type, - stack[i].user_stride, - stack[i].data ); - break; - case GL_EDGE_FLAG_ARRAY: - __indirect_glEdgeFlagPointer( stack[i].user_stride, - stack[i].data ); - break; - case GL_TEXTURE_COORD_ARRAY: - arrays->active_texture_unit = stack[i].index; - __indirect_glTexCoordPointer( stack[i].count, - stack[i].data_type, - stack[i].user_stride, - stack[i].data ); - break; - case GL_SECONDARY_COLOR_ARRAY: - __indirect_glSecondaryColorPointerEXT( stack[i].count, - stack[i].data_type, - stack[i].user_stride, - stack[i].data ); - break; - case GL_FOG_COORDINATE_ARRAY: - __indirect_glFogCoordPointerEXT( stack[i].data_type, - stack[i].user_stride, - stack[i].data ); - break; - - } - - __glXSetArrayEnable( state, stack[i].key, stack[i].index, - stack[i].enabled ); - } - - arrays->active_texture_unit = - arrays->active_texture_unit_stack[ arrays->stack_index ]; -} diff --git a/nx-X11/extras/Mesa/src/glx/x11/indirect_vertex_array.h b/nx-X11/extras/Mesa/src/glx/x11/indirect_vertex_array.h deleted file mode 100644 index caab62b67..000000000 --- a/nx-X11/extras/Mesa/src/glx/x11/indirect_vertex_array.h +++ /dev/null @@ -1,57 +0,0 @@ -/* - * (C) Copyright IBM Corporation 2004, 2005 - * All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * 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 INDIRECT_VERTEX_ARRAY_H -#define INDIRECT_VERTEX_ARRAY_H - -extern const GLuint __glXTypeSize_table[16]; - -#define __glXTypeSize(e) ((((e) & ~0x0f) != 0x1400) \ - ? 0 : __glXTypeSize_table[ (e) & 0x0f ]) - -extern void __glXArrayDisableAll( __GLXattribute * state ); - -extern GLboolean __glXSetArrayEnable( __GLXattribute * state, - GLenum key, unsigned index, GLboolean enable ); - -extern GLboolean __glXGetArrayEnable( const __GLXattribute * const state, - GLenum key, unsigned index, GLintptr * dest ); -extern GLboolean __glXGetArraySize( const __GLXattribute * const state, - GLenum key, unsigned index, GLintptr * dest ); -extern GLboolean __glXGetArrayType( const __GLXattribute * const state, - GLenum key, unsigned index, GLintptr * dest ); -extern GLboolean __glXGetArrayStride( const __GLXattribute * const state, - GLenum key, unsigned index, GLintptr * dest ); -extern GLboolean __glXGetArrayPointer( const __GLXattribute * const state, - GLenum key, unsigned index, void ** dest ); -extern GLboolean __glXGetArrayNormalized( const __GLXattribute * const state, - GLenum key, unsigned index, GLintptr * dest ); - -extern void __glXPushArrayState( __GLXattribute * state ); -extern void __glXPopArrayState( __GLXattribute * state ); - -extern GLuint __glXGetActiveTextureUnit( const __GLXattribute * const state ); - -#endif /* INDIRECT_VERTEX_ARRAY_H */ diff --git a/nx-X11/extras/Mesa/src/glx/x11/indirect_vertex_program.c b/nx-X11/extras/Mesa/src/glx/x11/indirect_vertex_program.c deleted file mode 100644 index 158327175..000000000 --- a/nx-X11/extras/Mesa/src/glx/x11/indirect_vertex_program.c +++ /dev/null @@ -1,276 +0,0 @@ -/* - * (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 -#include -#include "indirect.h" -#include "glxclient.h" -#include "indirect_vertex_array.h" -#include - -#if !defined __GNUC__ || __GNUC__ < 3 -# define __builtin_expect(x, y) x -#endif - -void do_vertex_attrib_enable( GLuint index, GLboolean val ) -{ - __GLXcontext *gc = __glXGetCurrentContext(); - __GLXattribute * state = (__GLXattribute *)(gc->client_state_private); - - if ( ! __glXSetArrayEnable( state, GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB, - index, val ) ) { - __glXSetError(gc, GL_INVALID_ENUM); - } -} - - -void __indirect_glEnableVertexAttribArrayARB( GLuint index ) -{ - do_vertex_attrib_enable( index, GL_TRUE ); -} - - -void __indirect_glDisableVertexAttribArrayARB( GLuint index ) -{ - do_vertex_attrib_enable( index, GL_FALSE ); -} - - -static void -get_parameter( unsigned opcode, unsigned size, GLenum target, GLuint index, - void * params ) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - Display * const dpy = gc->currentDpy; - const GLuint cmdlen = 12; - - if (__builtin_expect(dpy != NULL, 1)) { - GLubyte const * pc = __glXSetupVendorRequest(gc, - X_GLXVendorPrivateWithReply, - opcode, cmdlen); - - *((GLenum *)(pc + 0)) = target; - *((GLuint *)(pc + 4)) = index; - *((GLuint *)(pc + 8)) = 0; - - (void) __glXReadReply(dpy, size, params, GL_FALSE); - UnlockDisplay(dpy); SyncHandle(); - } - return; -} - - -void __indirect_glGetProgramEnvParameterfvARB( GLenum target, GLuint index, - GLfloat * params ) -{ - get_parameter( 1296, 4, target, index, params ); -} - - -void __indirect_glGetProgramEnvParameterdvARB( GLenum target, GLuint index, - GLdouble * params ) -{ - get_parameter( 1297, 8, target, index, params ); -} - - -void __indirect_glGetProgramLocalParameterfvARB( GLenum target, GLuint index, - GLfloat * params ) -{ - get_parameter( 1305, 4, target, index, params ); -} - - -void __indirect_glGetProgramLocalParameterdvARB( GLenum target, GLuint index, - GLdouble * params ) -{ - get_parameter( 1306, 8, target, index, params ); -} - - -void __indirect_glGetVertexAttribPointervNV( GLuint index, GLenum pname, - GLvoid ** pointer ) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - __GLXattribute * state = (__GLXattribute *)(gc->client_state_private); - - if ( pname != GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB ) { - __glXSetError( gc, GL_INVALID_ENUM ); - } - - if ( ! __glXGetArrayPointer( state, GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB, - index, pointer ) ) { - __glXSetError( gc, GL_INVALID_VALUE ); - } -} - - -/** - * Get the selected attribute from the vertex array state vector. - * - * \returns - * On success \c GL_TRUE is returned. Otherwise, \c GL_FALSE is returned. - */ -static GLboolean -get_attrib_array_data( __GLXattribute * state, GLuint index, GLenum cap, - GLintptr * data ) -{ - GLboolean retval = GL_FALSE; - const GLenum attrib = GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB; - - switch( cap ) { - case GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB: - retval = __glXGetArrayEnable( state, attrib, index, data ); - break; - - case GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB: - retval = __glXGetArraySize( state, attrib, index, data ); - break; - - case GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB: - retval = __glXGetArrayStride( state, attrib, index, data ); - break; - - case GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB: - retval = __glXGetArrayType( state, attrib, index, data ); - break; - - case GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB: - retval = __glXGetArrayNormalized( state, attrib, index, data ); - break; - } - - - return retval; -} - - -static void get_vertex_attrib( __GLXcontext * gc, unsigned vop, - GLuint index, GLenum pname, - xReply * reply ) -{ - Display * const dpy = gc->currentDpy; - GLubyte * const pc = __glXSetupVendorRequest(gc, - X_GLXVendorPrivateWithReply, - vop, 8); - - *((uint32_t *)(pc + 0)) = index; - *((uint32_t *)(pc + 4)) = pname; - - (void) _XReply( dpy, reply, 0, False ); -} - - -void __indirect_glGetVertexAttribivARB( GLuint index, GLenum pname, - GLint * params ) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - Display * const dpy = gc->currentDpy; - __GLXattribute * state = (__GLXattribute *)(gc->client_state_private); - xGLXSingleReply reply; - - - get_vertex_attrib( gc, 1303, index, pname, (xReply *) & reply ); - - if ( reply.size != 0 ) { - if ( ! get_attrib_array_data( state, index, pname, params ) ) { - if (reply.size == 1) { - *params = (GLint) reply.pad3; - } - else { - _XRead(dpy, (void *) params, 4 * reply.size); - } - } - } - - UnlockDisplay(dpy); - SyncHandle(); -} - - -void __indirect_glGetVertexAttribfvARB( GLuint index, GLenum pname, - GLfloat * params ) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - Display * const dpy = gc->currentDpy; - __GLXattribute * state = (__GLXattribute *)(gc->client_state_private); - xGLXSingleReply reply; - - - get_vertex_attrib( gc, 1302, index, pname, (xReply *) & reply ); - - if ( reply.size != 0 ) { - GLintptr data; - - - if ( get_attrib_array_data( state, index, pname, & data ) ) { - *params = (GLfloat) data; - } - else { - if (reply.size == 1) { - (void) memcpy( params, & reply.pad3, sizeof( GLfloat ) ); - } - else { - _XRead(dpy, (void *) params, 4 * reply.size); - } - } - } - - UnlockDisplay(dpy); - SyncHandle(); -} - - -void __indirect_glGetVertexAttribdvARB( GLuint index, GLenum pname, - GLdouble * params ) -{ - __GLXcontext * const gc = __glXGetCurrentContext(); - Display * const dpy = gc->currentDpy; - __GLXattribute * state = (__GLXattribute *)(gc->client_state_private); - xGLXSingleReply reply; - - - get_vertex_attrib( gc, 1301, index, pname, (xReply *) & reply ); - - if ( reply.size != 0 ) { - GLintptr data; - - - if ( get_attrib_array_data( state, index, pname, & data ) ) { - *params = (GLdouble) data; - } - else { - if (reply.size == 1) { - (void) memcpy( params, & reply.pad3, sizeof( GLdouble ) ); - } - else { - _XRead(dpy, (void *) params, 8 * reply.size); - } - } - } - - UnlockDisplay(dpy); - SyncHandle(); -} diff --git a/nx-X11/extras/Mesa/src/glx/x11/indirect_window_pos.c b/nx-X11/extras/Mesa/src/glx/x11/indirect_window_pos.c deleted file mode 100644 index 533f8ef1a..000000000 --- a/nx-X11/extras/Mesa/src/glx/x11/indirect_window_pos.c +++ /dev/null @@ -1,98 +0,0 @@ -/* - * Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas. - * (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 - * PRECISION INSIGHT, 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 -#include "indirect.h" - -void __indirect_glWindowPos2dMESA(GLdouble x, GLdouble y) -{ - __indirect_glWindowPos3fMESA(x, y, 0.0); -} - -void __indirect_glWindowPos2iMESA(GLint x, GLint y) -{ - __indirect_glWindowPos3fMESA(x, y, 0.0); -} - -void __indirect_glWindowPos2fMESA(GLfloat x, GLfloat y) -{ - __indirect_glWindowPos3fMESA(x, y, 0.0); -} - -void __indirect_glWindowPos2sMESA(GLshort x, GLshort y) -{ - __indirect_glWindowPos3fMESA(x, y, 0.0); -} - -void __indirect_glWindowPos2dvMESA(const GLdouble * p) -{ - __indirect_glWindowPos3fMESA(p[0], p[1], 0.0); -} - -void __indirect_glWindowPos2fvMESA(const GLfloat * p) -{ - __indirect_glWindowPos3fMESA(p[0], p[1], 0.0); -} - -void __indirect_glWindowPos2ivMESA(const GLint * p) -{ - __indirect_glWindowPos3fMESA(p[0], p[1], 0.0); -} - -void __indirect_glWindowPos2svMESA(const GLshort * p) -{ - __indirect_glWindowPos3fMESA(p[0], p[1], 0.0); -} - -void __indirect_glWindowPos3dMESA(GLdouble x, GLdouble y, GLdouble z) -{ - __indirect_glWindowPos3fMESA(x, y, z); -} - -void __indirect_glWindowPos3iMESA(GLint x, GLint y, GLint z) -{ - __indirect_glWindowPos3fMESA(x, y, z); -} - -void __indirect_glWindowPos3sMESA(GLshort x, GLshort y, GLshort z) -{ - __indirect_glWindowPos3fMESA(x, y, z); -} - -void __indirect_glWindowPos3dvMESA(const GLdouble * p) -{ - __indirect_glWindowPos3fMESA(p[0], p[1], p[2]); -} - -void __indirect_glWindowPos3ivMESA(const GLint * p) -{ - __indirect_glWindowPos3fMESA(p[0], p[1], p[2]); -} - -void __indirect_glWindowPos3svMESA(const GLshort * p) -{ - __indirect_glWindowPos3fMESA(p[0], p[1], p[2]); -} diff --git a/nx-X11/extras/Mesa/src/glx/x11/packrender.h b/nx-X11/extras/Mesa/src/glx/x11/packrender.h deleted file mode 100644 index ce2a1616d..000000000 --- a/nx-X11/extras/Mesa/src/glx/x11/packrender.h +++ /dev/null @@ -1,249 +0,0 @@ -/* $XFree86: xc/lib/GL/glx/packrender.h,v 1.7tsi Exp $ */ -#ifndef __GLX_packrender_h__ -#define __GLX_packrender_h__ - -/* -** License Applicability. Except to the extent portions of this file are -** made subject to an alternative license as permitted in the SGI Free -** Software License B, Version 1.1 (the "License"), the contents of this -** file are subject only to the provisions of the License. You may not use -** this file except in compliance with the License. You may obtain a copy -** of the License at Silicon Graphics, Inc., attn: Legal Services, 1600 -** Amphitheatre Parkway, Mountain View, CA 94043-1351, or at: -** -** http://oss.sgi.com/projects/FreeB -** -** Note that, as provided in the License, the Software is distributed on an -** "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS -** DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND -** CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A -** PARTICULAR PURPOSE, AND NON-INFRINGEMENT. -** -** Original Code. The Original Code is: OpenGL Sample Implementation, -** Version 1.2.1, released January 26, 2000, developed by Silicon Graphics, -** Inc. The Original Code is Copyright (c) 1991-2000 Silicon Graphics, Inc. -** Copyright in any portions created by third parties is as indicated -** elsewhere herein. All Rights Reserved. -** -** Additional Notice Provisions: The application programming interfaces -** established by SGI in conjunction with the Original Code are The -** OpenGL(R) Graphics System: A Specification (Version 1.2.1), released -** April 1, 1999; The OpenGL(R) Graphics System Utility Library (Version -** 1.3), released November 4, 1998; and OpenGL(R) Graphics with the X -** Window System(R) (Version 1.3), released October 19, 1998. This software -** was created using the OpenGL(R) version 1.2.1 Sample Implementation -** published by SGI, but has not been independently verified as being -** compliant with the OpenGL(R) version 1.2.1 Specification. -** -*/ - -#include "glxclient.h" - -/* -** The macros in this header convert the client machine's native data types to -** wire protocol data types. The header is part of the porting layer of the -** client library, and it is intended that hardware vendors will rewrite this -** header to suit their own machines. -*/ - -/* -** Pad a count of bytes to the nearest multiple of 4. The X protocol -** transfers data in 4 byte quantities, so this macro is used to -** insure the right amount of data being sent. -*/ -#define __GLX_PAD(a) (((a)+3) & ~3) - -/* - ** Network size parameters - */ -#define sz_double 8 - -/* Setup for all commands */ -#define __GLX_DECLARE_VARIABLES() \ - __GLXcontext *gc; \ - GLubyte *pc, *pixelHeaderPC; \ - GLuint compsize, cmdlen - -#define __GLX_LOAD_VARIABLES() \ - gc = __glXGetCurrentContext(); \ - pc = gc->pc; \ - /* Muffle compilers */ \ - cmdlen = 0; (void)cmdlen; \ - compsize = 0; (void)compsize; \ - pixelHeaderPC = 0; (void)pixelHeaderPC - -/* -** Variable sized command support macro. This macro is used by calls -** that are potentially larger than __GLX_SMALL_RENDER_CMD_SIZE. -** Because of their size, they may not automatically fit in the buffer. -** If the buffer can't hold the command then it is flushed so that -** the command will fit in the next buffer. -*/ -#define __GLX_BEGIN_VARIABLE(opcode,size) \ - if (pc + (size) > gc->bufEnd) { \ - pc = __glXFlushRenderBuffer(gc, pc); \ - } \ - __GLX_PUT_SHORT(0,size); \ - __GLX_PUT_SHORT(2,opcode) - -#define __GLX_BEGIN_VARIABLE_LARGE(opcode,size) \ - pc = __glXFlushRenderBuffer(gc, pc); \ - __GLX_PUT_LONG(0,size); \ - __GLX_PUT_LONG(4,opcode) - -#define __GLX_BEGIN_VARIABLE_WITH_PIXEL(opcode,size) \ - if (pc + (size) > gc->bufEnd) { \ - pc = __glXFlushRenderBuffer(gc, pc); \ - } \ - __GLX_PUT_SHORT(0,size); \ - __GLX_PUT_SHORT(2,opcode); \ - pc += __GLX_RENDER_HDR_SIZE; \ - pixelHeaderPC = pc; \ - pc += __GLX_PIXEL_HDR_SIZE - -#define __GLX_BEGIN_VARIABLE_LARGE_WITH_PIXEL(opcode,size) \ - pc = __glXFlushRenderBuffer(gc, pc); \ - __GLX_PUT_LONG(0,size); \ - __GLX_PUT_LONG(4,opcode); \ - pc += __GLX_RENDER_LARGE_HDR_SIZE; \ - pixelHeaderPC = pc; \ - pc += __GLX_PIXEL_HDR_SIZE - -#define __GLX_BEGIN_VARIABLE_WITH_PIXEL_3D(opcode,size) \ - if (pc + (size) > gc->bufEnd) { \ - pc = __glXFlushRenderBuffer(gc, pc); \ - } \ - __GLX_PUT_SHORT(0,size); \ - __GLX_PUT_SHORT(2,opcode); \ - pc += __GLX_RENDER_HDR_SIZE; \ - pixelHeaderPC = pc; \ - pc += __GLX_PIXEL_3D_HDR_SIZE - -#define __GLX_BEGIN_VARIABLE_LARGE_WITH_PIXEL_3D(opcode,size) \ - pc = __glXFlushRenderBuffer(gc, pc); \ - __GLX_PUT_LONG(0,size); \ - __GLX_PUT_LONG(4,opcode); \ - pc += __GLX_RENDER_LARGE_HDR_SIZE; \ - pixelHeaderPC = pc; \ - pc += __GLX_PIXEL_3D_HDR_SIZE - -/* -** Fixed size command support macro. This macro is used by calls that -** are never larger than __GLX_SMALL_RENDER_CMD_SIZE. Because they -** always fit in the buffer, and because the buffer promises to -** maintain enough room for them, we don't need to check for space -** before doing the storage work. -*/ -#define __GLX_BEGIN(opcode,size) \ - __GLX_PUT_SHORT(0,size); \ - __GLX_PUT_SHORT(2,opcode) - -/* -** Finish a rendering command by advancing the pc. If the pc is now past -** the limit pointer then there is no longer room for a -** __GLX_SMALL_RENDER_CMD_SIZE sized command, which will break the -** assumptions present in the __GLX_BEGIN macro. In this case the -** rendering buffer is flushed out into the X protocol stream (which may -** or may not do I/O). -*/ -#define __GLX_END(size) \ - pc += size; \ - if (pc > gc->limit) { \ - (void) __glXFlushRenderBuffer(gc, pc); \ - } else { \ - gc->pc = pc; \ - } - -/* Array copy macros */ -#define __GLX_MEM_COPY(dest,src,bytes) \ - if (src && dest) \ - memcpy(dest, src, bytes) - -/* Single item copy macros */ -#define __GLX_PUT_CHAR(offset,a) \ - *((INT8 *) (pc + offset)) = a - -#ifndef _CRAY -#define __GLX_PUT_SHORT(offset,a) \ - *((INT16 *) (pc + offset)) = a - -#define __GLX_PUT_LONG(offset,a) \ - *((INT32 *) (pc + offset)) = a - -#define __GLX_PUT_FLOAT(offset,a) \ - *((FLOAT32 *) (pc + offset)) = a - -#else -#define __GLX_PUT_SHORT(offset,a) \ - { GLubyte *cp = (pc+offset); \ - int shift = (64-16) - ((int)(cp) >> (64-6)); \ - *(int *)cp = (*(int *)cp & ~(0xffff << shift)) | ((a & 0xffff) << shift); } - -#define __GLX_PUT_LONG(offset,a) \ - { GLubyte *cp = (pc+offset); \ - int shift = (64-32) - ((int)(cp) >> (64-6)); \ - *(int *)cp = (*(int *)cp & ~(0xffffffff << shift)) | ((a & 0xffffffff) << shift); } - -#define __GLX_PUT_FLOAT(offset,a) \ - gl_put_float((pc + offset),a) - -#define __GLX_PUT_DOUBLE(offset,a) \ - gl_put_double(pc + offset, a) - -extern void gl_put_float(/*GLubyte *, struct cray_single*/); -extern void gl_put_double(/*GLubyte *, struct cray_double*/); -#endif - -#ifndef _CRAY - -#ifdef __GLX_ALIGN64 -/* -** This can certainly be done better for a particular machine -** architecture! -*/ -#define __GLX_PUT_DOUBLE(offset,a) \ - __GLX_MEM_COPY(pc + offset, &a, 8) -#else -#define __GLX_PUT_DOUBLE(offset,a) \ - *((FLOAT64 *) (pc + offset)) = a -#endif - -#endif - -#define __GLX_PUT_CHAR_ARRAY(offset,a,alen) \ - __GLX_MEM_COPY(pc + offset, a, alen * __GLX_SIZE_INT8) - -#ifndef _CRAY -#define __GLX_PUT_SHORT_ARRAY(offset,a,alen) \ - __GLX_MEM_COPY(pc + offset, a, alen * __GLX_SIZE_INT16) - -#define __GLX_PUT_LONG_ARRAY(offset,a,alen) \ - __GLX_MEM_COPY(pc + offset, a, alen * __GLX_SIZE_INT32) - -#define __GLX_PUT_FLOAT_ARRAY(offset,a,alen) \ - __GLX_MEM_COPY(pc + offset, a, alen * __GLX_SIZE_FLOAT32) - -#define __GLX_PUT_DOUBLE_ARRAY(offset,a,alen) \ - __GLX_MEM_COPY(pc + offset, a, alen * __GLX_SIZE_FLOAT64) - -#else -#define __GLX_PUT_SHORT_ARRAY(offset,a,alen) \ - gl_put_short_array((GLubyte *)(pc + offset), a, alen * __GLX_SIZE_INT16) - -#define __GLX_PUT_LONG_ARRAY(offset,a,alen) \ - gl_put_long_array((GLubyte *)(pc + offset), (long *)a, alen * __GLX_SIZE_INT32) - -#define __GLX_PUT_FLOAT_ARRAY(offset,a,alen) \ - gl_put_float_array((GLubyte *)(pc + offset), (float *)a, alen * __GLX_SIZE_FLOAT32) - -#define __GLX_PUT_DOUBLE_ARRAY(offset,a,alen) \ - gl_put_double_array((GLubyte *)(pc + offset), (double *)a, alen * __GLX_SIZE_FLOAT64) - -extern gl_put_short_array (GLubyte *, short *, int); -extern gl_put_long_array (GLubyte *, long *, int); -extern gl_put_float_array (GLubyte *, float *, int); -extern gl_put_double_array (GLubyte *, double *, int); - -#endif /* _CRAY */ - -#endif /* !__GLX_packrender_h__ */ diff --git a/nx-X11/extras/Mesa/src/glx/x11/packsingle.h b/nx-X11/extras/Mesa/src/glx/x11/packsingle.h deleted file mode 100644 index 16b054f1e..000000000 --- a/nx-X11/extras/Mesa/src/glx/x11/packsingle.h +++ /dev/null @@ -1,219 +0,0 @@ -/* $XFree86: xc/lib/GL/glx/packsingle.h,v 1.5tsi Exp $ */ -#ifndef __GLX_packsingle_h__ -#define __GLX_packsingle_h__ - -/* -** License Applicability. Except to the extent portions of this file are -** made subject to an alternative license as permitted in the SGI Free -** Software License B, Version 1.1 (the "License"), the contents of this -** file are subject only to the provisions of the License. You may not use -** this file except in compliance with the License. You may obtain a copy -** of the License at Silicon Graphics, Inc., attn: Legal Services, 1600 -** Amphitheatre Parkway, Mountain View, CA 94043-1351, or at: -** -** http://oss.sgi.com/projects/FreeB -** -** Note that, as provided in the License, the Software is distributed on an -** "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS -** DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND -** CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A -** PARTICULAR PURPOSE, AND NON-INFRINGEMENT. -** -** Original Code. The Original Code is: OpenGL Sample Implementation, -** Version 1.2.1, released January 26, 2000, developed by Silicon Graphics, -** Inc. The Original Code is Copyright (c) 1991-2000 Silicon Graphics, Inc. -** Copyright in any portions created by third parties is as indicated -** elsewhere herein. All Rights Reserved. -** -** Additional Notice Provisions: The application programming interfaces -** established by SGI in conjunction with the Original Code are The -** OpenGL(R) Graphics System: A Specification (Version 1.2.1), released -** April 1, 1999; The OpenGL(R) Graphics System Utility Library (Version -** 1.3), released November 4, 1998; and OpenGL(R) Graphics with the X -** Window System(R) (Version 1.3), released October 19, 1998. This software -** was created using the OpenGL(R) version 1.2.1 Sample Implementation -** published by SGI, but has not been independently verified as being -** compliant with the OpenGL(R) version 1.2.1 Specification. -** -*/ - -#include "packrender.h" - -/* -** The macros in this header convert wire protocol data types to the client -** machine's native data types. The header is part of the porting layer of -** the client library, and it is intended that hardware vendors will rewrite -** this header to suit their own machines. -*/ - -/* -** Dummy define to make the GetReqExtra macro happy. The value is not -** used, but instead the code in __GLX_SINGLE_BEGIN issues its own store -** to req->reqType with the proper code (our extension code). -*/ -#define X_GLXSingle 0 - -/* Declare common variables used during a single command */ -#define __GLX_SINGLE_DECLARE_VARIABLES() \ - __GLXcontext *gc = __glXGetCurrentContext(); \ - GLubyte *pc, *pixelHeaderPC; \ - GLuint compsize, cmdlen; \ - Display *dpy = gc->currentDpy; \ - xGLXSingleReq *req - -#define __GLX_SINGLE_LOAD_VARIABLES() \ - pc = gc->pc; \ - /* Muffle compilers */ \ - pixelHeaderPC = 0; (void)pixelHeaderPC; \ - compsize = 0; (void)compsize; \ - cmdlen = 0; (void)cmdlen - -/* Start a single command */ -#define __GLX_SINGLE_BEGIN(opcode,bytes) \ - if (dpy) { \ - (void) __glXFlushRenderBuffer(gc, pc); \ - LockDisplay(dpy); \ - GetReqExtra(GLXSingle,bytes,req); \ - req->reqType = gc->majorOpcode; \ - req->glxCode = opcode; \ - req->contextTag = gc->currentContextTag; \ - pc = ((GLubyte *)(req) + sz_xGLXSingleReq) - -/* End a single command */ -#define __GLX_SINGLE_END() \ - UnlockDisplay(dpy); \ - SyncHandle(); \ - } - -/* Store data to sending for a single command */ -#define __GLX_SINGLE_PUT_CHAR(offset,a) \ - *((INT8 *) (pc + offset)) = a - -#ifndef CRAY -#define __GLX_SINGLE_PUT_SHORT(offset,a) \ - *((INT16 *) (pc + offset)) = a - -#define __GLX_SINGLE_PUT_LONG(offset,a) \ - *((INT32 *) (pc + offset)) = a - -#define __GLX_SINGLE_PUT_FLOAT(offset,a) \ - *((FLOAT32 *) (pc + offset)) = a - -#else -#define __GLX_SINGLE_PUT_SHORT(offset,a) \ - { GLubyte *cp = (pc+offset); \ - int shift = (64-16) - ((int)(cp) >> (64-6)); \ - *(int *)cp = (*(int *)cp & ~(0xffff << shift)) | ((a & 0xffff) << shift); } - -#define __GLX_SINGLE_PUT_LONG(offset,a) \ - { GLubyte *cp = (pc+offset); \ - int shift = (64-32) - ((int)(cp) >> (64-6)); \ - *(int *)cp = (*(int *)cp & ~(0xffffffff << shift)) | ((a & 0xffffffff) << shift); } - -#define __GLX_SINGLE_PUT_FLOAT(offset,a) \ - gl_put_float(pc + offset, a) -#endif - -/* Read support macros */ -#define __GLX_SINGLE_READ_XREPLY() \ - (void) _XReply(dpy, (xReply*) &reply, 0, False) - -#define __GLX_SINGLE_GET_RETVAL(a,cast) \ - a = (cast) reply.retval - -#define __GLX_SINGLE_GET_SIZE(a) \ - a = (GLint) reply.size - -#ifndef _CRAY -#define __GLX_SINGLE_GET_CHAR(p) \ - *p = *(GLbyte *)&reply.pad3; - -#define __GLX_SINGLE_GET_SHORT(p) \ - *p = *(GLshort *)&reply.pad3; - -#define __GLX_SINGLE_GET_LONG(p) \ - *p = *(GLint *)&reply.pad3; - -#define __GLX_SINGLE_GET_FLOAT(p) \ - *p = *(GLfloat *)&reply.pad3; - -#else -#define __GLX_SINGLE_GET_CHAR(p) \ - *p = reply.pad3 >> 24; - -#define __GLX_SINGLE_GET_SHORT(p) \ - {int t = reply.pad3 >> 16; \ - *p = (t & 0x8000) ? (t | ~0xffff) : (t & 0xffff);} - -#define __GLX_SINGLE_GET_LONG(p) \ - {int t = reply.pad3; \ - *p = (t & 0x80000000) ? (t | ~0xffffffff) : (t & 0xffffffff);} - -#define PAD3OFFSET 16 -#define __GLX_SINGLE_GET_FLOAT(p) \ - *p = gl_ntoh_float((GLubyte *)&reply + PAD3OFFSET); - -#define __GLX_SINGLE_GET_DOUBLE(p) \ - *p = gl_ntoh_double((GLubyte *)&reply + PAD3OFFSET); - -extern float gl_ntoh_float(GLubyte *); -extern float gl_ntoh_double(GLubyte *); -#endif - -#ifndef _CRAY - -#ifdef __GLX_ALIGN64 -#define __GLX_SINGLE_GET_DOUBLE(p) \ - __GLX_MEM_COPY(p, &reply.pad3, 8) -#else -#define __GLX_SINGLE_GET_DOUBLE(p) \ - *p = *(GLdouble *)&reply.pad3 -#endif - -#endif - -/* Get an array of typed data */ -#define __GLX_SINGLE_GET_VOID_ARRAY(a,alen) \ -{ \ - GLint slop = alen*__GLX_SIZE_INT8 & 3; \ - _XRead(dpy,(char *)a,alen*__GLX_SIZE_INT8); \ - if (slop) _XEatData(dpy,4-slop); \ -} - -#define __GLX_SINGLE_GET_CHAR_ARRAY(a,alen) \ -{ \ - GLint slop = alen*__GLX_SIZE_INT8 & 3; \ - _XRead(dpy,(char *)a,alen*__GLX_SIZE_INT8); \ - if (slop) _XEatData(dpy,4-slop); \ -} - - -#define __GLX_SINGLE_GET_SHORT_ARRAY(a,alen) \ -{ \ - GLint slop = (alen*__GLX_SIZE_INT16) & 3; \ - _XRead(dpy,(char *)a,alen*__GLX_SIZE_INT16);\ - if (slop) _XEatData(dpy,4-slop); \ -} - -#define __GLX_SINGLE_GET_LONG_ARRAY(a,alen) \ - _XRead(dpy,(char *)a,alen*__GLX_SIZE_INT32); - -#ifndef _CRAY -#define __GLX_SINGLE_GET_FLOAT_ARRAY(a,alen) \ - _XRead(dpy,(char *)a,alen*__GLX_SIZE_FLOAT32); - -#define __GLX_SINGLE_GET_DOUBLE_ARRAY(a,alen) \ - _XRead(dpy,(char *)a,alen*__GLX_SIZE_FLOAT64); - -#else -#define __GLX_SINGLE_GET_FLOAT_ARRAY(a,alen) \ - gl_get_float_array(dpy,a,alen); - -#define __GLX_SINGLE_GET_DOUBLE_ARRAY(a,alen) \ - gl_get_double_array(dpy, a, alen); - -extern void gl_get_float_array(Display *dpy, float *a, int alen); -extern void gl_get_double_array(Display *dpy, double *a, int alen); -#endif - -#endif /* !__GLX_packsingle_h__ */ diff --git a/nx-X11/extras/Mesa/src/glx/x11/pixel.c b/nx-X11/extras/Mesa/src/glx/x11/pixel.c deleted file mode 100644 index 3b3a1811a..000000000 --- a/nx-X11/extras/Mesa/src/glx/x11/pixel.c +++ /dev/null @@ -1,443 +0,0 @@ -/* $XFree86: xc/lib/GL/glx/pixel.c,v 1.8 2003/09/28 20:15:04 alanh Exp $ */ -/* -** License Applicability. Except to the extent portions of this file are -** made subject to an alternative license as permitted in the SGI Free -** Software License B, Version 1.1 (the "License"), the contents of this -** file are subject only to the provisions of the License. You may not use -** this file except in compliance with the License. You may obtain a copy -** of the License at Silicon Graphics, Inc., attn: Legal Services, 1600 -** Amphitheatre Parkway, Mountain View, CA 94043-1351, or at: -** -** http://oss.sgi.com/projects/FreeB -** -** Note that, as provided in the License, the Software is distributed on an -** "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS -** DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND -** CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A -** PARTICULAR PURPOSE, AND NON-INFRINGEMENT. -** -** Original Code. The Original Code is: OpenGL Sample Implementation, -** Version 1.2.1, released January 26, 2000, developed by Silicon Graphics, -** Inc. The Original Code is Copyright (c) 1991-2000 Silicon Graphics, Inc. -** Copyright in any portions created by third parties is as indicated -** elsewhere herein. All Rights Reserved. -** -** Additional Notice Provisions: The application programming interfaces -** established by SGI in conjunction with the Original Code are The -** OpenGL(R) Graphics System: A Specification (Version 1.2.1), released -** April 1, 1999; The OpenGL(R) Graphics System Utility Library (Version -** 1.3), released November 4, 1998; and OpenGL(R) Graphics with the X -** Window System(R) (Version 1.3), released October 19, 1998. This software -** was created using the OpenGL(R) version 1.2.1 Sample Implementation -** published by SGI, but has not been independently verified as being -** compliant with the OpenGL(R) version 1.2.1 Specification. -** -*/ - -#include "packrender.h" - -static const GLubyte MsbToLsbTable[256] = { - 0x00, 0x80, 0x40, 0xc0, 0x20, 0xa0, 0x60, 0xe0, - 0x10, 0x90, 0x50, 0xd0, 0x30, 0xb0, 0x70, 0xf0, - 0x08, 0x88, 0x48, 0xc8, 0x28, 0xa8, 0x68, 0xe8, - 0x18, 0x98, 0x58, 0xd8, 0x38, 0xb8, 0x78, 0xf8, - 0x04, 0x84, 0x44, 0xc4, 0x24, 0xa4, 0x64, 0xe4, - 0x14, 0x94, 0x54, 0xd4, 0x34, 0xb4, 0x74, 0xf4, - 0x0c, 0x8c, 0x4c, 0xcc, 0x2c, 0xac, 0x6c, 0xec, - 0x1c, 0x9c, 0x5c, 0xdc, 0x3c, 0xbc, 0x7c, 0xfc, - 0x02, 0x82, 0x42, 0xc2, 0x22, 0xa2, 0x62, 0xe2, - 0x12, 0x92, 0x52, 0xd2, 0x32, 0xb2, 0x72, 0xf2, - 0x0a, 0x8a, 0x4a, 0xca, 0x2a, 0xaa, 0x6a, 0xea, - 0x1a, 0x9a, 0x5a, 0xda, 0x3a, 0xba, 0x7a, 0xfa, - 0x06, 0x86, 0x46, 0xc6, 0x26, 0xa6, 0x66, 0xe6, - 0x16, 0x96, 0x56, 0xd6, 0x36, 0xb6, 0x76, 0xf6, - 0x0e, 0x8e, 0x4e, 0xce, 0x2e, 0xae, 0x6e, 0xee, - 0x1e, 0x9e, 0x5e, 0xde, 0x3e, 0xbe, 0x7e, 0xfe, - 0x01, 0x81, 0x41, 0xc1, 0x21, 0xa1, 0x61, 0xe1, - 0x11, 0x91, 0x51, 0xd1, 0x31, 0xb1, 0x71, 0xf1, - 0x09, 0x89, 0x49, 0xc9, 0x29, 0xa9, 0x69, 0xe9, - 0x19, 0x99, 0x59, 0xd9, 0x39, 0xb9, 0x79, 0xf9, - 0x05, 0x85, 0x45, 0xc5, 0x25, 0xa5, 0x65, 0xe5, - 0x15, 0x95, 0x55, 0xd5, 0x35, 0xb5, 0x75, 0xf5, - 0x0d, 0x8d, 0x4d, 0xcd, 0x2d, 0xad, 0x6d, 0xed, - 0x1d, 0x9d, 0x5d, 0xdd, 0x3d, 0xbd, 0x7d, 0xfd, - 0x03, 0x83, 0x43, 0xc3, 0x23, 0xa3, 0x63, 0xe3, - 0x13, 0x93, 0x53, 0xd3, 0x33, 0xb3, 0x73, 0xf3, - 0x0b, 0x8b, 0x4b, 0xcb, 0x2b, 0xab, 0x6b, 0xeb, - 0x1b, 0x9b, 0x5b, 0xdb, 0x3b, 0xbb, 0x7b, 0xfb, - 0x07, 0x87, 0x47, 0xc7, 0x27, 0xa7, 0x67, 0xe7, - 0x17, 0x97, 0x57, 0xd7, 0x37, 0xb7, 0x77, 0xf7, - 0x0f, 0x8f, 0x4f, 0xcf, 0x2f, 0xaf, 0x6f, 0xef, - 0x1f, 0x9f, 0x5f, 0xdf, 0x3f, 0xbf, 0x7f, 0xff, -}; - -static const GLubyte LowBitsMask[9] = { - 0x00, 0x01, 0x03, 0x07, 0x0f, 0x1f, 0x3f, 0x7f, 0xff, -}; - -static const GLubyte HighBitsMask[9] = { - 0x00, 0x80, 0xc0, 0xe0, 0xf0, 0xf8, 0xfc, 0xfe, 0xff, -}; - - -/* -** Copy bitmap data from clients packed memory applying unpacking modes as the -** data is transfered into the destImage buffer. Return in modes the -** set of pixel modes that are to be done by the server. -*/ -static void FillBitmap(__GLXcontext *gc, GLint width, GLint height, - GLenum format, const GLvoid *userdata, - GLubyte *destImage) -{ - const __GLXattribute * state = gc->client_state_private; - GLint rowLength = state->storeUnpack.rowLength; - GLint alignment = state->storeUnpack.alignment; - GLint skipPixels = state->storeUnpack.skipPixels; - GLint skipRows = state->storeUnpack.skipRows; - GLint lsbFirst = state->storeUnpack.lsbFirst; - GLint elementsLeft, bitOffset, currentByte, nextByte, highBitMask; - GLint lowBitMask, i; - GLint components, groupsPerRow, rowSize, padding, elementsPerRow; - const GLubyte *start, *iter; - - if (rowLength > 0) { - groupsPerRow = rowLength; - } else { - groupsPerRow = width; - } - components = __glElementsPerGroup(format,GL_BITMAP); - rowSize = (groupsPerRow * components + 7) >> 3; - padding = (rowSize % alignment); - if (padding) { - rowSize += alignment - padding; - } - start = ((const GLubyte*) userdata) + skipRows * rowSize + - ((skipPixels * components) >> 3); - bitOffset = (skipPixels * components) & 7; - highBitMask = LowBitsMask[8-bitOffset]; - lowBitMask = HighBitsMask[bitOffset]; - elementsPerRow = width * components; - for (i = 0; i < height; i++) { - elementsLeft = elementsPerRow; - iter = start; - while (elementsLeft) { - /* First retrieve low bits from current byte */ - if (lsbFirst) { - currentByte = MsbToLsbTable[iter[0]]; - } else { - currentByte = iter[0]; - } - if (bitOffset) { - /* Need to read next byte to finish current byte */ - if (elementsLeft > (8 - bitOffset)) { - if (lsbFirst) { - nextByte = MsbToLsbTable[iter[1]]; - } else { - nextByte = iter[1]; - } - currentByte = - ((currentByte & highBitMask) << bitOffset) | - ((nextByte & lowBitMask) >> (8 - bitOffset)); - } else { - currentByte = - ((currentByte & highBitMask) << bitOffset); - } - } - if (elementsLeft >= 8) { - *destImage = currentByte; - elementsLeft -= 8; - } else { - *destImage = currentByte & HighBitsMask[elementsLeft]; - elementsLeft = 0; - } - destImage++; - iter++; - } - start += rowSize; - } -} - -/* -** Extract array from user's data applying all pixel store modes. -** The internal packed array format used has LSB_FIRST = FALSE and -** ALIGNMENT = 1. -*/ -void __glFillImage(__GLXcontext *gc, GLint dim, GLint width, GLint height, - GLint depth, GLenum format, GLenum type, - const GLvoid *userdata, GLubyte *newimage, GLubyte *modes) -{ - const __GLXattribute * state = gc->client_state_private; - GLint rowLength = state->storeUnpack.rowLength; - GLint imageHeight = state->storeUnpack.imageHeight; - GLint alignment = state->storeUnpack.alignment; - GLint skipPixels = state->storeUnpack.skipPixels; - GLint skipRows = state->storeUnpack.skipRows; - GLint skipImages = state->storeUnpack.skipImages; - GLint swapBytes = state->storeUnpack.swapEndian; - GLint components, elementSize, rowSize, padding, groupsPerRow, groupSize; - GLint elementsPerRow, imageSize, rowsPerImage, h, i, j, k; - const GLubyte *start, *iter, *itera, *iterb, *iterc; - GLubyte *iter2; - - if (type == GL_BITMAP) { - FillBitmap(gc, width, height, format, userdata, newimage); - } else { - components = __glElementsPerGroup(format,type); - if (rowLength > 0) { - groupsPerRow = rowLength; - } else { - groupsPerRow = width; - } - if (imageHeight > 0) { - rowsPerImage = imageHeight; - } else { - rowsPerImage = height; - } - - elementSize = __glBytesPerElement(type); - groupSize = elementSize * components; - if (elementSize == 1) swapBytes = 0; - - rowSize = groupsPerRow * groupSize; - padding = (rowSize % alignment); - if (padding) { - rowSize += alignment - padding; - } - imageSize = rowSize * rowsPerImage; - start = ((const GLubyte*) userdata) + skipImages * imageSize + - skipRows * rowSize + skipPixels * groupSize; - iter2 = newimage; - elementsPerRow = width * components; - - if (swapBytes) { - itera = start; - for (h = 0; h < depth; h++) { - iterb = itera; - for (i = 0; i < height; i++) { - iterc = iterb; - for (j = 0; j < elementsPerRow; j++) { - for (k = 1; k <= elementSize; k++) { - iter2[k-1] = iterc[elementSize - k]; - } - iter2 += elementSize; - iterc += elementSize; - } - iterb += rowSize; - } - itera += imageSize; - } - } else { - itera = start; - for (h = 0; h < depth; h++) { - if (rowSize == elementsPerRow * elementSize) { - /* Ha! This is mondo easy! */ - __GLX_MEM_COPY(iter2, itera, - elementsPerRow * elementSize * height); - iter2 += elementsPerRow * elementSize * height; - } else { - iter = itera; - for (i = 0; i < height; i++) { - __GLX_MEM_COPY(iter2, iter, elementsPerRow*elementSize); - iter2 += elementsPerRow * elementSize; - iter += rowSize; - } - } - itera += imageSize; - } - } - } - - /* Setup store modes that describe what we just did */ - if (modes) { - if ( dim < 3 ) { - (void) memcpy( modes, __glXDefaultPixelStore + 4, 20 ); - } - else { - (void) memcpy( modes, __glXDefaultPixelStore + 0, 36 ); - } - } -} - -/* -** Empty a bitmap in LSB_FIRST=GL_FALSE and ALIGNMENT=4 format packing it -** into the clients memory using the pixel store PACK modes. -*/ -static void EmptyBitmap(__GLXcontext *gc, GLint width, GLint height, - GLenum format, const GLubyte *sourceImage, - GLvoid *userdata) -{ - const __GLXattribute * state = gc->client_state_private; - GLint rowLength = state->storePack.rowLength; - GLint alignment = state->storePack.alignment; - GLint skipPixels = state->storePack.skipPixels; - GLint skipRows = state->storePack.skipRows; - GLint lsbFirst = state->storePack.lsbFirst; - GLint components, groupsPerRow, rowSize, padding, elementsPerRow; - GLint sourceRowSize, sourcePadding, sourceSkip; - GLubyte *start, *iter; - GLint elementsLeft, bitOffset, currentByte, highBitMask, lowBitMask; - GLint writeMask, i; - GLubyte writeByte; - - components = __glElementsPerGroup(format,GL_BITMAP); - if (rowLength > 0) { - groupsPerRow = rowLength; - } else { - groupsPerRow = width; - } - - rowSize = (groupsPerRow * components + 7) >> 3; - padding = (rowSize % alignment); - if (padding) { - rowSize += alignment - padding; - } - sourceRowSize = (width * components + 7) >> 3; - sourcePadding = (sourceRowSize % 4); - if (sourcePadding) { - sourceSkip = 4 - sourcePadding; - } else { - sourceSkip = 0; - } - start = ((GLubyte*) userdata) + skipRows * rowSize + - ((skipPixels * components) >> 3); - bitOffset = (skipPixels * components) & 7; - highBitMask = LowBitsMask[8-bitOffset]; - lowBitMask = HighBitsMask[bitOffset]; - elementsPerRow = width * components; - for (i = 0; i < height; i++) { - elementsLeft = elementsPerRow; - iter = start; - writeMask = highBitMask; - writeByte = 0; - while (elementsLeft) { - /* Set up writeMask (to write to current byte) */ - if (elementsLeft + bitOffset < 8) { - /* Need to trim writeMask */ - writeMask &= HighBitsMask[bitOffset+elementsLeft]; - } - - if (lsbFirst) { - currentByte = MsbToLsbTable[iter[0]]; - } else { - currentByte = iter[0]; - } - - if (bitOffset) { - writeByte |= (sourceImage[0] >> bitOffset); - currentByte = (currentByte & ~writeMask) | - (writeByte & writeMask); - writeByte = (sourceImage[0] << (8 - bitOffset)); - } else { - currentByte = (currentByte & ~writeMask) | - (sourceImage[0] & writeMask); - } - - if (lsbFirst) { - iter[0] = MsbToLsbTable[currentByte]; - } else { - iter[0] = currentByte; - } - - if (elementsLeft >= 8) { - elementsLeft -= 8; - } else { - elementsLeft = 0; - } - sourceImage++; - iter++; - writeMask = 0xff; - } - if (writeByte) { - /* Some data left over that still needs writing */ - writeMask &= lowBitMask; - if (lsbFirst) { - currentByte = MsbToLsbTable[iter[0]]; - } else { - currentByte = iter[0]; - } - currentByte = (currentByte & ~writeMask) | (writeByte & writeMask); - if (lsbFirst) { - iter[0] = MsbToLsbTable[currentByte]; - } else { - iter[0] = currentByte; - } - } - start += rowSize; - sourceImage += sourceSkip; - } -} - -/* -** Insert array into user's data applying all pixel store modes. -** The packed array format from the server is LSB_FIRST = FALSE, -** SWAP_BYTES = the current pixel storage pack mode, and ALIGNMENT = 4. -** Named __glEmptyImage() because it is the opposite of __glFillImage(). -*/ -/* ARGSUSED */ -void __glEmptyImage(__GLXcontext *gc, GLint dim, GLint width, GLint height, - GLint depth, GLenum format, GLenum type, - const GLubyte *sourceImage, GLvoid *userdata) -{ - const __GLXattribute * state = gc->client_state_private; - GLint rowLength = state->storePack.rowLength; - GLint imageHeight = state->storePack.imageHeight; - GLint alignment = state->storePack.alignment; - GLint skipPixels = state->storePack.skipPixels; - GLint skipRows = state->storePack.skipRows; - GLint skipImages = state->storePack.skipImages; - GLint components, elementSize, rowSize, padding, groupsPerRow, groupSize; - GLint elementsPerRow, sourceRowSize, sourcePadding, h, i; - GLint imageSize, rowsPerImage; - GLubyte *start, *iter, *itera; - - if (type == GL_BITMAP) { - EmptyBitmap(gc, width, height, format, sourceImage, userdata); - } else { - components = __glElementsPerGroup(format,type); - if (rowLength > 0) { - groupsPerRow = rowLength; - } else { - groupsPerRow = width; - } - if (imageHeight > 0) { - rowsPerImage = imageHeight; - } else { - rowsPerImage = height; - } - elementSize = __glBytesPerElement(type); - groupSize = elementSize * components; - rowSize = groupsPerRow * groupSize; - padding = (rowSize % alignment); - if (padding) { - rowSize += alignment - padding; - } - sourceRowSize = width * groupSize; - sourcePadding = (sourceRowSize % 4); - if (sourcePadding) { - sourceRowSize += 4 - sourcePadding; - } - imageSize = sourceRowSize * rowsPerImage; - start = ((GLubyte*) userdata) + skipImages * imageSize + - skipRows * rowSize + skipPixels * groupSize; - elementsPerRow = width * components; - - itera = start; - for (h = 0; h < depth; h++) { - if ((rowSize == sourceRowSize) && (sourcePadding == 0)) { - /* Ha! This is mondo easy! */ - __GLX_MEM_COPY(itera, sourceImage, - elementsPerRow * elementSize * height); - sourceImage += elementsPerRow * elementSize * height; - } else { - iter = itera; - for (i = 0; i < height; i++) { - __GLX_MEM_COPY(iter, sourceImage, - elementsPerRow * elementSize); - sourceImage += sourceRowSize; - iter += rowSize; - } - } - itera += imageSize; - } - } -} diff --git a/nx-X11/extras/Mesa/src/glx/x11/pixelstore.c b/nx-X11/extras/Mesa/src/glx/x11/pixelstore.c deleted file mode 100644 index 8996ee879..000000000 --- a/nx-X11/extras/Mesa/src/glx/x11/pixelstore.c +++ /dev/null @@ -1,341 +0,0 @@ -/* $XFree86: xc/lib/GL/glx/pixelstore.c,v 1.4 2004/01/28 18:11:43 alanh Exp $ */ -/* -** License Applicability. Except to the extent portions of this file are -** made subject to an alternative license as permitted in the SGI Free -** Software License B, Version 1.1 (the "License"), the contents of this -** file are subject only to the provisions of the License. You may not use -** this file except in compliance with the License. You may obtain a copy -** of the License at Silicon Graphics, Inc., attn: Legal Services, 1600 -** Amphitheatre Parkway, Mountain View, CA 94043-1351, or at: -** -** http://oss.sgi.com/projects/FreeB -** -** Note that, as provided in the License, the Software is distributed on an -** "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS -** DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND -** CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A -** PARTICULAR PURPOSE, AND NON-INFRINGEMENT. -** -** Original Code. The Original Code is: OpenGL Sample Implementation, -** Version 1.2.1, released January 26, 2000, developed by Silicon Graphics, -** Inc. The Original Code is Copyright (c) 1991-2000 Silicon Graphics, Inc. -** Copyright in any portions created by third parties is as indicated -** elsewhere herein. All Rights Reserved. -** -** Additional Notice Provisions: The application programming interfaces -** established by SGI in conjunction with the Original Code are The -** OpenGL(R) Graphics System: A Specification (Version 1.2.1), released -** April 1, 1999; The OpenGL(R) Graphics System Utility Library (Version -** 1.3), released November 4, 1998; and OpenGL(R) Graphics with the X -** Window System(R) (Version 1.3), released October 19, 1998. This software -** was created using the OpenGL(R) version 1.2.1 Sample Implementation -** published by SGI, but has not been independently verified as being -** compliant with the OpenGL(R) version 1.2.1 Specification. -** -*/ - -#include "glxclient.h" -#include "indirect.h" - -#if !defined __GNUC__ || __GNUC__ < 3 -# define __builtin_expect(x, y) x -#endif - -/** - * Send glPixelStore command to the server - * - * \param gc Current GLX context - * \param sop Either \c X_GLsop_PixelStoref or \c X_GLsop_PixelStorei - * \param pname Selector of which pixel parameter is to be set. - * \param param Value that \c pname is set to. - * - * \sa __indirect_glPixelStorei, __indirect_glPixelStoref - */ -static void -send_PixelStore( __GLXcontext * gc, unsigned sop, GLenum pname, - const void * param ) -{ - Display * const dpy = gc->currentDpy; - const GLuint cmdlen = 8; - if (__builtin_expect(dpy != NULL, 1)) { - GLubyte const * pc = __glXSetupSingleRequest(gc, sop, cmdlen); - (void) memcpy((void *)(pc + 0), (void *)(&pname), 4); - (void) memcpy((void *)(pc + 4), param, 4); - UnlockDisplay(dpy); SyncHandle(); - } - return; -} - -/* -** Specify parameters that control the storage format of pixel arrays. -*/ -void __indirect_glPixelStoref(GLenum pname, GLfloat param) -{ - __GLXcontext *gc = __glXGetCurrentContext(); - __GLXattribute * state = gc->client_state_private; - Display *dpy = gc->currentDpy; - GLuint a; - - if (!dpy) return; - - switch (pname) { - case GL_PACK_ROW_LENGTH: - a = (GLuint) (param + 0.5); - if (((GLint) a) < 0) { - __glXSetError(gc, GL_INVALID_VALUE); - return; - } - state->storePack.rowLength = a; - break; - case GL_PACK_IMAGE_HEIGHT: - a = (GLuint) (param + 0.5); - if (((GLint) a) < 0) { - __glXSetError(gc, GL_INVALID_VALUE); - return; - } - state->storePack.imageHeight = a; - break; - case GL_PACK_SKIP_ROWS: - a = (GLuint) (param + 0.5); - if (((GLint) a) < 0) { - __glXSetError(gc, GL_INVALID_VALUE); - return; - } - state->storePack.skipRows = a; - break; - case GL_PACK_SKIP_PIXELS: - a = (GLuint) (param + 0.5); - if (((GLint) a) < 0) { - __glXSetError(gc, GL_INVALID_VALUE); - return; - } - state->storePack.skipPixels = a; - break; - case GL_PACK_SKIP_IMAGES: - a = (GLuint) (param + 0.5); - if (((GLint) a) < 0) { - __glXSetError(gc, GL_INVALID_VALUE); - return; - } - state->storePack.skipImages = a; - break; - case GL_PACK_ALIGNMENT: - a = (GLint) (param + 0.5); - switch (a) { - case 1: case 2: case 4: case 8: - state->storePack.alignment = a; - break; - default: - __glXSetError(gc, GL_INVALID_VALUE); - return; - } - break; - case GL_PACK_SWAP_BYTES: - state->storePack.swapEndian = (param != 0); - break; - case GL_PACK_LSB_FIRST: - state->storePack.lsbFirst = (param != 0); - break; - - case GL_UNPACK_ROW_LENGTH: - a = (GLuint) (param + 0.5); - if (((GLint) a) < 0) { - __glXSetError(gc, GL_INVALID_VALUE); - return; - } - state->storeUnpack.rowLength = a; - break; - case GL_UNPACK_IMAGE_HEIGHT: - a = (GLuint) (param + 0.5); - if (((GLint) a) < 0) { - __glXSetError(gc, GL_INVALID_VALUE); - return; - } - state->storeUnpack.imageHeight = a; - break; - case GL_UNPACK_SKIP_ROWS: - a = (GLuint) (param + 0.5); - if (((GLint) a) < 0) { - __glXSetError(gc, GL_INVALID_VALUE); - return; - } - state->storeUnpack.skipRows = a; - break; - case GL_UNPACK_SKIP_PIXELS: - a = (GLuint) (param + 0.5); - if (((GLint) a) < 0) { - __glXSetError(gc, GL_INVALID_VALUE); - return; - } - state->storeUnpack.skipPixels = a; - break; - case GL_UNPACK_SKIP_IMAGES: - a = (GLuint) (param + 0.5); - if (((GLint) a) < 0) { - __glXSetError(gc, GL_INVALID_VALUE); - return; - } - state->storeUnpack.skipImages = a; - break; - case GL_UNPACK_ALIGNMENT: - a = (GLint) (param + 0.5); - switch (a) { - case 1: case 2: case 4: case 8: - state->storeUnpack.alignment = a; - break; - default: - __glXSetError(gc, GL_INVALID_VALUE); - return; - } - break; - case GL_UNPACK_SWAP_BYTES: - state->storeUnpack.swapEndian = (param != 0); - break; - case GL_UNPACK_LSB_FIRST: - state->storeUnpack.lsbFirst = (param != 0); - break; - - /* Group all of the pixel store modes that need to be sent to the - * server here. Care must be used to only send modes to the server that - * won't affect the size of the data sent to or received from the - * server. GL_PACK_INVERT_MESA is safe in this respect, but other, - * future modes may not be. - */ - case GL_PACK_INVERT_MESA: - send_PixelStore( gc, X_GLsop_PixelStoref, pname, & param ); - break; - - default: - __glXSetError(gc, GL_INVALID_ENUM); - break; - } -} - -void __indirect_glPixelStorei(GLenum pname, GLint param) -{ - __GLXcontext *gc = __glXGetCurrentContext(); - __GLXattribute * state = gc->client_state_private; - Display *dpy = gc->currentDpy; - - if (!dpy) return; - - switch (pname) { - case GL_PACK_ROW_LENGTH: - if (param < 0) { - __glXSetError(gc, GL_INVALID_VALUE); - return; - } - state->storePack.rowLength = param; - break; - case GL_PACK_IMAGE_HEIGHT: - if (param < 0) { - __glXSetError(gc, GL_INVALID_VALUE); - return; - } - state->storePack.imageHeight = param; - break; - case GL_PACK_SKIP_ROWS: - if (param < 0) { - __glXSetError(gc, GL_INVALID_VALUE); - return; - } - state->storePack.skipRows = param; - break; - case GL_PACK_SKIP_PIXELS: - if (param < 0) { - __glXSetError(gc, GL_INVALID_VALUE); - return; - } - state->storePack.skipPixels = param; - break; - case GL_PACK_SKIP_IMAGES: - if (param < 0) { - __glXSetError(gc, GL_INVALID_VALUE); - return; - } - state->storePack.skipImages = param; - break; - case GL_PACK_ALIGNMENT: - switch (param) { - case 1: case 2: case 4: case 8: - state->storePack.alignment = param; - break; - default: - __glXSetError(gc, GL_INVALID_VALUE); - return; - } - break; - case GL_PACK_SWAP_BYTES: - state->storePack.swapEndian = (param != 0); - break; - case GL_PACK_LSB_FIRST: - state->storePack.lsbFirst = (param != 0); - break; - - case GL_UNPACK_ROW_LENGTH: - if (param < 0) { - __glXSetError(gc, GL_INVALID_VALUE); - return; - } - state->storeUnpack.rowLength = param; - break; - case GL_UNPACK_IMAGE_HEIGHT: - if (param < 0) { - __glXSetError(gc, GL_INVALID_VALUE); - return; - } - state->storeUnpack.imageHeight = param; - break; - case GL_UNPACK_SKIP_ROWS: - if (param < 0) { - __glXSetError(gc, GL_INVALID_VALUE); - return; - } - state->storeUnpack.skipRows = param; - break; - case GL_UNPACK_SKIP_PIXELS: - if (param < 0) { - __glXSetError(gc, GL_INVALID_VALUE); - return; - } - state->storeUnpack.skipPixels = param; - break; - case GL_UNPACK_SKIP_IMAGES: - if (param < 0) { - __glXSetError(gc, GL_INVALID_VALUE); - return; - } - state->storeUnpack.skipImages = param; - break; - case GL_UNPACK_ALIGNMENT: - switch (param) { - case 1: case 2: case 4: case 8: - state->storeUnpack.alignment = param; - break; - default: - __glXSetError(gc, GL_INVALID_VALUE); - return; - } - break; - case GL_UNPACK_SWAP_BYTES: - state->storeUnpack.swapEndian = (param != 0); - break; - case GL_UNPACK_LSB_FIRST: - state->storeUnpack.lsbFirst = (param != 0); - break; - - /* Group all of the pixel store modes that need to be sent to the - * server here. Care must be used to only send modes to the server that - * won't affect the size of the data sent to or received from the - * server. GL_PACK_INVERT_MESA is safe in this respect, but other, - * future modes may not be. - */ - case GL_PACK_INVERT_MESA: - send_PixelStore( gc, X_GLsop_PixelStorei, pname, & param ); - break; - - default: - __glXSetError(gc, GL_INVALID_ENUM); - break; - } -} diff --git a/nx-X11/extras/Mesa/src/glx/x11/render2.c b/nx-X11/extras/Mesa/src/glx/x11/render2.c deleted file mode 100644 index 21ba27099..000000000 --- a/nx-X11/extras/Mesa/src/glx/x11/render2.c +++ /dev/null @@ -1,363 +0,0 @@ -/* $XFree86: xc/lib/GL/glx/render2.c,v 1.6 2004/01/31 09:29:33 alanh Exp $ */ -/* -** License Applicability. Except to the extent portions of this file are -** made subject to an alternative license as permitted in the SGI Free -** Software License B, Version 1.1 (the "License"), the contents of this -** file are subject only to the provisions of the License. You may not use -** this file except in compliance with the License. You may obtain a copy -** of the License at Silicon Graphics, Inc., attn: Legal Services, 1600 -** Amphitheatre Parkway, Mountain View, CA 94043-1351, or at: -** -** http://oss.sgi.com/projects/FreeB -** -** Note that, as provided in the License, the Software is distributed on an -** "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS -** DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND -** CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A -** PARTICULAR PURPOSE, AND NON-INFRINGEMENT. -** -** Original Code. The Original Code is: OpenGL Sample Implementation, -** Version 1.2.1, released January 26, 2000, developed by Silicon Graphics, -** Inc. The Original Code is Copyright (c) 1991-2000 Silicon Graphics, Inc. -** Copyright in any portions created by third parties is as indicated -** elsewhere herein. All Rights Reserved. -** -** Additional Notice Provisions: The application programming interfaces -** established by SGI in conjunction with the Original Code are The -** OpenGL(R) Graphics System: A Specification (Version 1.2.1), released -** April 1, 1999; The OpenGL(R) Graphics System Utility Library (Version -** 1.3), released November 4, 1998; and OpenGL(R) Graphics with the X -** Window System(R) (Version 1.3), released October 19, 1998. This software -** was created using the OpenGL(R) version 1.2.1 Sample Implementation -** published by SGI, but has not been independently verified as being -** compliant with the OpenGL(R) version 1.2.1 Specification. -** -*/ - -#include "packrender.h" -#include "indirect.h" -#include "indirect_size.h" - -/* -** This file contains routines that might need to be transported as -** GLXRender or GLXRenderLarge commands, and these commands don't -** use the pixel header. See renderpix.c for those routines. -*/ - -void __indirect_glMap1d(GLenum target, GLdouble u1, GLdouble u2, GLint stride, - GLint order, const GLdouble *pnts) -{ - __GLX_DECLARE_VARIABLES(); - GLint k; - - __GLX_LOAD_VARIABLES(); - k = __glMap1d_size(target); - if (k == 0) { - __glXSetError(gc, GL_INVALID_ENUM); - return; - } else if (stride < k || order <= 0) { - __glXSetError(gc, GL_INVALID_VALUE); - return; - } - compsize = k * order * __GLX_SIZE_FLOAT64; - cmdlen = 28+compsize; - if (!gc->currentDpy) return; - - if (cmdlen <= gc->maxSmallRenderCommandSize) { - /* Use GLXRender protocol to send small command */ - __GLX_BEGIN_VARIABLE(X_GLrop_Map1d,cmdlen); - __GLX_PUT_DOUBLE(4,u1); - __GLX_PUT_DOUBLE(12,u2); - __GLX_PUT_LONG(20,target); - __GLX_PUT_LONG(24,order); - /* - ** NOTE: the doubles that follow are not aligned because of 3 - ** longs preceeding - */ - __glFillMap1d(k, order, stride, pnts, (pc+28)); - __GLX_END(cmdlen); - } else { - /* Use GLXRenderLarge protocol to send command */ - __GLX_BEGIN_VARIABLE_LARGE(X_GLrop_Map1d,cmdlen+4); - __GLX_PUT_DOUBLE(8,u1); - __GLX_PUT_DOUBLE(16,u2); - __GLX_PUT_LONG(24,target); - __GLX_PUT_LONG(28,order); - - /* - ** NOTE: the doubles that follow are not aligned because of 3 - ** longs preceeding - */ - if (stride != k) { - GLubyte *buf; - - buf = (GLubyte *) Xmalloc(compsize); - if (!buf) { - __glXSetError(gc, GL_OUT_OF_MEMORY); - return; - } - __glFillMap1d(k, order, stride, pnts, buf); - __glXSendLargeCommand(gc, pc, 32, buf, compsize); - Xfree((char*) buf); - } else { - /* Data is already packed. Just send it out */ - __glXSendLargeCommand(gc, pc, 32, pnts, compsize); - } - } -} - -void __indirect_glMap1f(GLenum target, GLfloat u1, GLfloat u2, GLint stride, - GLint order, const GLfloat *pnts) -{ - __GLX_DECLARE_VARIABLES(); - GLint k; - - __GLX_LOAD_VARIABLES(); - k = __glMap1f_size(target); - if (k == 0) { - __glXSetError(gc, GL_INVALID_ENUM); - return; - } else if (stride < k || order <= 0) { - __glXSetError(gc, GL_INVALID_VALUE); - return; - } - compsize = k * order * __GLX_SIZE_FLOAT32; - cmdlen = 20+compsize; - if (!gc->currentDpy) return; - - /* - ** The order that arguments are packed is different from the order - ** for glMap1d. - */ - if (cmdlen <= gc->maxSmallRenderCommandSize) { - /* Use GLXRender protocol to send small command */ - __GLX_BEGIN_VARIABLE(X_GLrop_Map1f,cmdlen); - __GLX_PUT_LONG(4,target); - __GLX_PUT_FLOAT(8,u1); - __GLX_PUT_FLOAT(12,u2); - __GLX_PUT_LONG(16,order); - __glFillMap1f(k, order, stride, pnts, (GLubyte*) (pc+20)); - __GLX_END(cmdlen); - } else { - /* Use GLXRenderLarge protocol to send command */ - __GLX_BEGIN_VARIABLE_LARGE(X_GLrop_Map1f,cmdlen+4); - __GLX_PUT_LONG(8,target); - __GLX_PUT_FLOAT(12,u1); - __GLX_PUT_FLOAT(16,u2); - __GLX_PUT_LONG(20,order); - - if (stride != k) { - GLubyte *buf; - - buf = (GLubyte *) Xmalloc(compsize); - if (!buf) { - __glXSetError(gc, GL_OUT_OF_MEMORY); - return; - } - __glFillMap1f(k, order, stride, pnts, buf); - __glXSendLargeCommand(gc, pc, 24, buf, compsize); - Xfree((char*) buf); - } else { - /* Data is already packed. Just send it out */ - __glXSendLargeCommand(gc, pc, 24, pnts, compsize); - } - } -} - -void __indirect_glMap2d(GLenum target, GLdouble u1, GLdouble u2, GLint ustr, GLint uord, - GLdouble v1, GLdouble v2, GLint vstr, GLint vord, - const GLdouble *pnts) -{ - __GLX_DECLARE_VARIABLES(); - GLint k; - - __GLX_LOAD_VARIABLES(); - k = __glMap2d_size(target); - if (k == 0) { - __glXSetError(gc, GL_INVALID_ENUM); - return; - } else if (vstr < k || ustr < k || vord <= 0 || uord <= 0) { - __glXSetError(gc, GL_INVALID_VALUE); - return; - } - compsize = k * uord * vord * __GLX_SIZE_FLOAT64; - cmdlen = 48+compsize; - if (!gc->currentDpy) return; - - if (cmdlen <= gc->maxSmallRenderCommandSize) { - /* Use GLXRender protocol to send small command */ - __GLX_BEGIN_VARIABLE(X_GLrop_Map2d,cmdlen); - __GLX_PUT_DOUBLE(4,u1); - __GLX_PUT_DOUBLE(12,u2); - __GLX_PUT_DOUBLE(20,v1); - __GLX_PUT_DOUBLE(28,v2); - __GLX_PUT_LONG(36,target); - __GLX_PUT_LONG(40,uord); - __GLX_PUT_LONG(44,vord); - /* - ** Pack into a u-major ordering. - ** NOTE: the doubles that follow are not aligned because of 5 - ** longs preceeding - */ - __glFillMap2d(k, uord, vord, ustr, vstr, pnts, (GLdouble*) (pc+48)); - __GLX_END(cmdlen); - } else { - /* Use GLXRenderLarge protocol to send command */ - __GLX_BEGIN_VARIABLE_LARGE(X_GLrop_Map2d,cmdlen+4); - __GLX_PUT_DOUBLE(8,u1); - __GLX_PUT_DOUBLE(16,u2); - __GLX_PUT_DOUBLE(24,v1); - __GLX_PUT_DOUBLE(32,v2); - __GLX_PUT_LONG(40,target); - __GLX_PUT_LONG(44,uord); - __GLX_PUT_LONG(48,vord); - - /* - ** NOTE: the doubles that follow are not aligned because of 5 - ** longs preceeding - */ - if ((vstr != k) || (ustr != k*vord)) { - GLdouble *buf; - - buf = (GLdouble *) Xmalloc(compsize); - if (!buf) { - __glXSetError(gc, GL_OUT_OF_MEMORY); - return; - } - /* - ** Pack into a u-major ordering. - */ - __glFillMap2d(k, uord, vord, ustr, vstr, pnts, buf); - __glXSendLargeCommand(gc, pc, 52, buf, compsize); - Xfree((char*) buf); - } else { - /* Data is already packed. Just send it out */ - __glXSendLargeCommand(gc, pc, 52, pnts, compsize); - } - } -} - -void __indirect_glMap2f(GLenum target, GLfloat u1, GLfloat u2, GLint ustr, GLint uord, - GLfloat v1, GLfloat v2, GLint vstr, GLint vord, - const GLfloat *pnts) -{ - __GLX_DECLARE_VARIABLES(); - GLint k; - - __GLX_LOAD_VARIABLES(); - k = __glMap2f_size(target); - if (k == 0) { - __glXSetError(gc, GL_INVALID_ENUM); - return; - } else if (vstr < k || ustr < k || vord <= 0 || uord <= 0) { - __glXSetError(gc, GL_INVALID_VALUE); - return; - } - compsize = k * uord * vord * __GLX_SIZE_FLOAT32; - cmdlen = 32+compsize; - if (!gc->currentDpy) return; - - /* - ** The order that arguments are packed is different from the order - ** for glMap2d. - */ - if (cmdlen <= gc->maxSmallRenderCommandSize) { - /* Use GLXRender protocol to send small command */ - __GLX_BEGIN_VARIABLE(X_GLrop_Map2f,cmdlen); - __GLX_PUT_LONG(4,target); - __GLX_PUT_FLOAT(8,u1); - __GLX_PUT_FLOAT(12,u2); - __GLX_PUT_LONG(16,uord); - __GLX_PUT_FLOAT(20,v1); - __GLX_PUT_FLOAT(24,v2); - __GLX_PUT_LONG(28,vord); - /* - ** Pack into a u-major ordering. - */ - __glFillMap2f(k, uord, vord, ustr, vstr, pnts, (GLfloat*) (pc+32)); - __GLX_END(cmdlen); - } else { - /* Use GLXRenderLarge protocol to send command */ - __GLX_BEGIN_VARIABLE_LARGE(X_GLrop_Map2f,cmdlen+4); - __GLX_PUT_LONG(8,target); - __GLX_PUT_FLOAT(12,u1); - __GLX_PUT_FLOAT(16,u2); - __GLX_PUT_LONG(20,uord); - __GLX_PUT_FLOAT(24,v1); - __GLX_PUT_FLOAT(28,v2); - __GLX_PUT_LONG(32,vord); - - if ((vstr != k) || (ustr != k*vord)) { - GLfloat *buf; - - buf = (GLfloat *) Xmalloc(compsize); - if (!buf) { - __glXSetError(gc, GL_OUT_OF_MEMORY); - return; - } - /* - ** Pack into a u-major ordering. - */ - __glFillMap2f(k, uord, vord, ustr, vstr, pnts, buf); - __glXSendLargeCommand(gc, pc, 36, buf, compsize); - Xfree((char*) buf); - } else { - /* Data is already packed. Just send it out */ - __glXSendLargeCommand(gc, pc, 36, pnts, compsize); - } - } -} - -void __indirect_glEnable(GLenum cap) -{ - __GLX_DECLARE_VARIABLES(); - - __GLX_LOAD_VARIABLES(); - if (!gc->currentDpy) return; - - switch(cap) { - case GL_COLOR_ARRAY: - case GL_EDGE_FLAG_ARRAY: - case GL_INDEX_ARRAY: - case GL_NORMAL_ARRAY: - case GL_TEXTURE_COORD_ARRAY: - case GL_VERTEX_ARRAY: - case GL_SECONDARY_COLOR_ARRAY: - case GL_FOG_COORD_ARRAY: - __indirect_glEnableClientState(cap); - return; - default: - break; - } - - __GLX_BEGIN(X_GLrop_Enable,8); - __GLX_PUT_LONG(4,cap); - __GLX_END(8); -} - -void __indirect_glDisable(GLenum cap) -{ - __GLX_DECLARE_VARIABLES(); - - __GLX_LOAD_VARIABLES(); - if (!gc->currentDpy) return; - - switch(cap) { - case GL_COLOR_ARRAY: - case GL_EDGE_FLAG_ARRAY: - case GL_INDEX_ARRAY: - case GL_NORMAL_ARRAY: - case GL_TEXTURE_COORD_ARRAY: - case GL_VERTEX_ARRAY: - case GL_SECONDARY_COLOR_ARRAY: - case GL_FOG_COORD_ARRAY: - __indirect_glDisableClientState(cap); - return; - default: - break; - } - - __GLX_BEGIN(X_GLrop_Disable,8); - __GLX_PUT_LONG(4,cap); - __GLX_END(8); -} diff --git a/nx-X11/extras/Mesa/src/glx/x11/renderpix.c b/nx-X11/extras/Mesa/src/glx/x11/renderpix.c deleted file mode 100644 index b7d01dc67..000000000 --- a/nx-X11/extras/Mesa/src/glx/x11/renderpix.c +++ /dev/null @@ -1,215 +0,0 @@ -/* $XFree86: xc/lib/GL/glx/renderpix.c,v 1.5 2003/09/28 20:15:04 alanh Exp $ */ -/* -** License Applicability. Except to the extent portions of this file are -** made subject to an alternative license as permitted in the SGI Free -** Software License B, Version 1.1 (the "License"), the contents of this -** file are subject only to the provisions of the License. You may not use -** this file except in compliance with the License. You may obtain a copy -** of the License at Silicon Graphics, Inc., attn: Legal Services, 1600 -** Amphitheatre Parkway, Mountain View, CA 94043-1351, or at: -** -** http://oss.sgi.com/projects/FreeB -** -** Note that, as provided in the License, the Software is distributed on an -** "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS -** DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND -** CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A -** PARTICULAR PURPOSE, AND NON-INFRINGEMENT. -** -** Original Code. The Original Code is: OpenGL Sample Implementation, -** Version 1.2.1, released January 26, 2000, developed by Silicon Graphics, -** Inc. The Original Code is Copyright (c) 1991-2000 Silicon Graphics, Inc. -** Copyright in any portions created by third parties is as indicated -** elsewhere herein. All Rights Reserved. -** -** Additional Notice Provisions: The application programming interfaces -** established by SGI in conjunction with the Original Code are The -** OpenGL(R) Graphics System: A Specification (Version 1.2.1), released -** April 1, 1999; The OpenGL(R) Graphics System Utility Library (Version -** 1.3), released November 4, 1998; and OpenGL(R) Graphics with the X -** Window System(R) (Version 1.3), released October 19, 1998. This software -** was created using the OpenGL(R) version 1.2.1 Sample Implementation -** published by SGI, but has not been independently verified as being -** compliant with the OpenGL(R) version 1.2.1 Specification. -** -*/ - -/* - * (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 "packrender.h" -#include "indirect.h" - -/** - * Send a large image to the server. If necessary, a buffer is allocated - * to hold the unpacked data that is copied from the clients memory. - * - * \param gc Current GLX context - * \param compsize Size, in bytes, of the image portion - * \param dim Number of dimensions of the image - * \param width Width of the image - * \param height Height of the image, must be 1 for 1D images - * \param depth Depth of the image, must be 1 for 1D or 2D images - * \param format Format of the image - * \param type Data type of the image - * \param src Pointer to the image data - * \param pc Pointer to end of the command header - * \param modes Pointer to the pixel unpack data - * - * \todo - * Modify this function so that \c NULL images are sent using - * \c __glXSendLargeChunk instead of __glXSendLargeCommand. Doing this - * will eliminate the need to allocate a buffer for that case. - * - * \bugs - * The \c fastImageUnpack path, which is thankfully never used, is completely - * broken. - */ -void -__glXSendLargeImage(__GLXcontext *gc, GLint compsize, GLint dim, - GLint width, GLint height, GLint depth, - GLenum format, GLenum type, const GLvoid *src, - GLubyte *pc, GLubyte *modes) -{ - if ( !gc->fastImageUnpack || (src == NULL) ) { - /* Allocate a temporary holding buffer */ - GLubyte *buf = (GLubyte *) Xmalloc(compsize); - if (!buf) { - __glXSetError(gc, GL_OUT_OF_MEMORY); - return; - } - - /* Apply pixel store unpack modes to copy data into buf */ - if ( src != NULL ) { - (*gc->fillImage)(gc, dim, width, height, depth, format, type, - src, buf, modes); - } - else { - if ( dim < 3 ) { - (void) memcpy( modes, __glXDefaultPixelStore + 4, 20 ); - } - else { - (void) memcpy( modes, __glXDefaultPixelStore + 0, 36 ); - } - } - - /* Send large command */ - __glXSendLargeCommand(gc, gc->pc, pc - gc->pc, buf, compsize); - - /* Free buffer */ - Xfree((char*) buf); - } else { - /* Just send the data straight as is */ - __glXSendLargeCommand(gc, gc->pc, pc - gc->pc, pc, compsize); - } -} - -/************************************************************************/ - -/** - * Implement GLX protocol for \c glSeparableFilter2D. - * - * \bugs - * The \c fastImageUnpack path, which is thankfully never used, is completely - * broken. - */ -void __indirect_glSeparableFilter2D(GLenum target, GLenum internalformat, - GLsizei width, GLsizei height, GLenum format, - GLenum type, const GLvoid *row, - const GLvoid *column) -{ - __GLX_DECLARE_VARIABLES(); - GLuint compsize2, hdrlen, totalhdrlen, image1len, image2len; - - __GLX_LOAD_VARIABLES(); - compsize = __glImageSize(width, 1, 1, format, type, 0); - compsize2 = __glImageSize(height, 1, 1, format, type, 0); - totalhdrlen = __GLX_PAD(__GLX_CONV_FILT_CMD_HDR_SIZE); - hdrlen = __GLX_PAD(__GLX_CONV_FILT_HDR_SIZE); - image1len = __GLX_PAD(compsize); - image2len = __GLX_PAD(compsize2); - cmdlen = totalhdrlen + image1len + image2len; - if (!gc->currentDpy) return; - - if (cmdlen <= gc->maxSmallRenderCommandSize) { - /* Use GLXRender protocol to send small command */ - __GLX_BEGIN_VARIABLE_WITH_PIXEL(X_GLrop_SeparableFilter2D, cmdlen); - __GLX_PUT_LONG(0,target); - __GLX_PUT_LONG(4,internalformat); - __GLX_PUT_LONG(8,width); - __GLX_PUT_LONG(12,height); - __GLX_PUT_LONG(16,format); - __GLX_PUT_LONG(20,type); - pc += hdrlen; - if (compsize > 0) { - (*gc->fillImage)(gc, 1, width, 1, 1, format, type, - row, pc, pixelHeaderPC); - pc += image1len; - } - if (compsize2 > 0) { - (*gc->fillImage)(gc, 1, height, 1, 1, format, type, - column, pc, NULL); - pc += image2len; - } - if ((compsize == 0) && (compsize2 == 0)) { - /* Setup default store modes */ - (void) memcpy( pixelHeaderPC, __glXDefaultPixelStore + 4, 20 ); - } - __GLX_END(0); - } else { - const GLint bufsize = image1len + image2len; - - /* Use GLXRenderLarge protocol to send command */ - __GLX_BEGIN_VARIABLE_LARGE_WITH_PIXEL(X_GLrop_SeparableFilter2D,cmdlen+4); - __GLX_PUT_LONG(0,target); - __GLX_PUT_LONG(4,internalformat); - __GLX_PUT_LONG(8,width); - __GLX_PUT_LONG(12,height); - __GLX_PUT_LONG(16,format); - __GLX_PUT_LONG(20,type); - pc += hdrlen; - - if (!gc->fastImageUnpack) { - /* Allocate a temporary holding buffer */ - GLubyte *buf = (GLubyte *) Xmalloc(bufsize); - if (!buf) { - __glXSetError(gc, GL_OUT_OF_MEMORY); - return; - } - (*gc->fillImage)(gc, 1, width, 1, 1, format, type, row, buf, pixelHeaderPC); - - (*gc->fillImage)(gc, 1, height, 1, 1, format, type, column, - buf + image1len, pixelHeaderPC); - - /* Send large command */ - __glXSendLargeCommand(gc, gc->pc, (GLint)(pc - gc->pc), buf, bufsize); - /* Free buffer */ - Xfree((char*) buf); - } else { - /* Just send the data straight as is */ - __glXSendLargeCommand(gc, gc->pc, (GLint)(pc - gc->pc), pc, bufsize); - } - } -} diff --git a/nx-X11/extras/Mesa/src/glx/x11/single2.c b/nx-X11/extras/Mesa/src/glx/x11/single2.c deleted file mode 100644 index 1c3b8f08e..000000000 --- a/nx-X11/extras/Mesa/src/glx/x11/single2.c +++ /dev/null @@ -1,833 +0,0 @@ -/* $XFree86: xc/lib/GL/glx/single2.c,v 1.10 2004/02/11 19:48:16 dawes Exp $ */ -/* -** License Applicability. Except to the extent portions of this file are -** made subject to an alternative license as permitted in the SGI Free -** Software License B, Version 1.1 (the "License"), the contents of this -** file are subject only to the provisions of the License. You may not use -** this file except in compliance with the License. You may obtain a copy -** of the License at Silicon Graphics, Inc., attn: Legal Services, 1600 -** Amphitheatre Parkway, Mountain View, CA 94043-1351, or at: -** -** http://oss.sgi.com/projects/FreeB -** -** Note that, as provided in the License, the Software is distributed on an -** "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS -** DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND -** CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A -** PARTICULAR PURPOSE, AND NON-INFRINGEMENT. -** -** Original Code. The Original Code is: OpenGL Sample Implementation, -** Version 1.2.1, released January 26, 2000, developed by Silicon Graphics, -** Inc. The Original Code is Copyright (c) 1991-2000 Silicon Graphics, Inc. -** Copyright in any portions created by third parties is as indicated -** elsewhere herein. All Rights Reserved. -** -** Additional Notice Provisions: The application programming interfaces -** established by SGI in conjunction with the Original Code are The -** OpenGL(R) Graphics System: A Specification (Version 1.2.1), released -** April 1, 1999; The OpenGL(R) Graphics System Utility Library (Version -** 1.3), released November 4, 1998; and OpenGL(R) Graphics with the X -** Window System(R) (Version 1.3), released October 19, 1998. This software -** was created using the OpenGL(R) version 1.2.1 Sample Implementation -** published by SGI, but has not been independently verified as being -** compliant with the OpenGL(R) version 1.2.1 Specification. -** -*/ - -#include -#include -#include "glxclient.h" -#include "packsingle.h" -#include "glxextensions.h" -#include "indirect.h" -#include "indirect_vertex_array.h" - -/* Used for GL_ARB_transpose_matrix */ -static void TransposeMatrixf(GLfloat m[16]) -{ - int i, j; - for (i = 0; i < 4; i++) { - for (j = 0; j < i; j++) { - GLfloat tmp = m[i*4+j]; - m[i*4+j] = m[j*4+i]; - m[j*4+i] = tmp; - } - } -} - -/* Used for GL_ARB_transpose_matrix */ -static void TransposeMatrixb(GLboolean m[16]) -{ - int i, j; - for (i = 0; i < 4; i++) { - for (j = 0; j < i; j++) { - GLboolean tmp = m[i*4+j]; - m[i*4+j] = m[j*4+i]; - m[j*4+i] = tmp; - } - } -} - -/* Used for GL_ARB_transpose_matrix */ -static void TransposeMatrixd(GLdouble m[16]) -{ - int i, j; - for (i = 0; i < 4; i++) { - for (j = 0; j < i; j++) { - GLdouble tmp = m[i*4+j]; - m[i*4+j] = m[j*4+i]; - m[j*4+i] = tmp; - } - } -} - -/* Used for GL_ARB_transpose_matrix */ -static void TransposeMatrixi(GLint m[16]) -{ - int i, j; - for (i = 0; i < 4; i++) { - for (j = 0; j < i; j++) { - GLint tmp = m[i*4+j]; - m[i*4+j] = m[j*4+i]; - m[j*4+i] = tmp; - } - } -} - - -/** - * Remap a transpose-matrix enum to a non-transpose-matrix enum. Enums - * that are not transpose-matrix enums are unaffected. - */ -static GLenum -RemapTransposeEnum( GLenum e ) -{ - switch( e ) { - case GL_TRANSPOSE_MODELVIEW_MATRIX: - case GL_TRANSPOSE_PROJECTION_MATRIX: - case GL_TRANSPOSE_TEXTURE_MATRIX: - return e - (GL_TRANSPOSE_MODELVIEW_MATRIX - GL_MODELVIEW_MATRIX); - case GL_TRANSPOSE_COLOR_MATRIX: - return GL_COLOR_MATRIX; - default: - return e; - }; -} - - -GLenum __indirect_glGetError(void) -{ - __GLX_SINGLE_DECLARE_VARIABLES(); - GLuint retval = GL_NO_ERROR; - xGLXGetErrorReply reply; - - if (gc->error) { - /* Use internal error first */ - retval = gc->error; - gc->error = GL_NO_ERROR; - return retval; - } - - __GLX_SINGLE_LOAD_VARIABLES(); - __GLX_SINGLE_BEGIN(X_GLsop_GetError,0); - __GLX_SINGLE_READ_XREPLY(); - retval = reply.error; - __GLX_SINGLE_END(); - - return retval; -} - - -/** - * Get the selected attribute from the client state. - * - * \returns - * On success \c GL_TRUE is returned. Otherwise, \c GL_FALSE is returned. - */ -static GLboolean -get_client_data( __GLXattribute * state, GLenum cap, GLintptr * data ) -{ - GLboolean retval = GL_TRUE; - const GLint tex_unit = __glXGetActiveTextureUnit( state ); - - - switch( cap ) { - case GL_VERTEX_ARRAY: - case GL_NORMAL_ARRAY: - case GL_COLOR_ARRAY: - case GL_INDEX_ARRAY: - case GL_EDGE_FLAG_ARRAY: - case GL_SECONDARY_COLOR_ARRAY: - case GL_FOG_COORD_ARRAY: - retval = __glXGetArrayEnable( state, cap, 0, data ); - break; - - case GL_VERTEX_ARRAY_SIZE: - retval = __glXGetArraySize( state, GL_VERTEX_ARRAY, 0, data ); - break; - case GL_COLOR_ARRAY_SIZE: - retval = __glXGetArraySize( state, GL_COLOR_ARRAY, 0, data ); - break; - case GL_SECONDARY_COLOR_ARRAY_SIZE: - retval = __glXGetArraySize( state, GL_SECONDARY_COLOR_ARRAY, 0, data ); - break; - - case GL_VERTEX_ARRAY_TYPE: - retval = __glXGetArrayType( state, GL_VERTEX_ARRAY, 0, data ); - break; - case GL_NORMAL_ARRAY_TYPE: - retval = __glXGetArrayType( state, GL_NORMAL_ARRAY, 0, data ); - break; - case GL_INDEX_ARRAY_TYPE: - retval = __glXGetArrayType( state, GL_INDEX_ARRAY, 0, data ); - break; - case GL_COLOR_ARRAY_TYPE: - retval = __glXGetArrayType( state, GL_COLOR_ARRAY, 0, data ); - break; - case GL_SECONDARY_COLOR_ARRAY_TYPE: - retval = __glXGetArrayType( state, GL_SECONDARY_COLOR_ARRAY, 0, data ); - break; - case GL_FOG_COORD_ARRAY_TYPE: - retval = __glXGetArrayType( state, GL_FOG_COORD_ARRAY, 0, data ); - break; - - case GL_VERTEX_ARRAY_STRIDE: - retval = __glXGetArrayStride( state, GL_VERTEX_ARRAY, 0, data ); - break; - case GL_NORMAL_ARRAY_STRIDE: - retval = __glXGetArrayStride( state, GL_NORMAL_ARRAY, 0, data ); - break; - case GL_INDEX_ARRAY_STRIDE: - retval = __glXGetArrayStride( state, GL_INDEX_ARRAY, 0, data ); - break; - case GL_EDGE_FLAG_ARRAY_STRIDE: - retval = __glXGetArrayStride( state, GL_EDGE_FLAG_ARRAY, 0, data ); - break; - case GL_COLOR_ARRAY_STRIDE: - retval = __glXGetArrayStride( state, GL_COLOR_ARRAY, 0, data ); - break; - case GL_SECONDARY_COLOR_ARRAY_STRIDE: - retval = __glXGetArrayStride( state, GL_SECONDARY_COLOR_ARRAY, 0, data ); - break; - case GL_FOG_COORD_ARRAY_STRIDE: - retval = __glXGetArrayStride( state, GL_FOG_COORD_ARRAY, 0, data ); - break; - - case GL_TEXTURE_COORD_ARRAY: - retval = __glXGetArrayEnable( state, GL_TEXTURE_COORD_ARRAY, tex_unit, data ); - break; - case GL_TEXTURE_COORD_ARRAY_SIZE: - retval = __glXGetArraySize( state, GL_TEXTURE_COORD_ARRAY, tex_unit, data ); - break; - case GL_TEXTURE_COORD_ARRAY_TYPE: - retval = __glXGetArrayType( state, GL_TEXTURE_COORD_ARRAY, tex_unit, data ); - break; - case GL_TEXTURE_COORD_ARRAY_STRIDE: - retval = __glXGetArrayStride( state, GL_TEXTURE_COORD_ARRAY, tex_unit, data ); - break; - - case GL_MAX_ELEMENTS_VERTICES: - case GL_MAX_ELEMENTS_INDICES: - retval = GL_TRUE; - *data = ~0UL; - break; - - - case GL_PACK_ROW_LENGTH: - *data = (GLintptr)state->storePack.rowLength; - break; - case GL_PACK_IMAGE_HEIGHT: - *data = (GLintptr)state->storePack.imageHeight; - break; - case GL_PACK_SKIP_ROWS: - *data = (GLintptr)state->storePack.skipRows; - break; - case GL_PACK_SKIP_PIXELS: - *data = (GLintptr)state->storePack.skipPixels; - break; - case GL_PACK_SKIP_IMAGES: - *data = (GLintptr)state->storePack.skipImages; - break; - case GL_PACK_ALIGNMENT: - *data = (GLintptr)state->storePack.alignment; - break; - case GL_PACK_SWAP_BYTES: - *data = (GLintptr)state->storePack.swapEndian; - break; - case GL_PACK_LSB_FIRST: - *data = (GLintptr)state->storePack.lsbFirst; - break; - case GL_UNPACK_ROW_LENGTH: - *data = (GLintptr)state->storeUnpack.rowLength; - break; - case GL_UNPACK_IMAGE_HEIGHT: - *data = (GLintptr)state->storeUnpack.imageHeight; - break; - case GL_UNPACK_SKIP_ROWS: - *data = (GLintptr)state->storeUnpack.skipRows; - break; - case GL_UNPACK_SKIP_PIXELS: - *data = (GLintptr)state->storeUnpack.skipPixels; - break; - case GL_UNPACK_SKIP_IMAGES: - *data = (GLintptr)state->storeUnpack.skipImages; - break; - case GL_UNPACK_ALIGNMENT: - *data = (GLintptr)state->storeUnpack.alignment; - break; - case GL_UNPACK_SWAP_BYTES: - *data = (GLintptr)state->storeUnpack.swapEndian; - break; - case GL_UNPACK_LSB_FIRST: - *data = (GLintptr)state->storeUnpack.lsbFirst; - break; - case GL_MAX_CLIENT_ATTRIB_STACK_DEPTH: - *data = (GLintptr)__GL_CLIENT_ATTRIB_STACK_DEPTH; - break; - case GL_CLIENT_ACTIVE_TEXTURE: - *data = (GLintptr)(tex_unit + GL_TEXTURE0); - break; - - default: - retval = GL_FALSE; - break; - } - - - return retval; -} - - -void __indirect_glGetBooleanv(GLenum val, GLboolean *b) -{ - const GLenum origVal = val; - __GLX_SINGLE_DECLARE_VARIABLES(); - __GLXattribute * state = (__GLXattribute *)(gc->client_state_private); - xGLXSingleReply reply; - - val = RemapTransposeEnum( val ); - - __GLX_SINGLE_LOAD_VARIABLES(); - __GLX_SINGLE_BEGIN(X_GLsop_GetBooleanv,4); - __GLX_SINGLE_PUT_LONG(0,val); - __GLX_SINGLE_READ_XREPLY(); - __GLX_SINGLE_GET_SIZE(compsize); - - if (compsize == 0) { - /* - ** Error occured; don't modify user's buffer. - */ - } else { - GLintptr data; - - /* - ** We still needed to send the request to the server in order to - ** find out whether it was legal to make a query (it's illegal, - ** for example, to call a query between glBegin() and glEnd()). - */ - - if ( get_client_data( state, val, & data ) ) { - *b = (GLboolean) data; - } - else { - /* - ** Not a local value, so use what we got from the server. - */ - if (compsize == 1) { - __GLX_SINGLE_GET_CHAR(b); - } else { - __GLX_SINGLE_GET_CHAR_ARRAY(b,compsize); - if (val != origVal) { - /* matrix transpose */ - TransposeMatrixb(b); - } - } - } - } - __GLX_SINGLE_END(); -} - -void __indirect_glGetDoublev(GLenum val, GLdouble *d) -{ - const GLenum origVal = val; - __GLX_SINGLE_DECLARE_VARIABLES(); - __GLXattribute * state = (__GLXattribute *)(gc->client_state_private); - xGLXSingleReply reply; - - val = RemapTransposeEnum( val ); - - __GLX_SINGLE_LOAD_VARIABLES(); - __GLX_SINGLE_BEGIN(X_GLsop_GetDoublev,4); - __GLX_SINGLE_PUT_LONG(0,val); - __GLX_SINGLE_READ_XREPLY(); - __GLX_SINGLE_GET_SIZE(compsize); - - if (compsize == 0) { - /* - ** Error occured; don't modify user's buffer. - */ - } else { - GLintptr data; - - /* - ** We still needed to send the request to the server in order to - ** find out whether it was legal to make a query (it's illegal, - ** for example, to call a query between glBegin() and glEnd()). - */ - - if ( get_client_data( state, val, & data ) ) { - *d = (GLdouble) data; - } - else { - /* - ** Not a local value, so use what we got from the server. - */ - if (compsize == 1) { - __GLX_SINGLE_GET_DOUBLE(d); - } else { - __GLX_SINGLE_GET_DOUBLE_ARRAY(d,compsize); - if (val != origVal) { - /* matrix transpose */ - TransposeMatrixd(d); - } - } - } - } - __GLX_SINGLE_END(); -} - -void __indirect_glGetFloatv(GLenum val, GLfloat *f) -{ - const GLenum origVal = val; - __GLX_SINGLE_DECLARE_VARIABLES(); - __GLXattribute * state = (__GLXattribute *)(gc->client_state_private); - xGLXSingleReply reply; - - val = RemapTransposeEnum( val ); - - __GLX_SINGLE_LOAD_VARIABLES(); - __GLX_SINGLE_BEGIN(X_GLsop_GetFloatv,4); - __GLX_SINGLE_PUT_LONG(0,val); - __GLX_SINGLE_READ_XREPLY(); - __GLX_SINGLE_GET_SIZE(compsize); - - if (compsize == 0) { - /* - ** Error occured; don't modify user's buffer. - */ - } else { - GLintptr data; - - /* - ** We still needed to send the request to the server in order to - ** find out whether it was legal to make a query (it's illegal, - ** for example, to call a query between glBegin() and glEnd()). - */ - - if ( get_client_data( state, val, & data ) ) { - *f = (GLfloat) data; - } - else { - /* - ** Not a local value, so use what we got from the server. - */ - if (compsize == 1) { - __GLX_SINGLE_GET_FLOAT(f); - } else { - __GLX_SINGLE_GET_FLOAT_ARRAY(f,compsize); - if (val != origVal) { - /* matrix transpose */ - TransposeMatrixf(f); - } - } - } - } - __GLX_SINGLE_END(); -} - -void __indirect_glGetIntegerv(GLenum val, GLint *i) -{ - const GLenum origVal = val; - __GLX_SINGLE_DECLARE_VARIABLES(); - __GLXattribute * state = (__GLXattribute *)(gc->client_state_private); - xGLXSingleReply reply; - - val = RemapTransposeEnum( val ); - - __GLX_SINGLE_LOAD_VARIABLES(); - __GLX_SINGLE_BEGIN(X_GLsop_GetIntegerv,4); - __GLX_SINGLE_PUT_LONG(0,val); - __GLX_SINGLE_READ_XREPLY(); - __GLX_SINGLE_GET_SIZE(compsize); - - if (compsize == 0) { - /* - ** Error occured; don't modify user's buffer. - */ - } else { - GLintptr data; - - /* - ** We still needed to send the request to the server in order to - ** find out whether it was legal to make a query (it's illegal, - ** for example, to call a query between glBegin() and glEnd()). - */ - - if ( get_client_data( state, val, & data ) ) { - *i = (GLint) data; - } - else { - /* - ** Not a local value, so use what we got from the server. - */ - if (compsize == 1) { - __GLX_SINGLE_GET_LONG(i); - } else { - __GLX_SINGLE_GET_LONG_ARRAY(i,compsize); - if (val != origVal) { - /* matrix transpose */ - TransposeMatrixi(i); - } - } - } - } - __GLX_SINGLE_END(); -} - -/* -** Send all pending commands to server. -*/ -void __indirect_glFlush(void) -{ - __GLX_SINGLE_DECLARE_VARIABLES(); - - if (!dpy) return; - - __GLX_SINGLE_LOAD_VARIABLES(); - __GLX_SINGLE_BEGIN(X_GLsop_Flush,0); - __GLX_SINGLE_END(); - - /* And finally flush the X protocol data */ - XFlush(dpy); -} - -void __indirect_glFeedbackBuffer(GLsizei size, GLenum type, GLfloat *buffer) -{ - __GLX_SINGLE_DECLARE_VARIABLES(); - - if (!dpy) return; - - __GLX_SINGLE_LOAD_VARIABLES(); - __GLX_SINGLE_BEGIN(X_GLsop_FeedbackBuffer,8); - __GLX_SINGLE_PUT_LONG(0,size); - __GLX_SINGLE_PUT_LONG(4,type); - __GLX_SINGLE_END(); - - gc->feedbackBuf = buffer; -} - -void __indirect_glSelectBuffer(GLsizei numnames, GLuint *buffer) -{ - __GLX_SINGLE_DECLARE_VARIABLES(); - - if (!dpy) return; - - __GLX_SINGLE_LOAD_VARIABLES(); - __GLX_SINGLE_BEGIN(X_GLsop_SelectBuffer,4); - __GLX_SINGLE_PUT_LONG(0,numnames); - __GLX_SINGLE_END(); - - gc->selectBuf = buffer; -} - -GLint __indirect_glRenderMode(GLenum mode) -{ - __GLX_SINGLE_DECLARE_VARIABLES(); - GLint retval = 0; - xGLXRenderModeReply reply; - - if (!dpy) return -1; - - __GLX_SINGLE_LOAD_VARIABLES(); - __GLX_SINGLE_BEGIN(X_GLsop_RenderMode,4); - __GLX_SINGLE_PUT_LONG(0,mode); - __GLX_SINGLE_READ_XREPLY(); - __GLX_SINGLE_GET_RETVAL(retval,GLint); - - if (reply.newMode != mode) { - /* - ** Switch to new mode did not take effect, therefore an error - ** occured. When an error happens the server won't send us any - ** other data. - */ - } else { - /* Read the feedback or selection data */ - if (gc->renderMode == GL_FEEDBACK) { - __GLX_SINGLE_GET_SIZE(compsize); - __GLX_SINGLE_GET_FLOAT_ARRAY(gc->feedbackBuf, compsize); - } else - if (gc->renderMode == GL_SELECT) { - __GLX_SINGLE_GET_SIZE(compsize); - __GLX_SINGLE_GET_LONG_ARRAY(gc->selectBuf, compsize); - } - gc->renderMode = mode; - } - __GLX_SINGLE_END(); - - return retval; -} - -void __indirect_glFinish(void) -{ - __GLX_SINGLE_DECLARE_VARIABLES(); - xGLXSingleReply reply; - - __GLX_SINGLE_LOAD_VARIABLES(); - __GLX_SINGLE_BEGIN(X_GLsop_Finish,0); - __GLX_SINGLE_READ_XREPLY(); - __GLX_SINGLE_END(); -} - - -/** - * Extract the major and minor version numbers from a version string. - */ -static void -version_from_string( const char * ver, - int * major_version, int * minor_version ) -{ - const char * end; - long major; - long minor; - - major = strtol( ver, (char **) & end, 10 ); - minor = strtol( end + 1, NULL, 10 ); - *major_version = major; - *minor_version = minor; -} - - -const GLubyte *__indirect_glGetString(GLenum name) -{ - __GLXcontext *gc = __glXGetCurrentContext(); - Display *dpy = gc->currentDpy; - GLubyte *s = NULL; - - if (!dpy) return 0; - - /* - ** Return the cached copy if the string has already been fetched - */ - switch(name) { - case GL_VENDOR: - if (gc->vendor) return gc->vendor; - break; - case GL_RENDERER: - if (gc->renderer) return gc->renderer; - break; - case GL_VERSION: - if (gc->version) return gc->version; - break; - case GL_EXTENSIONS: - if (gc->extensions) return gc->extensions; - break; - default: - __glXSetError(gc, GL_INVALID_ENUM); - return 0; - } - - /* - ** Get requested string from server - */ - - (void) __glXFlushRenderBuffer( gc, gc->pc ); - s = (GLubyte *) __glXGetStringFromServer( dpy, gc->majorOpcode, - X_GLsop_GetString, gc->currentContextTag, - name ); - if (!s) { - /* Throw data on the floor */ - __glXSetError(gc, GL_OUT_OF_MEMORY); - } else { - /* - ** Update local cache - */ - switch(name) { - case GL_VENDOR: - gc->vendor = s; - break; - - case GL_RENDERER: - gc->renderer = s; - break; - - case GL_VERSION: { - int client_major; - int client_minor; - - version_from_string( (char *) s, - & gc->server_major, & gc->server_minor ); - __glXGetGLVersion( & client_major, & client_minor ); - - if ( (gc->server_major < client_major) - || ((gc->server_major == client_major) - && (gc->server_minor <= client_minor)) ) { - gc->version = s; - } - else { - /* Allow 7 bytes for the client-side GL version. This allows - * for upto version 999.999. I'm not holding my breath for - * that one! The extra 4 is for the ' ()\0' that will be - * added. - */ - const size_t size = 7 + strlen( (char *) s ) + 4; - - gc->version = Xmalloc( size ); - if ( gc->version == NULL ) { - /* If we couldn't allocate memory for the new string, - * make a best-effort and just copy the client-side version - * to the string and use that. It probably doesn't - * matter what is done here. If there not memory available - * for a short string, the system is probably going to die - * soon anyway. - */ - snprintf( (char *) s, strlen( (char *) s ) + 1, "%u.%u", - client_major, client_minor ); - gc->version = s; - } - else { - snprintf( (char *)gc->version, size, "%u.%u (%s)", - client_major, client_minor, s ); - Xfree( s ); - s = gc->version; - } - } - break; - } - - case GL_EXTENSIONS: { - int major = 1; - int minor = 0; - - /* This code is currently disabled. I was reminded that some - * vendors intentionally exclude some extensions from their - * extension string that are part of the core version they - * advertise. In particular, on Nvidia drivers this means that - * the functionality is supported by the driver, but is not - * hardware accelerated. For example, a TNT will show core - * version 1.5, but most of the post-1.2 functionality is a - * software fallback. - * - * I don't want to break applications that rely on this odd - * behavior. At the same time, the code is written and tested, - * so I didn't want to throw it away. Therefore, the code is here - * but disabled. In the future, we may wish to and an environment - * variable to enable it. - */ - -#if 0 - /* Call glGetString just to make sure that gc->server_major and - * gc->server_minor are set. This version may be higher than we - * can completely support, but it may imply support for some - * extensions that we can support. - * - * For example, at the time of this writing, the client-side - * library only supports upto core GL version 1.2. However, cubic - * textures, multitexture, multisampling, and some other 1.3 - * features are supported. If the server reports back version - * 1.3, but does not report all of those extensions, we will - * enable them. - */ - (void *) glGetString( GL_VERSION ); - major = gc->server_major, - minor = gc->server_minor; -#endif - - __glXCalculateUsableGLExtensions( gc, (char *) s, major, minor ); - XFree( s ); - s = gc->extensions; - break; - } - } - } - return s; -} - -GLboolean __indirect_glIsEnabled(GLenum cap) -{ - __GLX_SINGLE_DECLARE_VARIABLES(); - __GLXattribute * state = (__GLXattribute *)(gc->client_state_private); - xGLXSingleReply reply; - GLboolean retval = 0; - GLintptr enable; - - if (!dpy) return 0; - - switch(cap) { - case GL_VERTEX_ARRAY: - case GL_NORMAL_ARRAY: - case GL_COLOR_ARRAY: - case GL_INDEX_ARRAY: - case GL_EDGE_FLAG_ARRAY: - case GL_SECONDARY_COLOR_ARRAY: - case GL_FOG_COORD_ARRAY: - retval = __glXGetArrayEnable( state, cap, 0, & enable ); - assert( retval ); - return (GLboolean) enable; - break; - case GL_TEXTURE_COORD_ARRAY: - retval = __glXGetArrayEnable( state, GL_TEXTURE_COORD_ARRAY, - __glXGetActiveTextureUnit( state ), & enable ); - assert( retval ); - return (GLboolean) enable; - break; - } - - __GLX_SINGLE_LOAD_VARIABLES(); - __GLX_SINGLE_BEGIN(X_GLsop_IsEnabled,4); - __GLX_SINGLE_PUT_LONG(0,cap); - __GLX_SINGLE_READ_XREPLY(); - __GLX_SINGLE_GET_RETVAL(retval, GLboolean); - __GLX_SINGLE_END(); - return retval; -} - -void __indirect_glGetPointerv(GLenum pname, void **params) -{ - __GLXcontext *gc = __glXGetCurrentContext(); - __GLXattribute * state = (__GLXattribute *)(gc->client_state_private); - Display *dpy = gc->currentDpy; - - if (!dpy) return; - - switch(pname) { - case GL_VERTEX_ARRAY_POINTER: - case GL_NORMAL_ARRAY_POINTER: - case GL_COLOR_ARRAY_POINTER: - case GL_INDEX_ARRAY_POINTER: - case GL_EDGE_FLAG_ARRAY_POINTER: - __glXGetArrayPointer( state, pname - GL_VERTEX_ARRAY_POINTER - + GL_VERTEX_ARRAY, - 0, params ); - return; - case GL_TEXTURE_COORD_ARRAY_POINTER: - __glXGetArrayPointer( state, GL_TEXTURE_COORD_ARRAY, - __glXGetActiveTextureUnit( state ), params ); - return; - case GL_SECONDARY_COLOR_ARRAY_POINTER: - case GL_FOG_COORD_ARRAY_POINTER: - __glXGetArrayPointer( state, pname - GL_FOG_COORD_ARRAY_POINTER - + GL_FOG_COORD_ARRAY, - 0, params ); - return; - case GL_FEEDBACK_BUFFER_POINTER: - *params = (void *)gc->feedbackBuf; - return; - case GL_SELECTION_BUFFER_POINTER: - *params = (void *)gc->selectBuf; - return; - default: - __glXSetError(gc, GL_INVALID_ENUM); - return; - } -} - diff --git a/nx-X11/extras/Mesa/src/glx/x11/singlepix.c b/nx-X11/extras/Mesa/src/glx/x11/singlepix.c deleted file mode 100644 index 4a10083b8..000000000 --- a/nx-X11/extras/Mesa/src/glx/x11/singlepix.c +++ /dev/null @@ -1,105 +0,0 @@ -/* $XFree86: xc/lib/GL/glx/singlepix.c,v 1.3 2001/03/21 16:04:39 dawes Exp $ */ -/* -** License Applicability. Except to the extent portions of this file are -** made subject to an alternative license as permitted in the SGI Free -** Software License B, Version 1.1 (the "License"), the contents of this -** file are subject only to the provisions of the License. You may not use -** this file except in compliance with the License. You may obtain a copy -** of the License at Silicon Graphics, Inc., attn: Legal Services, 1600 -** Amphitheatre Parkway, Mountain View, CA 94043-1351, or at: -** -** http://oss.sgi.com/projects/FreeB -** -** Note that, as provided in the License, the Software is distributed on an -** "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS -** DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND -** CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A -** PARTICULAR PURPOSE, AND NON-INFRINGEMENT. -** -** Original Code. The Original Code is: OpenGL Sample Implementation, -** Version 1.2.1, released January 26, 2000, developed by Silicon Graphics, -** Inc. The Original Code is Copyright (c) 1991-2000 Silicon Graphics, Inc. -** Copyright in any portions created by third parties is as indicated -** elsewhere herein. All Rights Reserved. -** -** Additional Notice Provisions: The application programming interfaces -** established by SGI in conjunction with the Original Code are The -** OpenGL(R) Graphics System: A Specification (Version 1.2.1), released -** April 1, 1999; The OpenGL(R) Graphics System Utility Library (Version -** 1.3), released November 4, 1998; and OpenGL(R) Graphics with the X -** Window System(R) (Version 1.3), released October 19, 1998. This software -** was created using the OpenGL(R) version 1.2.1 Sample Implementation -** published by SGI, but has not been independently verified as being -** compliant with the OpenGL(R) version 1.2.1 Specification. -** -*/ - -#include "packsingle.h" -#include "indirect.h" - -void __indirect_glGetSeparableFilter(GLenum target, GLenum format, GLenum type, - GLvoid *row, GLvoid *column, GLvoid *span) -{ - __GLX_SINGLE_DECLARE_VARIABLES(); - const __GLXattribute * state; - xGLXGetSeparableFilterReply reply; - GLubyte *rowBuf, *colBuf; - - if (!dpy) return; - __GLX_SINGLE_LOAD_VARIABLES(); - state = gc->client_state_private; - - /* Send request */ - __GLX_SINGLE_BEGIN(X_GLsop_GetSeparableFilter, __GLX_PAD(13)); - __GLX_SINGLE_PUT_LONG(0,target); - __GLX_SINGLE_PUT_LONG(4,format); - __GLX_SINGLE_PUT_LONG(8,type); - __GLX_SINGLE_PUT_CHAR(12,state->storePack.swapEndian); - __GLX_SINGLE_READ_XREPLY(); - compsize = reply.length << 2; - - if (compsize != 0) { - GLint width, height; - GLint widthsize, heightsize; - - width = reply.width; - height = reply.height; - - widthsize = __glImageSize(width,1,1,format, type, 0); - heightsize = __glImageSize(height,1,1,format, type, 0); - - /* Allocate a holding buffer to transform the data from */ - rowBuf = (GLubyte*) Xmalloc(widthsize); - if (!rowBuf) { - /* Throw data away */ - _XEatData(dpy, compsize); - __glXSetError(gc, GL_OUT_OF_MEMORY); - UnlockDisplay(dpy); - SyncHandle(); - return; - } else { - __GLX_SINGLE_GET_CHAR_ARRAY(((char*)rowBuf),widthsize); - __glEmptyImage(gc, 1, width, 1, 1, format, type, rowBuf, row); - Xfree((char*) rowBuf); - } - colBuf = (GLubyte*) Xmalloc(heightsize); - if (!colBuf) { - /* Throw data away */ - _XEatData(dpy, compsize - __GLX_PAD(widthsize)); - __glXSetError(gc, GL_OUT_OF_MEMORY); - UnlockDisplay(dpy); - SyncHandle(); - return; - } else { - __GLX_SINGLE_GET_CHAR_ARRAY(((char*)colBuf),heightsize); - __glEmptyImage(gc, 1, height, 1, 1, format, type, colBuf, column); - Xfree((char*) colBuf); - } - } else { - /* - ** don't modify user's buffer. - */ - } - __GLX_SINGLE_END(); - -} diff --git a/nx-X11/extras/Mesa/src/glx/x11/vertarr.c b/nx-X11/extras/Mesa/src/glx/x11/vertarr.c deleted file mode 100644 index 483a166ea..000000000 --- a/nx-X11/extras/Mesa/src/glx/x11/vertarr.c +++ /dev/null @@ -1,203 +0,0 @@ -/* $XFree86: xc/lib/GL/glx/vertarr.c,v 1.4 2001/03/25 05:32:00 tsi Exp $ */ -/* -** License Applicability. Except to the extent portions of this file are -** made subject to an alternative license as permitted in the SGI Free -** Software License B, Version 1.1 (the "License"), the contents of this -** file are subject only to the provisions of the License. You may not use -** this file except in compliance with the License. You may obtain a copy -** of the License at Silicon Graphics, Inc., attn: Legal Services, 1600 -** Amphitheatre Parkway, Mountain View, CA 94043-1351, or at: -** -** http://oss.sgi.com/projects/FreeB -** -** Note that, as provided in the License, the Software is distributed on an -** "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS -** DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND -** CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A -** PARTICULAR PURPOSE, AND NON-INFRINGEMENT. -** -** Original Code. The Original Code is: OpenGL Sample Implementation, -** Version 1.2.1, released January 26, 2000, developed by Silicon Graphics, -** Inc. The Original Code is Copyright (c) 1991-2000 Silicon Graphics, Inc. -** Copyright in any portions created by third parties is as indicated -** elsewhere herein. All Rights Reserved. -** -** Additional Notice Provisions: The application programming interfaces -** established by SGI in conjunction with the Original Code are The -** OpenGL(R) Graphics System: A Specification (Version 1.2.1), released -** April 1, 1999; The OpenGL(R) Graphics System Utility Library (Version -** 1.3), released November 4, 1998; and OpenGL(R) Graphics with the X -** Window System(R) (Version 1.3), released October 19, 1998. This software -** was created using the OpenGL(R) version 1.2.1 Sample Implementation -** published by SGI, but has not been independently verified as being -** compliant with the OpenGL(R) version 1.2.1 Specification. -** -*/ - -#include "glxclient.h" -#include "indirect.h" -#include "indirect_vertex_array.h" - - -/*****************************************************************************/ - -/** - * \name Vertex array pointer bridge functions - * - * When EXT_vertex_array was moved into the core GL spec, the \c count - * parameter was lost. This libGL really only wants to implement the GL 1.1 - * version, but we need to support applications that were written to the old - * interface. These bridge functions are part of the glue that makes this - * happen. - */ -/*@{*/ -void __indirect_glColorPointerEXT(GLint size, GLenum type, GLsizei stride, - GLsizei count, const GLvoid * pointer ) -{ - (void) count; __indirect_glColorPointer( size, type, stride, pointer ); -} - -void __indirect_glEdgeFlagPointerEXT(GLsizei stride, - GLsizei count, const GLboolean * pointer ) -{ - (void) count; __indirect_glEdgeFlagPointer( stride, pointer ); -} - -void __indirect_glIndexPointerEXT(GLenum type, GLsizei stride, - GLsizei count, const GLvoid * pointer ) -{ - (void) count; __indirect_glIndexPointer( type, stride, pointer ); -} - -void __indirect_glNormalPointerEXT(GLenum type, GLsizei stride, GLsizei count, - const GLvoid * pointer ) -{ - (void) count; __indirect_glNormalPointer( type, stride, pointer ); -} - -void __indirect_glTexCoordPointerEXT(GLint size, GLenum type, GLsizei stride, - GLsizei count, const GLvoid * pointer ) -{ - (void) count; __indirect_glTexCoordPointer( size, type, stride, pointer ); -} - -void __indirect_glVertexPointerEXT(GLint size, GLenum type, GLsizei stride, - GLsizei count, const GLvoid * pointer ) -{ - (void) count; __indirect_glVertexPointer( size, type, stride, pointer ); -} -/*@}*/ - -/*****************************************************************************/ - -void __indirect_glInterleavedArrays(GLenum format, GLsizei stride, const GLvoid *pointer) -{ - __GLXcontext *gc = __glXGetCurrentContext(); - __GLXattribute * state = (__GLXattribute *)(gc->client_state_private); - -#define NONE {0, 0, 0} -#define F(x) {GL_FLOAT, x, x * sizeof(GLfloat)} -#define UB4 {GL_UNSIGNED_BYTE, 4, 4 * sizeof(GLubyte)} - - /* Each row in this array describes the elements of a particular - * interleaved array mode. Each column describes, in the order in which - * they appear in the interleaved arrays, one of the four possible types - * of vertex data that can appear in an interleaved array. - */ - struct { - /** - * The enum describing the GL type, as would be passed to the - * appropriate gl*Pointer function. - */ - GLushort type; - - /** - * Number of elements in the subarray, as would be passed (as the - * \c size parameter) to the appropriate gl*Pointer function. - */ - GLubyte count; - - /** - * True size of a single element in the subarray, as would be passed - * (as the \c stride parameter) to the appropriate gl*Pointer - * function. - */ - GLubyte size; - } - static const modes[14][4] = { - /* texture color normal vertex */ - {NONE, NONE, NONE, F(2)}, /* GL_V2F */ - {NONE, NONE, NONE, F(3)}, /* GL_V3F */ - {NONE, UB4, NONE, F(2)}, /* GL_C4UB_V2F */ - {NONE, UB4, NONE, F(3)}, /* GL_C4UB_V3F */ - {NONE, F(3), NONE, F(3)}, /* GL_C3F_V3F */ - {NONE, NONE, F(3), F(3)}, /* GL_N3F_V3F */ - {NONE, F(4), F(3), F(3)}, /* GL_C4F_N3F_V3F */ - {F(2), NONE, NONE, F(3)}, /* GL_T2F_V3F */ - {F(4), NONE, NONE, F(4)}, /* GL_T4F_V4F */ - {F(2), UB4, NONE, F(3)}, /* GL_T2F_C4UB_V3F */ - {F(2), F(3), NONE, F(3)}, /* GL_T2F_C3F_V3F */ - {F(2), NONE, F(3), F(3)}, /* GL_T2F_N3F_V3F */ - {F(2), F(4), F(3), F(3)}, /* GL_T2F_C4F_N3F_V3F */ - {F(4), F(4), F(3), F(4)}, /* GL_T4F_C4F_N3F_V4F */ - }; -#undef NONE -#undef F -#undef UB4 - - GLint trueStride, size; - int offsets[4]; - unsigned i; - const int idx = format - GL_V2F; - - - /* All valid formats are on the range [GL_V2F, GL_V2F+0x0D]. Since idx - * is just the format biased by -GL_V2F, all valid idx values are on the - * range [0, 0x0D]. - */ - if ( (idx < 0) || (idx > 0x0D) ) { - __glXSetError(gc, GL_INVALID_ENUM); - return; - } - - if ( stride < 0 ) { - __glXSetError(gc, GL_INVALID_VALUE); - return; - } - - - /* If the 'count' for a subarray is non-zero, then the offset of its - * first element is at the currently accumulated 'size'. - */ - size = 0; - for ( i = 0 ; i < 4 ; i++ ) { - offsets[i] = (modes[idx][i].count != 0) ? size : -1; - size += modes[idx][i].size; - } - - trueStride = (stride == 0) ? size : stride; - - __glXArrayDisableAll( state ); - - if ( offsets[0] >= 0 ) { - __indirect_glEnableClientState(GL_TEXTURE_COORD_ARRAY); - __indirect_glTexCoordPointer( modes[idx][0].count, GL_FLOAT, - trueStride, - (const char *) pointer ); - } - if ( offsets[1] >= 0 ) { - __indirect_glEnableClientState(GL_COLOR_ARRAY); - __indirect_glColorPointer( modes[idx][1].count, modes[idx][1].type, - trueStride, - (const char *) pointer + offsets[1] ); - } - if ( offsets[2] >= 0 ) { - __indirect_glEnableClientState(GL_NORMAL_ARRAY); - __indirect_glNormalPointer( GL_FLOAT, trueStride, - (const char *)pointer + offsets[2] ); - } - __indirect_glEnableClientState(GL_VERTEX_ARRAY); - __indirect_glVertexPointer( modes[idx][3].count, GL_FLOAT, - trueStride, - (const char *)pointer + offsets[3] ); -} diff --git a/nx-X11/extras/Mesa/src/glx/x11/xf86dri.h b/nx-X11/extras/Mesa/src/glx/x11/xf86dri.h deleted file mode 100644 index 0a2bb2497..000000000 --- a/nx-X11/extras/Mesa/src/glx/x11/xf86dri.h +++ /dev/null @@ -1,122 +0,0 @@ -/* $XFree86: xc/lib/GL/dri/xf86dri.h,v 1.8 2002/10/30 12:51:25 alanh Exp $ */ -/************************************************************************** - -Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas. -Copyright 2000 VA Linux Systems, 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 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 PRECISION INSIGHT 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. - -**************************************************************************/ - -/** - * \file xf86dri.h - * Protocol numbers and function prototypes for DRI X protocol. - * - * \author Kevin E. Martin - * \author Jens Owen - * \author Rickard E. (Rik) Faith - */ - -#ifndef _XF86DRI_H_ -#define _XF86DRI_H_ - -#include -#include - -#define X_XF86DRIQueryVersion 0 -#define X_XF86DRIQueryDirectRenderingCapable 1 -#define X_XF86DRIOpenConnection 2 -#define X_XF86DRICloseConnection 3 -#define X_XF86DRIGetClientDriverName 4 -#define X_XF86DRICreateContext 5 -#define X_XF86DRIDestroyContext 6 -#define X_XF86DRICreateDrawable 7 -#define X_XF86DRIDestroyDrawable 8 -#define X_XF86DRIGetDrawableInfo 9 -#define X_XF86DRIGetDeviceInfo 10 -#define X_XF86DRIAuthConnection 11 -#define X_XF86DRIOpenFullScreen 12 /* Deprecated */ -#define X_XF86DRICloseFullScreen 13 /* Deprecated */ - -#define XF86DRINumberEvents 0 - -#define XF86DRIClientNotLocal 0 -#define XF86DRIOperationNotSupported 1 -#define XF86DRINumberErrors (XF86DRIOperationNotSupported + 1) - -#ifndef _XF86DRI_SERVER_ - -#include - -_XFUNCPROTOBEGIN - -Bool XF86DRIQueryExtension( Display *dpy, int *event_base, int *error_base ); - -Bool XF86DRIQueryVersion( Display *dpy, int *majorVersion, int *minorVersion, - int *patchVersion ); - -Bool XF86DRIQueryDirectRenderingCapable( Display *dpy, int screen, - Bool *isCapable ); - -Bool XF86DRIOpenConnection( Display *dpy, int screen, drm_handle_t *hSAREA, - char **busIDString ); - -Bool XF86DRIAuthConnection( Display *dpy, int screen, drm_magic_t magic ); - -Bool XF86DRICloseConnection( Display *dpy, int screen ); - -Bool XF86DRIGetClientDriverName( Display *dpy, int screen, - int *ddxDriverMajorVersion, int *ddxDriverMinorVersion, - int *ddxDriverPatchVersion, char **clientDriverName ); - -Bool XF86DRICreateContext( Display *dpy, int screen, Visual *visual, - XID *ptr_to_returned_context_id, drm_context_t *hHWContext ); - -Bool XF86DRICreateContextWithConfig( Display *dpy, int screen, int configID, - XID *ptr_to_returned_context_id, drm_context_t *hHWContext ); - -extern GLboolean XF86DRIDestroyContext( __DRInativeDisplay *dpy, int screen, - __DRIid context_id ); - -extern GLboolean XF86DRICreateDrawable( __DRInativeDisplay *dpy, int screen, - __DRIid drawable, drm_drawable_t *hHWDrawable ); - -extern GLboolean XF86DRIDestroyDrawable( __DRInativeDisplay *dpy, int screen, - __DRIid drawable); - -Bool XF86DRIGetDrawableInfo( Display *dpy, int screen, Drawable drawable, - unsigned int *index, unsigned int *stamp, - int *X, int *Y, int *W, int *H, - int *numClipRects, drm_clip_rect_t ** pClipRects, - int *backX, int *backY, - int *numBackClipRects, drm_clip_rect_t **pBackClipRects ); - -Bool XF86DRIGetDeviceInfo( Display *dpy, int screen, - drm_handle_t *hFrameBuffer, int *fbOrigin, int *fbSize, - int *fbStride, int *devPrivateSize, void **pDevPrivate ); - -_XFUNCPROTOEND - -#endif /* _XF86DRI_SERVER_ */ - -#endif /* _XF86DRI_H_ */ - diff --git a/nx-X11/extras/Mesa/src/glx/x11/xf86dristr.h b/nx-X11/extras/Mesa/src/glx/x11/xf86dristr.h deleted file mode 100644 index ac05b183b..000000000 --- a/nx-X11/extras/Mesa/src/glx/x11/xf86dristr.h +++ /dev/null @@ -1,343 +0,0 @@ -/* $XFree86: xc/lib/GL/dri/xf86dristr.h,v 1.10 2002/10/30 12:51:25 alanh Exp $ */ -/************************************************************************** - -Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas. -Copyright 2000 VA Linux Systems, 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 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 PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR -ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -**************************************************************************/ - -/* - * Authors: - * Kevin E. Martin - * Jens Owen - * Rickard E. (Rik) Fiath - * - */ - -#ifndef _XF86DRISTR_H_ -#define _XF86DRISTR_H_ - -#include "xf86dri.h" - -#define XF86DRINAME "XFree86-DRI" - -/* The DRI version number. This was originally set to be the same of the - * XFree86 version number. However, this version is really indepedent of - * the XFree86 version. - * - * Version History: - * 4.0.0: Original - * 4.0.1: Patch to bump clipstamp when windows are destroyed, 28 May 02 - * 4.1.0: Add transition from single to multi in DRMInfo rec, 24 Jun 02 - */ -#define XF86DRI_MAJOR_VERSION 4 -#define XF86DRI_MINOR_VERSION 1 -#define XF86DRI_PATCH_VERSION 0 - -typedef struct _XF86DRIQueryVersion { - CARD8 reqType; /* always DRIReqCode */ - CARD8 driReqType; /* always X_DRIQueryVersion */ - CARD16 length B16; -} xXF86DRIQueryVersionReq; -#define sz_xXF86DRIQueryVersionReq 4 - -typedef struct { - BYTE type; /* X_Reply */ - BOOL pad1; - CARD16 sequenceNumber B16; - CARD32 length B32; - CARD16 majorVersion B16; /* major version of DRI protocol */ - CARD16 minorVersion B16; /* minor version of DRI protocol */ - CARD32 patchVersion B32; /* patch version of DRI protocol */ - CARD32 pad3 B32; - CARD32 pad4 B32; - CARD32 pad5 B32; - CARD32 pad6 B32; -} xXF86DRIQueryVersionReply; -#define sz_xXF86DRIQueryVersionReply 32 - -typedef struct _XF86DRIQueryDirectRenderingCapable { - CARD8 reqType; /* always DRIReqCode */ - CARD8 driReqType; /* X_DRIQueryDirectRenderingCapable */ - CARD16 length B16; - CARD32 screen B32; -} xXF86DRIQueryDirectRenderingCapableReq; -#define sz_xXF86DRIQueryDirectRenderingCapableReq 8 - -typedef struct { - BYTE type; /* X_Reply */ - BOOL pad1; - CARD16 sequenceNumber B16; - CARD32 length B32; - BOOL isCapable; - BOOL pad2; - BOOL pad3; - BOOL pad4; - CARD32 pad5 B32; - CARD32 pad6 B32; - CARD32 pad7 B32; - CARD32 pad8 B32; - CARD32 pad9 B32; -} xXF86DRIQueryDirectRenderingCapableReply; -#define sz_xXF86DRIQueryDirectRenderingCapableReply 32 - -typedef struct _XF86DRIOpenConnection { - CARD8 reqType; /* always DRIReqCode */ - CARD8 driReqType; /* always X_DRIOpenConnection */ - CARD16 length B16; - CARD32 screen B32; -} xXF86DRIOpenConnectionReq; -#define sz_xXF86DRIOpenConnectionReq 8 - -typedef struct { - BYTE type; /* X_Reply */ - BOOL pad1; - CARD16 sequenceNumber B16; - CARD32 length B32; - CARD32 hSAREALow B32; - CARD32 hSAREAHigh B32; - CARD32 busIdStringLength B32; - CARD32 pad6 B32; - CARD32 pad7 B32; - CARD32 pad8 B32; -} xXF86DRIOpenConnectionReply; -#define sz_xXF86DRIOpenConnectionReply 32 - -typedef struct _XF86DRIAuthConnection { - CARD8 reqType; /* always DRIReqCode */ - CARD8 driReqType; /* always X_DRICloseConnection */ - CARD16 length B16; - CARD32 screen B32; - CARD32 magic B32; -} xXF86DRIAuthConnectionReq; -#define sz_xXF86DRIAuthConnectionReq 12 - -typedef struct { - BYTE type; - BOOL pad1; - CARD16 sequenceNumber B16; - CARD32 length B32; - CARD32 authenticated B32; - CARD32 pad2 B32; - CARD32 pad3 B32; - CARD32 pad4 B32; - CARD32 pad5 B32; - CARD32 pad6 B32; -} xXF86DRIAuthConnectionReply; -#define zx_xXF86DRIAuthConnectionReply 32 - -typedef struct _XF86DRICloseConnection { - CARD8 reqType; /* always DRIReqCode */ - CARD8 driReqType; /* always X_DRICloseConnection */ - CARD16 length B16; - CARD32 screen B32; -} xXF86DRICloseConnectionReq; -#define sz_xXF86DRICloseConnectionReq 8 - -typedef struct _XF86DRIGetClientDriverName { - CARD8 reqType; /* always DRIReqCode */ - CARD8 driReqType; /* always X_DRIGetClientDriverName */ - CARD16 length B16; - CARD32 screen B32; -} xXF86DRIGetClientDriverNameReq; -#define sz_xXF86DRIGetClientDriverNameReq 8 - -typedef struct { - BYTE type; /* X_Reply */ - BOOL pad1; - CARD16 sequenceNumber B16; - CARD32 length B32; - CARD32 ddxDriverMajorVersion B32; - CARD32 ddxDriverMinorVersion B32; - CARD32 ddxDriverPatchVersion B32; - CARD32 clientDriverNameLength B32; - CARD32 pad5 B32; - CARD32 pad6 B32; -} xXF86DRIGetClientDriverNameReply; -#define sz_xXF86DRIGetClientDriverNameReply 32 - -typedef struct _XF86DRICreateContext { - CARD8 reqType; /* always DRIReqCode */ - CARD8 driReqType; /* always X_DRICreateContext */ - CARD16 length B16; - CARD32 screen B32; - CARD32 visual B32; - CARD32 context B32; -} xXF86DRICreateContextReq; -#define sz_xXF86DRICreateContextReq 16 - -typedef struct { - BYTE type; /* X_Reply */ - BOOL pad1; - CARD16 sequenceNumber B16; - CARD32 length B32; - CARD32 hHWContext B32; - CARD32 pad2 B32; - CARD32 pad3 B32; - CARD32 pad4 B32; - CARD32 pad5 B32; - CARD32 pad6 B32; -} xXF86DRICreateContextReply; -#define sz_xXF86DRICreateContextReply 32 - -typedef struct _XF86DRIDestroyContext { - CARD8 reqType; /* always DRIReqCode */ - CARD8 driReqType; /* always X_DRIDestroyContext */ - CARD16 length B16; - CARD32 screen B32; - CARD32 context B32; -} xXF86DRIDestroyContextReq; -#define sz_xXF86DRIDestroyContextReq 12 - -typedef struct _XF86DRICreateDrawable { - CARD8 reqType; /* always DRIReqCode */ - CARD8 driReqType; /* always X_DRICreateDrawable */ - CARD16 length B16; - CARD32 screen B32; - CARD32 drawable B32; -} xXF86DRICreateDrawableReq; -#define sz_xXF86DRICreateDrawableReq 12 - -typedef struct { - BYTE type; /* X_Reply */ - BOOL pad1; - CARD16 sequenceNumber B16; - CARD32 length B32; - CARD32 hHWDrawable B32; - CARD32 pad2 B32; - CARD32 pad3 B32; - CARD32 pad4 B32; - CARD32 pad5 B32; - CARD32 pad6 B32; -} xXF86DRICreateDrawableReply; -#define sz_xXF86DRICreateDrawableReply 32 - -typedef struct _XF86DRIDestroyDrawable { - CARD8 reqType; /* always DRIReqCode */ - CARD8 driReqType; /* always X_DRIDestroyDrawable */ - CARD16 length B16; - CARD32 screen B32; - CARD32 drawable B32; -} xXF86DRIDestroyDrawableReq; -#define sz_xXF86DRIDestroyDrawableReq 12 - -typedef struct _XF86DRIGetDrawableInfo { - CARD8 reqType; /* always DRIReqCode */ - CARD8 driReqType; /* always X_DRIGetDrawableInfo */ - CARD16 length B16; - CARD32 screen B32; - CARD32 drawable B32; -} xXF86DRIGetDrawableInfoReq; -#define sz_xXF86DRIGetDrawableInfoReq 12 - -typedef struct { - BYTE type; /* X_Reply */ - BOOL pad1; - CARD16 sequenceNumber B16; - CARD32 length B32; - CARD32 drawableTableIndex B32; - CARD32 drawableTableStamp B32; - INT16 drawableX B16; - INT16 drawableY B16; - INT16 drawableWidth B16; - INT16 drawableHeight B16; - CARD32 numClipRects B32; - INT16 backX B16; - INT16 backY B16; - CARD32 numBackClipRects B32; -} xXF86DRIGetDrawableInfoReply; - -#define sz_xXF86DRIGetDrawableInfoReply 36 - - -typedef struct _XF86DRIGetDeviceInfo { - CARD8 reqType; /* always DRIReqCode */ - CARD8 driReqType; /* always X_DRIGetDeviceInfo */ - CARD16 length B16; - CARD32 screen B32; -} xXF86DRIGetDeviceInfoReq; -#define sz_xXF86DRIGetDeviceInfoReq 8 - -typedef struct { - BYTE type; /* X_Reply */ - BOOL pad1; - CARD16 sequenceNumber B16; - CARD32 length B32; - CARD32 hFrameBufferLow B32; - CARD32 hFrameBufferHigh B32; - CARD32 framebufferOrigin B32; - CARD32 framebufferSize B32; - CARD32 framebufferStride B32; - CARD32 devPrivateSize B32; -} xXF86DRIGetDeviceInfoReply; -#define sz_xXF86DRIGetDeviceInfoReply 32 - -typedef struct _XF86DRIOpenFullScreen { - CARD8 reqType; /* always DRIReqCode */ - CARD8 driReqType; /* always X_DRIOpenFullScreen */ - CARD16 length B16; - CARD32 screen B32; - CARD32 drawable B32; -} xXF86DRIOpenFullScreenReq; -#define sz_xXF86DRIOpenFullScreenReq 12 - -typedef struct { - BYTE type; - BOOL pad1; - CARD16 sequenceNumber B16; - CARD32 length B32; - CARD32 isFullScreen B32; - CARD32 pad2 B32; - CARD32 pad3 B32; - CARD32 pad4 B32; - CARD32 pad5 B32; - CARD32 pad6 B32; -} xXF86DRIOpenFullScreenReply; -#define sz_xXF86DRIOpenFullScreenReply 32 - -typedef struct _XF86DRICloseFullScreen { - CARD8 reqType; /* always DRIReqCode */ - CARD8 driReqType; /* always X_DRICloseFullScreen */ - CARD16 length B16; - CARD32 screen B32; - CARD32 drawable B32; -} xXF86DRICloseFullScreenReq; -#define sz_xXF86DRICloseFullScreenReq 12 - -typedef struct { - BYTE type; - BOOL pad1; - CARD16 sequenceNumber B16; - CARD32 length B32; - CARD32 pad2 B32; - CARD32 pad3 B32; - CARD32 pad4 B32; - CARD32 pad5 B32; - CARD32 pad6 B32; - CARD32 pad7 B32; -} xXF86DRICloseFullScreenReply; -#define sz_xXF86DRICloseFullScreenReply 32 - - -#endif /* _XF86DRISTR_H_ */ diff --git a/nx-X11/extras/Mesa/src/glx/x11/xfont.c b/nx-X11/extras/Mesa/src/glx/x11/xfont.c deleted file mode 100644 index 5f23a7962..000000000 --- a/nx-X11/extras/Mesa/src/glx/x11/xfont.c +++ /dev/null @@ -1,377 +0,0 @@ -/* $XFree86: xc/lib/GL/glx/xfont.c,v 1.6 2001/05/02 15:06:02 dawes Exp $ */ -/* - * Mesa 3-D graphics library - * Version: 3.1 - * - * Copyright (C) 1999 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. - */ - - -/* xfonts.c -- glXUseXFont() for Mesa written by - * Copyright (C) 1995 Thorsten.Ohl @ Physik.TH-Darmstadt.de - */ - -/* - This was take from Mesa and modified to work in the real GLX structure. - It provides a fully client side implementation of glXUseXFont and is - called by that routine when direct rendering is enabled. -*/ - - -#include "glxclient.h" - -/* Some debugging info. */ - -#ifdef DEBUG -#undef _R -#undef _G -#undef _B -#include - -int debug_xfonts = 0; - -static void -dump_char_struct (XCharStruct *ch, char *prefix) -{ - printf ("%slbearing = %d, rbearing = %d, width = %d\n", - prefix, ch->lbearing, ch->rbearing, ch->width); - printf ("%sascent = %d, descent = %d, attributes = %u\n", - prefix, ch->ascent, ch->descent, (unsigned int) ch->attributes); -} - -static void -dump_font_struct (XFontStruct *font) -{ - printf ("ascent = %d, descent = %d\n", font->ascent, font->descent); - printf ("char_or_byte2 = (%u,%u)\n", - font->min_char_or_byte2, font->max_char_or_byte2); - printf ("byte1 = (%u,%u)\n", font->min_byte1, font->max_byte1); - printf ("all_chars_exist = %s\n", font->all_chars_exist ? "True" : -"False"); - printf ("default_char = %c (\\%03o)\n", - (char) (isprint (font->default_char) ? font->default_char : ' '), - font->default_char); - dump_char_struct (&font->min_bounds, "min> "); - dump_char_struct (&font->max_bounds, "max> "); -#if 0 - for (c = font->min_char_or_byte2; c <= font->max_char_or_byte2; c++) - { - char prefix[8]; - sprintf (prefix, "%d> ", c); - dump_char_struct (&font->per_char[c], prefix); - } -#endif -} - -static void -dump_bitmap (unsigned int width, unsigned int height, GLubyte *bitmap) -{ - unsigned int x, y; - - printf (" "); - for (x = 0; x < 8*width; x++) - printf ("%o", 7 - (x % 8)); - putchar ('\n'); - for (y = 0; y < height; y++) - { - printf ("%3o:", y); - for (x = 0; x < 8*width; x++) - putchar ((bitmap[width*(height - y - 1) + x/8] & (1 << (7 - (x % -8)))) - ? '*' : '.'); - printf (" "); - for (x = 0; x < width; x++) - printf ("0x%02x, ", bitmap[width*(height - y - 1) + x]); - putchar ('\n'); - } -} -#endif /* DEBUG */ - - -/* Implementation. */ - -/* Fill a BITMAP with a character C from thew current font - in the graphics context GC. WIDTH is the width in bytes - and HEIGHT is the height in bits. - - Note that the generated bitmaps must be used with - - glPixelStorei (GL_UNPACK_SWAP_BYTES, GL_FALSE); - glPixelStorei (GL_UNPACK_LSB_FIRST, GL_FALSE); - glPixelStorei (GL_UNPACK_ROW_LENGTH, 0); - glPixelStorei (GL_UNPACK_SKIP_ROWS, 0); - glPixelStorei (GL_UNPACK_SKIP_PIXELS, 0); - glPixelStorei (GL_UNPACK_ALIGNMENT, 1); - - Possible optimizations: - - * use only one reusable pixmap with the maximum dimensions. - * draw the entire font into a single pixmap (careful with - proportional fonts!). -*/ - - -/* - * Generate OpenGL-compatible bitmap. - */ -static void -fill_bitmap (Display *dpy, Window win, GC gc, - unsigned int width, unsigned int height, - int x0, int y0, unsigned int c, GLubyte *bitmap) -{ - XImage *image; - unsigned int x, y; - Pixmap pixmap; - XChar2b char2b; - - pixmap = XCreatePixmap (dpy, win, 8*width, height, 1); - XSetForeground(dpy, gc, 0); - XFillRectangle (dpy, pixmap, gc, 0, 0, 8*width, height); - XSetForeground(dpy, gc, 1); - - char2b.byte1 = (c >> 8) & 0xff; - char2b.byte2 = (c & 0xff); - - XDrawString16 (dpy, pixmap, gc, x0, y0, &char2b, 1); - - image = XGetImage (dpy, pixmap, 0, 0, 8*width, height, 1, XYPixmap); - if (image) { - /* Fill the bitmap (X11 and OpenGL are upside down wrt each other). */ - for (y = 0; y < height; y++) - for (x = 0; x < 8*width; x++) - if (XGetPixel (image, x, y)) - bitmap[width*(height - y - 1) + x/8] |= (1 << (7 - (x % 8))); - XDestroyImage (image); - } - - XFreePixmap (dpy, pixmap); -} - -/* - * determine if a given glyph is valid and return the - * corresponding XCharStruct. - */ -static XCharStruct *isvalid(XFontStruct *fs, int which) -{ - unsigned int rows,pages; - int byte1 = 0, byte2 = 0; - int i,valid = 1; - - rows = fs->max_byte1 - fs->min_byte1 + 1; - pages = fs->max_char_or_byte2 - fs->min_char_or_byte2 + 1; - - if (rows == 1) { - /* "linear" fonts */ - if ((fs->min_char_or_byte2 > which) || - (fs->max_char_or_byte2 < which)) valid = 0; - } else { - /* "matrix" fonts */ - byte2 = which & 0xff; - byte1 = which >> 8; - if ((fs->min_char_or_byte2 > byte2) || - (fs->max_char_or_byte2 < byte2) || - (fs->min_byte1 > byte1) || - (fs->max_byte1 < byte1)) valid = 0; - } - - if (valid) { - if (fs->per_char) { - if (rows == 1) { - /* "linear" fonts */ - return(fs->per_char + (which-fs->min_char_or_byte2) ); - } else { - /* "matrix" fonts */ - i = ((byte1 - fs->min_byte1) * pages) + - (byte2 - fs->min_char_or_byte2); - return(fs->per_char + i); - } - } else { - return(&fs->min_bounds); - } - } - return(NULL); -} - - -void DRI_glXUseXFont( Font font, int first, int count, int listbase ) -{ - GLXContext CC; - Display *dpy; - Window win; - Pixmap pixmap; - GC gc; - XGCValues values; - unsigned long valuemask; - XFontStruct *fs; - - GLint swapbytes, lsbfirst, rowlength; - GLint skiprows, skippixels, alignment; - - unsigned int max_width, max_height, max_bm_width, max_bm_height; - GLubyte *bm; - - int i; - - CC = __glXGetCurrentContext(); - dpy = CC->currentDpy; - win = CC->currentDrawable; - - fs = XQueryFont (dpy, font); - if (!fs) - { - __glXSetError(CC, GL_INVALID_VALUE); - return; - } - - /* Allocate a bitmap that can fit all characters. */ - max_width = fs->max_bounds.rbearing - fs->min_bounds.lbearing; - max_height = fs->max_bounds.ascent + fs->max_bounds.descent; - max_bm_width = (max_width + 7) / 8; - max_bm_height = max_height; - - bm = (GLubyte *) Xmalloc((max_bm_width * max_bm_height) * sizeof -(GLubyte)); - if (!bm) { - XFreeFontInfo( NULL, fs, 1 ); - __glXSetError(CC, GL_OUT_OF_MEMORY); - return; - } - -#if 0 - /* get the page info */ - pages = fs->max_char_or_byte2 - fs->min_char_or_byte2 + 1; - firstchar = (fs->min_byte1 << 8) + fs->min_char_or_byte2; - lastchar = (fs->max_byte1 << 8) + fs->max_char_or_byte2; - rows = fs->max_byte1 - fs->min_byte1 + 1; - unsigned int first_char, last_char, pages, rows; -#endif - - /* Save the current packing mode for bitmaps. */ - glGetIntegerv (GL_UNPACK_SWAP_BYTES, &swapbytes); - glGetIntegerv (GL_UNPACK_LSB_FIRST, &lsbfirst); - glGetIntegerv (GL_UNPACK_ROW_LENGTH, &rowlength); - glGetIntegerv (GL_UNPACK_SKIP_ROWS, &skiprows); - glGetIntegerv (GL_UNPACK_SKIP_PIXELS, &skippixels); - glGetIntegerv (GL_UNPACK_ALIGNMENT, &alignment); - - /* Enforce a standard packing mode which is compatible with - fill_bitmap() from above. This is actually the default mode, - except for the (non)alignment. */ - glPixelStorei (GL_UNPACK_SWAP_BYTES, GL_FALSE); - glPixelStorei (GL_UNPACK_LSB_FIRST, GL_FALSE); - glPixelStorei (GL_UNPACK_ROW_LENGTH, 0); - glPixelStorei (GL_UNPACK_SKIP_ROWS, 0); - glPixelStorei (GL_UNPACK_SKIP_PIXELS, 0); - glPixelStorei (GL_UNPACK_ALIGNMENT, 1); - - pixmap = XCreatePixmap (dpy, win, 10, 10, 1); - values.foreground = BlackPixel (dpy, DefaultScreen (dpy)); - values.background = WhitePixel (dpy, DefaultScreen (dpy)); - values.font = fs->fid; - valuemask = GCForeground | GCBackground | GCFont; - gc = XCreateGC (dpy, pixmap, valuemask, &values); - XFreePixmap (dpy, pixmap); - -#ifdef DEBUG - if (debug_xfonts) - dump_font_struct (fs); -#endif - - for (i = 0; i < count; i++) - { - unsigned int width, height, bm_width, bm_height; - GLfloat x0, y0, dx, dy; - XCharStruct *ch; - int x, y; - unsigned int c = first + i; - int list = listbase + i; - int valid; - - /* check on index validity and get the bounds */ - ch = isvalid(fs, c); - if (!ch) { - ch = &fs->max_bounds; - valid = 0; - } else { - valid = 1; - } - -#ifdef DEBUG - if (debug_xfonts) { - char s[7]; - sprintf (s, isprint (c) ? "%c> " : "\\%03o> ", c); - dump_char_struct (ch, s); - } -#endif - - /* glBitmap()' parameters: - straight from the glXUseXFont(3) manpage. */ - width = ch->rbearing - ch->lbearing; - height = ch->ascent + ch->descent; - x0 = - ch->lbearing; - y0 = ch->descent - 1; - dx = ch->width; - dy = 0; - - /* X11's starting point. */ - x = - ch->lbearing; - y = ch->ascent; - - /* Round the width to a multiple of eight. We will use this also - for the pixmap for capturing the X11 font. This is slightly - inefficient, but it makes the OpenGL part real easy. */ - bm_width = (width + 7) / 8; - bm_height = height; - - glNewList (list, GL_COMPILE); - if (valid && (bm_width > 0) && (bm_height > 0)) { - - memset (bm, '\0', bm_width * bm_height); - fill_bitmap (dpy, win, gc, bm_width, bm_height, x, y, c, bm); - - glBitmap (width, height, x0, y0, dx, dy, bm); -#ifdef DEBUG - if (debug_xfonts) { - printf ("width/height = %u/%u\n", width, height); - printf ("bm_width/bm_height = %u/%u\n", bm_width, -bm_height); - dump_bitmap (bm_width, bm_height, bm); - } -#endif - } else { - glBitmap (0, 0, 0.0, 0.0, dx, dy, NULL); - } - glEndList (); - } - - Xfree(bm); - XFreeFontInfo( NULL, fs, 1 ); - XFreeGC (dpy, gc); - - /* Restore saved packing modes. */ - glPixelStorei(GL_UNPACK_SWAP_BYTES, swapbytes); - glPixelStorei(GL_UNPACK_LSB_FIRST, lsbfirst); - glPixelStorei(GL_UNPACK_ROW_LENGTH, rowlength); - glPixelStorei(GL_UNPACK_SKIP_ROWS, skiprows); - glPixelStorei(GL_UNPACK_SKIP_PIXELS, skippixels); - glPixelStorei(GL_UNPACK_ALIGNMENT, alignment); -} - -/* The End. */ diff --git a/nx-X11/extras/Mesa/src/mesa/Makefile b/nx-X11/extras/Mesa/src/mesa/Makefile deleted file mode 100644 index b6c0b85f4..000000000 --- a/nx-X11/extras/Mesa/src/mesa/Makefile +++ /dev/null @@ -1,230 +0,0 @@ -# src/mesa/Makefile - -TOP = ../.. -include $(TOP)/configs/current - -include sources - - -GL_MAJOR = 1 -GL_MINOR = 5 -GL_TINY = 0$(MESA_MAJOR)0$(MESA_MINOR)0$(MESA_TINY) - - -.SUFFIXES : .cpp - -.c.o: - $(CC) -c $(INCLUDE_DIRS) $(CFLAGS) $< -o $@ - -.cpp.o: - $(CXX) -c $(INCLUDE_DIRS) $(CXXFLAGS) $< -o $@ - -.S.o: - $(CC) -c $(INCLUDE_DIRS) $(CFLAGS) $< -o $@ - - -# Figure out what to make here -default: - @if [ "${DRIVER_DIRS}" = "dri" ] ; then \ - $(MAKE) linux-solo ; \ - elif [ "${DRIVER_DIRS}" = "osmesa" ] ; then \ - $(MAKE) osmesa-only ; \ - elif [ "$(DRIVER_DIRS)" = "beos" ]; then \ - $(MAKE) beos ; \ - elif [ "$(DRIVER_DIRS)" = "directfb" ]; then \ - $(MAKE) directfb; \ - else \ - $(MAKE) stand-alone ; \ - fi - -# BeOS driver target -beos: depend subdirs mesa.a - cd drivers/beos; $(MAKE) - - -install: default - @if [ "${DRIVER_DIRS}" = "dri" ] ; then \ - cd drivers/dri ; $(MAKE) install ; \ - fi - -###################################################################### -# Linux solo DRI drivers - -SOLO_C_SOURCES = \ - $(MAIN_SOURCES) \ - $(MATH_SOURCES) \ - $(ARRAY_CACHE_SOURCES) \ - $(TNL_SOURCES) \ - $(SWRAST_SOURCES) \ - $(SWRAST_SETUP_SOURCES) \ - $(SHADER_SOURCES) \ - $(SLANG_SOURCES) \ - $(ASM_C_SOURCES) - -SOLO_OBJECTS = $(SOLO_C_SOURCES:.c=.o) \ - $(ASM_SOURCES:.S=.o) - -linux-solo: depend subdirs mesa.a drivers-dri - -# Make archive of core object files -mesa.a: $(SOLO_OBJECTS) - rm -f $@ - ar rcv $@ $(SOLO_OBJECTS) - ranlib $@ - @if [ "${CONFIG_NAME}" = "beos" ] ; then \ - mimeset -f "$@" ; \ - fi - -# note: cannot use the name of the directory ("drivers") as the -# target, otherwise make will look & see that the "drivers" directory -# already exists, so not try to rebuild it... -drivers-dri: - cd drivers/dri ; $(MAKE) - - - -##################################################################### -# Stand-alone Mesa libGL, no built-in drivers (DirectFB) - -LIBGL_CORE_SOURCES = \ - $(CORE_SOURCES) \ - $(ASM_SOURCES) - -LIBGL_CORE_OBJECTS = \ - $(CORE_OBJECTS) \ - $(ASM_SOURCES:.S=.o) - -# Make libGL from core object files -libgl-core: $(LIBGL_CORE_OBJECTS) - @ $(TOP)/bin/mklib -o $(GL_LIB) -linker '$(CC)' \ - -major $(MESA_MAJOR) -minor $(MESA_MINOR) -patch $(MESA_TINY) \ - -install $(LIB_DIR) $(MKLIB_OPTIONS) $(LIBGL_CORE_OBJECTS) $(GL_LIB_DEPS) - -# DirectFB driver target -directfb: depend subdirs libgl-core - cd drivers/directfb; $(MAKE) - - - -###################################################################### -# Stand-alone Mesa libGL and libOSMesa - -STAND_ALONE_DRIVER_SOURCES = \ - $(COMMON_DRIVER_SOURCES) \ - $(X11_DRIVER_SOURCES) \ - $(GLIDE_DRIVER_SOURCES) \ - $(SVGA_DRIVER_SOURCES) \ - $(FBDEV_DRIVER_SOURCES) - -STAND_ALONE_SOURCES = \ - $(CORE_SOURCES) \ - $(ASM_SOURCES) \ - $(STAND_ALONE_DRIVER_SOURCES) - -# ASM_SOURCES is defined in the config file -ASM_OBJECTS = $(ASM_SOURCES:.S=.o) - -STAND_ALONE_DRIVER_OBJECTS = $(STAND_ALONE_DRIVER_SOURCES:.c=.o) - -STAND_ALONE_OBJECTS = \ - $(CORE_OBJECTS) \ - $(ASM_OBJECTS) \ - $(STAND_ALONE_DRIVER_OBJECTS) - -# For libOSMesa16 or libOSMesa32 we link _all_ the objects into the library, -# not just the osmesa.o object (i.e. we don't have a libGL). -OSMESA16_OBJECTS = \ - $(CORE_OBJECTS) \ - $(ASM_OBJECTS) \ - $(COMMON_DRIVER_OBJECTS) \ - $(OSMESA_DRIVER_OBJECTS) - - -stand-alone: depend subdirs $(LIB_DIR)/$(GL_LIB_NAME) $(LIB_DIR)/$(OSMESA_LIB_NAME) - -osmesa-only: depend subdirs $(LIB_DIR)/$(OSMESA_LIB_NAME) - -subdirs: - @ (cd x86 ; $(MAKE)) - @ (cd x86-64 ; $(MAKE)) - -# Make the GL library -$(LIB_DIR)/$(GL_LIB_NAME): $(STAND_ALONE_OBJECTS) - @ $(TOP)/bin/mklib -o $(GL_LIB) -linker '$(CC)' \ - -major $(GL_MAJOR) -minor $(GL_MINOR) -patch $(GL_TINY) \ - -install $(LIB_DIR) \ - $(MKLIB_OPTIONS) $(GL_LIB_DEPS) $(STAND_ALONE_OBJECTS) - -# Make the OSMesa library -$(LIB_DIR)/$(OSMESA_LIB_NAME): $(OSMESA_DRIVER_OBJECTS) $(OSMESA16_OBJECTS) - @ if [ "${DRIVER_DIRS}" = "osmesa" ] ; then \ - $(TOP)/bin/mklib -o $(OSMESA_LIB) -linker '$(CC)' \ - -major $(MESA_MAJOR) \ - -minor $(MESA_MINOR) -patch $(MESA_TINY) \ - -install $(LIB_DIR) $(MKLIB_OPTIONS) \ - $(OSMESA_LIB_DEPS) $(OSMESA16_OBJECTS) ; \ - else \ - $(TOP)/bin/mklib -o $(OSMESA_LIB) -linker '$(CC)' \ - -major $(MESA_MAJOR) \ - -minor $(MESA_MINOR) -patch $(GL_TINY) \ - -install $(LIB_DIR) $(MKLIB_OPTIONS) \ - $(OSMESA_LIB_DEPS) $(OSMESA_DRIVER_OBJECTS) ; \ - fi - - -###################################################################### -# 16 (or 32) bit/channel OSMesa - -# $(LIB_DIR)/$(OSMESA_LIB_NAME): $(OSMESA16_OBJECTS) -# $(TOP)/bin/mklib -o $(OSMESA_LIB) \ -# -major $(MESA_MAJOR) -minor $(MESA_MINOR) -patch $(MESA_TINY) \ -# -install $(LIB_DIR) \ -# $(MKLIB_OPTIONS) $(GL_LIB_DEPS) $(OSMESA16_OBJECTS) - - - -###################################################################### -# Generic stuff - -ALL_SOURCES = \ - $(GLAPI_SOURCES) \ - $(MAIN_SOURCES) \ - $(MATH_SOURCES) \ - $(ARRAY_CACHE_SOURCES) \ - $(TNL_SOURCES) \ - $(SHADER_SOURCES) \ - $(SWRAST_SOURCES) \ - $(SWRAST_SETUP_SOURCES) \ - $(ASM_C_SOURCES) \ - $(X86_SOURCES) \ - $(COMMON_DRIVER_SOURCES)\ - $(X11_DRIVER_SOURCES) \ - $(OSMESA_DRIVER_SOURCES) - - -SUBDIRS = array_cache drivers/dri glapi main math sparc swrast swrast_setup \ - tnl tnl_dd - - -# Update dependencies -depend: $(ALL_SOURCES) - @ echo "running $(MKDEP)" - @ touch depend - $(MKDEP) $(MKDEP_OPTIONS) $(DEFINES) $(INCLUDE_DIRS) $(ALL_SOURCES) \ - > /dev/null - - -# Emacs tags -tags: - etags `find . -name \*.[ch]` $(TOP)/include/GL/*.h - -clean: - -rm -f */*.o - -rm -f */*/*.o - -rm -f depend depend.bak mesa.a - -rm -f drivers/*/*.o - (cd drivers/dri ; $(MAKE) clean) - (cd x86 ; $(MAKE) clean) - (cd x86-64 ; $(MAKE) clean) - -include depend diff --git a/nx-X11/extras/Mesa/src/mesa/Makefile.DJ b/nx-X11/extras/Mesa/src/mesa/Makefile.DJ deleted file mode 100644 index 53c437070..000000000 --- a/nx-X11/extras/Mesa/src/mesa/Makefile.DJ +++ /dev/null @@ -1,168 +0,0 @@ -# Mesa 3-D graphics library -# Version: 5.1 -# -# Copyright (C) 1999-2003 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. - -# DOS/DJGPP core makefile v1.7 for Mesa -# -# Copyright (C) 2002 - Daniel Borca -# Email : dborca@users.sourceforge.net -# Web : http://www.geocities.com/dborca - - -# -# Available options: -# -# Environment variables: -# CFLAGS -# -# GLIDE path to Glide3 SDK; used with FX. -# default = $(TOP)/glide3 -# FX=1 build for 3dfx Glide3. Note that this disables -# compilation of most DMesa code and requires fxMesa. -# As a consequence, you'll need the DJGPP Glide3 -# library to build any application. -# default = no -# X86=1 optimize for x86 (if possible, use MMX, SSE, 3DNow). -# default = no -# -# Targets: -# all: build GL -# clean: remove object files -# - - - -.PHONY: all clean -.INTERMEDIATE: x86/gen_matypes.exe - -TOP = ../.. -GLIDE ?= $(TOP)/glide3 -LIBDIR = $(TOP)/lib -GL_LIB = libgl.a -GL_DXE = gl.dxe -GL_IMP = libigl.a - -export LD_LIBRARY_PATH := $(LD_LIBRARY_PATH);$(LIBDIR);$(GLIDE)/lib - -CC = gcc -CFLAGS += $(INCLUDE_DIRS) -CFLAGS += -DUSE_EXTERNAL_DXTN_LIB=1 -ifeq ($(FX),1) -CFLAGS += -D__DOS__ -CFLAGS += -I$(GLIDE)/include -DFX -LIBNAME = "Mesa/FX DJGPP" -else -LIBNAME = "Mesa DJGPP" -endif - -AR = ar -ARFLAGS = crus - -HAVEDXE3 = $(wildcard $(DJDIR)/bin/dxe3gen.exe) - -ifeq ($(wildcard $(addsuffix /rm.exe,$(subst ;, ,$(PATH)))),) -UNLINK = del $(subst /,\,$(1)) -else -UNLINK = $(RM) $(1) -endif - -include sources - -ifeq ($(X86),1) -CFLAGS += -DUSE_X86_ASM -CFLAGS += -DUSE_MMX_ASM -CFLAGS += -DUSE_SSE_ASM -CFLAGS += -DUSE_3DNOW_ASM -X86_SOURCES += $(X86_API) -else -X86_SOURCES = -endif - -DRIVER_SOURCES = \ - drivers/dos/dmesa.c -ifeq ($(FX),1) -DRIVER_SOURCES += \ - $(GLIDE_DRIVER_SOURCES) -else -DRIVER_SOURCES += \ - drivers/dos/video.c \ - drivers/dos/virtual.S \ - drivers/dos/vesa.c \ - drivers/dos/blit.S \ - drivers/dos/vga.c \ - drivers/dos/null.c \ - drivers/dos/dpmi.c -endif - -#DRIVER_SOURCES += $(OSMESA_DRIVER_SOURCES) - -SOURCES = $(CORE_SOURCES) $(X86_SOURCES) $(COMMON_DRIVER_SOURCES) $(DRIVER_SOURCES) - -OBJECTS = $(addsuffix .o,$(basename $(SOURCES))) - -X86_OBJECTS = $(addsuffix .o,$(basename $(X86_SOURCES))) - -.c.o: - $(CC) -o $@ $(CFLAGS) -c $< -.S.o: - $(CC) -o $@ $(CFLAGS) -c $< -.s.o: - $(CC) -o $@ $(CFLAGS) -x assembler-with-cpp -c $< - -all: $(LIBDIR)/$(GL_LIB) $(LIBDIR)/$(GL_DXE) $(LIBDIR)/$(GL_IMP) - -$(LIBDIR)/$(GL_LIB): $(OBJECTS) - $(AR) $(ARFLAGS) $@ $^ - -$(LIBDIR)/$(GL_DXE) $(LIBDIR)/$(GL_IMP): $(OBJECTS) -ifeq ($(HAVEDXE3),) - $(warning Missing DXE3 package... Skipping $(GL_DXE)) -else -ifeq ($(FX),1) - -dxe3gen -o $(LIBDIR)/$(GL_DXE) -Y $(LIBDIR)/$(GL_IMP) -D $(LIBNAME) -E _gl -E _DMesa -P glide3x.dxe -U $^ -else - -dxe3gen -o $(LIBDIR)/$(GL_DXE) -Y $(LIBDIR)/$(GL_IMP) -D $(LIBNAME) -E _gl -E _DMesa -U $^ -endif -endif - -$(X86_OBJECTS): x86/matypes.h - -x86/matypes.h: x86/gen_matypes.exe - $< > $@ - -x86/gen_matypes.exe: x86/gen_matypes.c - $(CC) -o $@ $(CFLAGS) -s $< - -clean: - -$(call UNLINK,array_cache/*.o) - -$(call UNLINK,glapi/*.o) - -$(call UNLINK,main/*.o) - -$(call UNLINK,math/*.o) - -$(call UNLINK,shader/*.o) - -$(call UNLINK,sparc/*.o) - -$(call UNLINK,ppc/*.o) - -$(call UNLINK,swrast/*.o) - -$(call UNLINK,swrast_setup/*.o) - -$(call UNLINK,tnl/*.o) - -$(call UNLINK,x86/*.o) - -$(call UNLINK,drivers/common/*.o) - -$(call UNLINK,drivers/dos/*.o) - -$(call UNLINK,drivers/glide/*.o) diff --git a/nx-X11/extras/Mesa/src/mesa/Makefile.mgw b/nx-X11/extras/Mesa/src/mesa/Makefile.mgw deleted file mode 100644 index ebec5c055..000000000 --- a/nx-X11/extras/Mesa/src/mesa/Makefile.mgw +++ /dev/null @@ -1,206 +0,0 @@ -# Mesa 3-D graphics library -# Version: 5.1 -# -# Copyright (C) 1999-2003 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. - -# MinGW core makefile v1.4 for Mesa -# -# Copyright (C) 2002 - Daniel Borca -# Email : dborca@users.sourceforge.net -# Web : http://www.geocities.com/dborca - - -# -# Available options: -# -# Environment variables: -# CFLAGS -# -# GLIDE path to Glide3 SDK; used with FX. -# default = $(TOP)/glide3 -# FX=1 build for 3dfx Glide3. Note that this disables -# compilation of most WMesa code and requires fxMesa. -# As a consequence, you'll need the Win32 Glide3 -# library to build any application. -# default = no -# ICD=1 build the installable client driver interface -# (windows opengl driver interface) -# default = no -# X86=1 optimize for x86 (if possible, use MMX, SSE, 3DNow). -# default = no -# -# Targets: -# all: build GL -# clean: remove object files -# - - - -.PHONY: all clean -.INTERMEDIATE: x86/gen_matypes.exe -.SUFFIXES: .rc .res - -# Set this to the prefix of your build tools, i.e. mingw32- -TOOLS_PREFIX = mingw32- - -TOP = ../.. -GLIDE ?= $(TOP)/glide3 -LIBDIR = $(TOP)/lib -ifeq ($(ICD),1) - GL_DLL = mesa32.dll - GL_IMP = libmesa32.a -else - GL_DLL = opengl32.dll - GL_IMP = libopengl32.a -endif - -LDLIBS = -lgdi32 - -CC = $(TOOLS_PREFIX)gcc -CFLAGS += -DBUILD_GL32 -D_OPENGL32_ -CFLAGS += $(INCLUDE_DIRS) -CFLAGS += -DUSE_EXTERNAL_DXTN_LIB=1 -ifeq ($(FX),1) - CFLAGS += -I$(GLIDE)/include -DFX - LDLIBS += -L$(GLIDE)/lib -lglide3x - GL_DEF = drivers/windows/fx/fxopengl.def - GL_RES = drivers/windows/fx/fx.rc -else - ifeq ($(ICD),1) - CFLAGS += -DUSE_MGL_NAMESPACE - GL_DEF = drivers/windows/icd/mesa.def - else - GL_DEF = drivers/windows/gdi/mesa.def - endif -endif - -AR = ar -ARFLAGS = crus - -UNLINK = del $(subst /,\,$(1)) -ifneq ($(wildcard $(addsuffix /rm.exe,$(subst ;, ,$(PATH)))),) -UNLINK = $(RM) $(1) -endif -ifneq ($(wildcard $(addsuffix /rm,$(subst :, ,$(PATH)))),) -UNLINK = $(RM) $(1) -endif - -include sources - -ifeq ($(X86),1) -CFLAGS += -DUSE_X86_ASM -CFLAGS += -DUSE_MMX_ASM -CFLAGS += -DUSE_SSE_ASM -CFLAGS += -DUSE_3DNOW_ASM -X86_SOURCES += $(X86_API) -else -X86_SOURCES = -endif - -ifeq ($(FX),1) -DRIVER_SOURCES = \ - $(GLIDE_DRIVER_SOURCES) \ - drivers/windows/fx/fxwgl.c -else -ifeq ($(ICD),1) -DRIVER_SOURCES = \ - drivers/windows/gdi/wmesa.c \ - drivers/windows/icd/icd.c -else -DRIVER_SOURCES = \ - drivers/windows/gdi/wmesa.c \ - drivers/windows/gdi/wgl.c -endif -endif - -SOURCES = $(CORE_SOURCES) $(X86_SOURCES) $(COMMON_DRIVER_SOURCES) $(DRIVER_SOURCES) - -OBJECTS = $(addsuffix .o,$(basename $(SOURCES))) - -X86_OBJECTS = $(addsuffix .o,$(basename $(X86_SOURCES))) - -RESOURCE = $(GL_RES:.rc=.res) - -.c.o: - $(CC) -o $@ $(CFLAGS) -c $< -.S.o: - $(CC) -o $@ $(CFLAGS) -c $< -.s.o: - $(CC) -o $@ $(CFLAGS) -x assembler-with-cpp -c $< -.rc.res: - windres -o $@ -Irc -Ocoff $< - -all: $(LIBDIR) $(LIBDIR)/$(GL_DLL) $(LIBDIR)/$(GL_IMP) - -$(LIBDIR): - mkdir -p $(LIBDIR) - -$(LIBDIR)/$(GL_DLL) $(LIBDIR)/$(GL_IMP): $(OBJECTS) $(RESOURCE) - $(TOOLS_PREFIX)dllwrap -o $(LIBDIR)/$(GL_DLL) --output-lib $(LIBDIR)/$(GL_IMP) \ - --target i386-mingw32 --def $(GL_DEF) -Wl,-enable-stdcall-fixup \ - $^ $(LDLIBS) - -$(X86_OBJECTS): x86/matypes.h - -x86/matypes.h: x86/gen_matypes.exe - $(subst /,\,$< > $@) - -x86/gen_matypes.exe: x86/gen_matypes.c - $(CC) -o $@ $(CFLAGS) -s $< - -# [dBorca] -# glapi_x86.S needs some adjustments -# in order to generate correct entrypoints -# Trick: change the following condition to -# be always false if you need C entrypoints -# with USE_X86_ASM (useful for trace/debug) -ifeq (1,1) -x86/glapi_x86.o: x86/glapi_x86.S - $(CC) -o $@ $(CFLAGS) -DSTDCALL_API -c $< -else -main/dispatch.o: main/dispatch.c - $(CC) -o $@ $(CFLAGS) -UUSE_X86_ASM -c $< -glapi/glapi.o: glapi/glapi.c - $(CC) -o $@ $(CFLAGS) -UUSE_X86_ASM -c $< -endif - -# [dBorca] -# if we want codegen, we have to stdcall -tnl/t_vtx_x86_gcc.o: tnl/t_vtx_x86_gcc.S - $(CC) -o $@ $(CFLAGS) -DSTDCALL_API -c $< - -clean: - -$(call UNLINK,array_cache/*.o) - -$(call UNLINK,glapi/*.o) - -$(call UNLINK,main/*.o) - -$(call UNLINK,math/*.o) - -$(call UNLINK,shader/*.o) - -$(call UNLINK,sparc/*.o) - -$(call UNLINK,ppc/*.o) - -$(call UNLINK,swrast/*.o) - -$(call UNLINK,swrast_setup/*.o) - -$(call UNLINK,tnl/*.o) - -$(call UNLINK,x86/*.o) - -$(call UNLINK,drivers/common/*.o) - -$(call UNLINK,drivers/glide/*.o) - -$(call UNLINK,drivers/windows/fx/*.o) - -$(call UNLINK,drivers/windows/fx/*.res) - -$(call UNLINK,drivers/windows/gdi/*.o) - -$(call UNLINK,drivers/windows/icd/*.o) diff --git a/nx-X11/extras/Mesa/src/mesa/array_cache/descrip.mms b/nx-X11/extras/Mesa/src/mesa/array_cache/descrip.mms deleted file mode 100644 index 3555f83d8..000000000 --- a/nx-X11/extras/Mesa/src/mesa/array_cache/descrip.mms +++ /dev/null @@ -1,37 +0,0 @@ -# Makefile for core library for VMS -# contributed by Jouk Jansen joukj@hrem.stm.tudelft.nl -# Last revision : 16 June 2003 - -.first - define gl [---.include.gl] - define math [-.math] - define array_cache [-.array_cache] - -.include [---]mms-config. - -##### MACROS ##### - -VPATH = RCS - -INCDIR = [---.include],[-.main],[-.glapi] -LIBDIR = [---.lib] -CFLAGS = /include=($(INCDIR),[])/define=(PTHREADS=1)/name=(as_is,short) - -SOURCES = ac_context.c ac_import.c - -OBJECTS = ac_context.obj,ac_import.obj -##### RULES ##### - -VERSION=Mesa V3.4 - -##### TARGETS ##### -# Make the library -$(LIBDIR)$(GL_LIB) : $(OBJECTS) - @ library $(LIBDIR)$(GL_LIB) $(OBJECTS) - -clean : - purge - delete *.obj;* - -ac_context.obj : ac_context.c -ac_import.obj : ac_import.c diff --git a/nx-X11/extras/Mesa/src/mesa/descrip.mms b/nx-X11/extras/Mesa/src/mesa/descrip.mms deleted file mode 100644 index a12e3fc1b..000000000 --- a/nx-X11/extras/Mesa/src/mesa/descrip.mms +++ /dev/null @@ -1,26 +0,0 @@ -# Makefile for Mesa for VMS -# contributed by Jouk Jansen joukj@hrem.stm.tudelft.nl - -all : - set default [.main] - $(MMS)$(MMSQUALIFIERS) - set default [-.glapi] - $(MMS)$(MMSQUALIFIERS) - set default [-.shader] - $(MMS)$(MMSQUALIFIERS) - set default [-.drivers.common] - $(MMS)$(MMSQUALIFIERS) - set default [-.x11] - $(MMS)$(MMSQUALIFIERS) - set default [-.osmesa] - $(MMS)$(MMSQUALIFIERS) - set default [--.math] - $(MMS)$(MMSQUALIFIERS) - set default [-.tnl] - $(MMS)$(MMSQUALIFIERS) - set default [-.swrast] - $(MMS)$(MMSQUALIFIERS) - set default [-.swrast_setup] - $(MMS)$(MMSQUALIFIERS) - set default [-.array_cache] - $(MMS)$(MMSQUALIFIERS) diff --git a/nx-X11/extras/Mesa/src/mesa/drivers/common/descrip.mms b/nx-X11/extras/Mesa/src/mesa/drivers/common/descrip.mms deleted file mode 100644 index aa4b8ae21..000000000 --- a/nx-X11/extras/Mesa/src/mesa/drivers/common/descrip.mms +++ /dev/null @@ -1,37 +0,0 @@ -# Makefile for core library for VMS -# contributed by Jouk Jansen joukj@hrem.stm.tudelft.nl -# Last revision : 16 June 2003 - -.first - define gl [----.include.gl] - define math [--.math] - define swrast [--.swrast] - -.include [----]mms-config. - -##### MACROS ##### - -VPATH = RCS - -INCDIR = [----.include],[--.main],[--.glapi],[--.shader] -LIBDIR = [----.lib] -CFLAGS = /include=($(INCDIR),[])/define=(PTHREADS=1)/name=(as_is,short) - -SOURCES = driverfuncs.c - -OBJECTS =driverfuncs.obj - -##### RULES ##### - -VERSION=Mesa V3.4 - -##### TARGETS ##### -# Make the library -$(LIBDIR)$(GL_LIB) : $(OBJECTS) - @ library $(LIBDIR)$(GL_LIB) $(OBJECTS) - -clean : - purge - delete *.obj;* - -driverfuncs.obj : driverfuncs.c diff --git a/nx-X11/extras/Mesa/src/mesa/drivers/dri/Makefile b/nx-X11/extras/Mesa/src/mesa/drivers/dri/Makefile deleted file mode 100644 index 8db675431..000000000 --- a/nx-X11/extras/Mesa/src/mesa/drivers/dri/Makefile +++ /dev/null @@ -1,34 +0,0 @@ -# src/mesa/drivers/dri/Makefile - -TOP = ../../../.. - -include $(TOP)/configs/current - - - -default: $(LIB_DIR) subdirs - - -$(LIB_DIR): - -mkdir $(LIB_DIR) - - -subdirs: - echo $(DRI_DIRS) - @for dir in $(DRI_DIRS) ; do \ - echo $$dir ; \ - (cd $$dir ; $(MAKE)) || exit 1; \ - done - - -install: - @for dir in $(DRI_DIRS) ; do \ - (cd $$dir ; $(MAKE) install) || exit 1; \ - done - - -clean: - @for dir in $(DRI_DIRS) ; do \ - (cd $$dir ; $(MAKE) clean) ; \ - done - -rm -f common/*.o diff --git a/nx-X11/extras/Mesa/src/mesa/drivers/dri/Makefile.template b/nx-X11/extras/Mesa/src/mesa/drivers/dri/Makefile.template deleted file mode 100644 index c8fef8aac..000000000 --- a/nx-X11/extras/Mesa/src/mesa/drivers/dri/Makefile.template +++ /dev/null @@ -1,109 +0,0 @@ -# -*-makefile-*- - -MESA_MODULES = $(TOP)/src/mesa/mesa.a - -COMMON_SOURCES = \ - ../../common/driverfuncs.c \ - ../common/utils.c \ - ../common/texmem.c \ - ../common/vblank.c \ - ../common/dri_util.c \ - ../common/xmlconfig.c \ - ../common/drirenderbuffer.c - -ifeq ($(WINDOW_SYSTEM),dri) -WINOBJ= -WINLIB= -INCLUDES = $(SHARED_INCLUDES) $(EXPAT_INCLUDES) \ - `pkg-config --cflags libdrm` - -OBJECTS = $(C_SOURCES:.c=.o) \ - $(ASM_SOURCES:.S=.o) - -else -WINOBJ= -WINLIB=-L$(MESA)/src/glx/mini -MINIGLX_INCLUDES = -I$(TOP)/src/glx/mini -INCLUDES = $(MINIGLX_INCLUDES) \ - -I$(DRM_SOURCE_PATH)/shared-core \ - -I$(DRM_SOURCE_PATH)/libdrm \ - $(SHARED_INCLUDES) - -OBJECTS = $(C_SOURCES:.c=.o) \ - $(MINIGLX_SOURCES:.c=.o) \ - $(ASM_SOURCES:.S=.o) -endif - - -### Include directories -SHARED_INCLUDES = \ - -I. \ - -I$(TOP)/src/mesa/drivers/dri/common \ - -Iserver \ - -I$(DRM_SOURCE_PATH)/shared-core \ - -I$(TOP)/include \ - -I$(TOP)/include/GL/internal \ - -I$(TOP)/src/mesa \ - -I$(TOP)/src/mesa/main \ - -I$(TOP)/src/mesa/glapi \ - -I$(TOP)/src/mesa/math \ - -I$(TOP)/src/mesa/transform \ - -I$(TOP)/src/mesa/shader \ - -I$(TOP)/src/mesa/swrast \ - -I$(TOP)/src/mesa/swrast_setup \ - -I$(TOP)/src/egl/main \ - -I$(TOP)/src/egl/drivers/dri - -##### RULES ##### - -.c.o: - $(CC) -c $(INCLUDES) $(CFLAGS) $(DEFINES) $< -o $@ - -.S.o: - $(CC) -c $(INCLUDES) $(CFLAGS) $(DEFINES) $< -o $@ - - -##### TARGETS ##### - -default: depend symlinks $(LIBNAME) $(LIB_DIR)/$(LIBNAME) - - -#$(LIB_DIR)/$(LIBNAME): $(OBJECTS) $(MESA_MODULES) $(WINOBJ) Makefile -# @echo BUILDING FOR: $(WINDOW_SYSTEM) -# $(TOP)/bin/mklib -o $(LIBNAME) -noprefix -install $(LIB_DIR) \ -# $(WINLIB) $(LIB_DEPS) $(WINOBJ) $(MESA_MODULES) $(OBJECTS) - -# XXX we should use the mklib script here -$(LIBNAME): $(OBJECTS) $(MESA_MODULES) $(WINOBJ) Makefile $(TOP)/src/mesa/drivers/dri/Makefile.template - rm -f $@ - $(CC) $(ARCH_FLAGS) -o $@ -shared $(OBJECTS) $(MESA_MODULES) $(WINOBJ) $(DRI_LIB_DEPS) - - -$(LIB_DIR)/$(LIBNAME): $(LIBNAME) - install $(LIBNAME) $(LIB_DIR) - - - -# Run 'make depend' to update the dependencies if you change -# what's included by any source file. -.PHONY: depend -depend: $(C_SOURCES) $(ASM_SOURCES) $(SYMLINKS) - touch depend - $(MKDEP) $(MKDEP_OPTIONS) $(DEFINES) $(INCLUDES) $(C_SOURCES) $(ASM_SOURCES) \ - > /dev/null - - -# Emacs tags -tags: - etags `find . -name \*.[ch]` `find ../include` - - -# Remove .o and backup files -clean: - -rm -f *.o */*.o *~ *.so *~ server/*.o $(SYMLINKS) - -rm -f depend depend.bak - -install: $(LIBNAME) - install $(LIBNAME) /usr/X11R6/lib/modules/dri/$(LIBNAME) - -include depend diff --git a/nx-X11/extras/Mesa/src/mesa/drivers/dri/common/depthtmp.h b/nx-X11/extras/Mesa/src/mesa/drivers/dri/common/depthtmp.h deleted file mode 100644 index 1875d157b..000000000 --- a/nx-X11/extras/Mesa/src/mesa/drivers/dri/common/depthtmp.h +++ /dev/null @@ -1,253 +0,0 @@ - -/* - * Notes: - * 1. These functions plug into the gl_renderbuffer structure. - * 2. The 'values' parameter always points to GLuint values, regardless of - * the actual Z buffer depth. - */ - - -#include "spantmp_common.h" - -#ifndef DBG -#define DBG 0 -#endif - -#ifndef HAVE_HW_DEPTH_SPANS -#define HAVE_HW_DEPTH_SPANS 0 -#endif - -#ifndef HAVE_HW_DEPTH_PIXELS -#define HAVE_HW_DEPTH_PIXELS 0 -#endif - -static void TAG(WriteDepthSpan)( GLcontext *ctx, - struct gl_renderbuffer *rb, - GLuint n, GLint x, GLint y, - const void *values, - const GLubyte mask[] ) -{ - HW_WRITE_LOCK() - { - const GLuint *depth = (const GLuint *) values; - GLint x1; - GLint n1; - LOCAL_DEPTH_VARS; - - y = Y_FLIP( y ); - -#if HAVE_HW_DEPTH_SPANS - (void) x1; (void) n1; - - if ( DBG ) fprintf( stderr, "WriteDepthSpan 0..%d (x1 %d)\n", - (int)n, (int)x ); - - WRITE_DEPTH_SPAN(); -#else - HW_CLIPLOOP() - { - GLint i = 0; - CLIPSPAN( x, y, n, x1, n1, i ); - - if ( DBG ) fprintf( stderr, "WriteDepthSpan %d..%d (x1 %d) (mask %p)\n", - (int)i, (int)n1, (int)x1, mask ); - - if ( mask ) { - for ( ; n1>0 ; i++, x1++, n1-- ) { - if ( mask[i] ) WRITE_DEPTH( x1, y, depth[i] ); - } - } else { - for ( ; n1>0 ; i++, x1++, n1-- ) { - WRITE_DEPTH( x1, y, depth[i] ); - } - } - } - HW_ENDCLIPLOOP(); -#endif - } - HW_WRITE_UNLOCK(); -} - - -#if HAVE_HW_DEPTH_SPANS -/* implement MonoWriteDepthSpan() in terms of WriteDepthSpan() */ -static void -TAG(WriteMonoDepthSpan)( GLcontext *ctx, struct gl_renderbuffer *rb, - GLuint n, GLint x, GLint y, - const void *value, const GLubyte mask[] ) -{ - const GLuint depthVal = *((GLuint *) value); - GLuint depths[MAX_WIDTH]; - GLuint i; - for (i = 0; i < n; i++) - depths[i] = depthVal; - TAG(WriteDepthSpan)(ctx, rb, n, x, y, depths, mask); -} -#else -static void TAG(WriteMonoDepthSpan)( GLcontext *ctx, - struct gl_renderbuffer *rb, - GLuint n, GLint x, GLint y, - const void *value, - const GLubyte mask[] ) -{ - HW_WRITE_LOCK() - { - const GLuint depth = *((GLuint *) value); - GLint x1; - GLint n1; - LOCAL_DEPTH_VARS; - - y = Y_FLIP( y ); - - HW_CLIPLOOP() - { - GLint i = 0; - CLIPSPAN( x, y, n, x1, n1, i ); - - if ( DBG ) fprintf( stderr, "%s %d..%d (x1 %d) = %u\n", - __FUNCTION__, (int)i, (int)n1, (int)x1, (GLuint)depth ); - - if ( mask ) { - for ( ; n1>0 ; i++, x1++, n1-- ) { - if ( mask[i] ) WRITE_DEPTH( x1, y, depth ); - } - } else { - for ( ; n1>0 ; x1++, n1-- ) { - WRITE_DEPTH( x1, y, depth ); - } - } - } - HW_ENDCLIPLOOP(); - } - HW_WRITE_UNLOCK(); -} -#endif - - -static void TAG(WriteDepthPixels)( GLcontext *ctx, - struct gl_renderbuffer *rb, - GLuint n, - const GLint x[], - const GLint y[], - const void *values, - const GLubyte mask[] ) -{ - HW_WRITE_LOCK() - { - const GLuint *depth = (const GLuint *) values; - GLuint i; - LOCAL_DEPTH_VARS; - - if ( DBG ) fprintf( stderr, "WriteDepthPixels\n" ); - -#if HAVE_HW_DEPTH_PIXELS - (void) i; - - WRITE_DEPTH_PIXELS(); -#else - HW_CLIPLOOP() - { - if ( mask ) { - for ( i = 0 ; i < n ; i++ ) { - if ( mask[i] ) { - const int fy = Y_FLIP( y[i] ); - if ( CLIPPIXEL( x[i], fy ) ) - WRITE_DEPTH( x[i], fy, depth[i] ); - } - } - } - else { - for ( i = 0 ; i < n ; i++ ) { - const int fy = Y_FLIP( y[i] ); - if ( CLIPPIXEL( x[i], fy ) ) - WRITE_DEPTH( x[i], fy, depth[i] ); - } - } - } - HW_ENDCLIPLOOP(); -#endif - } - HW_WRITE_UNLOCK(); -} - - -/* Read depth spans and pixels - */ -static void TAG(ReadDepthSpan)( GLcontext *ctx, - struct gl_renderbuffer *rb, - GLuint n, GLint x, GLint y, - void *values ) -{ - HW_READ_LOCK() - { - GLuint *depth = (GLuint *) values; - GLint x1, n1; - LOCAL_DEPTH_VARS; - - y = Y_FLIP( y ); - - if ( DBG ) fprintf( stderr, "ReadDepthSpan\n" ); - -#if HAVE_HW_DEPTH_SPANS - (void) x1; (void) n1; - - READ_DEPTH_SPAN(); -#else - HW_CLIPLOOP() - { - GLint i = 0; - CLIPSPAN( x, y, n, x1, n1, i ); - for ( ; n1>0 ; i++, n1-- ) { - READ_DEPTH( depth[i], x+i, y ); - } - } - HW_ENDCLIPLOOP(); -#endif - } - HW_READ_UNLOCK(); -} - -static void TAG(ReadDepthPixels)( GLcontext *ctx, - struct gl_renderbuffer *rb, - GLuint n, - const GLint x[], const GLint y[], - void *values ) -{ - HW_READ_LOCK() - { - GLuint *depth = (GLuint *) values; - GLuint i; - LOCAL_DEPTH_VARS; - - if ( DBG ) fprintf( stderr, "ReadDepthPixels\n" ); - -#if HAVE_HW_DEPTH_PIXELS - (void) i; - - READ_DEPTH_PIXELS(); -#else - HW_CLIPLOOP() - { - for ( i = 0 ; i < n ;i++ ) { - int fy = Y_FLIP( y[i] ); - if ( CLIPPIXEL( x[i], fy ) ) - READ_DEPTH( depth[i], x[i], fy ); - } - } - HW_ENDCLIPLOOP(); -#endif - } - HW_READ_UNLOCK(); -} - - -#if HAVE_HW_DEPTH_SPANS -#undef WRITE_DEPTH_SPAN -#undef WRITE_DEPTH_PIXELS -#undef READ_DEPTH_SPAN -#undef READ_DEPTH_PIXELS -#else -#undef WRITE_DEPTH -#undef READ_DEPTH -#endif -#undef TAG diff --git a/nx-X11/extras/Mesa/src/mesa/drivers/dri/common/dri_util.c b/nx-X11/extras/Mesa/src/mesa/drivers/dri/common/dri_util.c deleted file mode 100644 index 3edeb03f9..000000000 --- a/nx-X11/extras/Mesa/src/mesa/drivers/dri/common/dri_util.c +++ /dev/null @@ -1,1073 +0,0 @@ -/* $XFree86: xc/lib/GL/dri/dri_util.c,v 1.7 2003/04/28 17:01:25 dawes Exp $ */ -/** - * \file dri_util.c - * DRI utility functions. - * - * This module acts as glue between GLX and the actual hardware driver. A DRI - * driver doesn't really \e have to use any of this - it's optional. But, some - * useful stuff is done here that otherwise would have to be duplicated in most - * drivers. - * - * Basically, these utility functions take care of some of the dirty details of - * screen initialization, context creation, context binding, DRM setup, etc. - * - * These functions are compiled into each DRI driver so libGL.so knows nothing - * about them. - */ - - -#include -#include -#include -#include -#include - -#ifndef MAP_FAILED -#define MAP_FAILED ((void *)-1) -#endif - -#include "imports.h" -#define None 0 - -#include "dri_util.h" -#include "drm_sarea.h" - -#ifndef GLX_OML_sync_control -typedef GLboolean ( * PFNGLXGETMSCRATEOMLPROC) (__DRInativeDisplay *dpy, __DRIid drawable, int32_t *numerator, int32_t *denominator); -#endif - -/* This pointer *must* be set by the driver's __driCreateNewScreen funciton! - */ -const __DRIinterfaceMethods * dri_interface = NULL; - -/** - * This is used in a couple of places that call \c driCreateNewDrawable. - */ -static const int empty_attribute_list[1] = { None }; - - -/** - * Cached copy of the internal API version used by libGL and the client-side - * DRI driver. - */ -static int api_ver = 0; - -/* forward declarations */ -static int driQueryFrameTracking( __DRInativeDisplay * dpy, void * priv, - int64_t * sbc, int64_t * missedFrames, float * lastMissedUsage, - float * usage ); - -static void *driCreateNewDrawable(__DRInativeDisplay *dpy, const __GLcontextModes *modes, - __DRIid draw, __DRIdrawable *pdraw, int renderType, const int *attrs); - -static void driDestroyDrawable(__DRInativeDisplay *dpy, void *drawablePrivate); - - -/** - * Print message to \c stderr if the \c LIBGL_DEBUG environment variable - * is set. - * - * Is called from the drivers. - * - * \param f \c printf like format string. - */ -void -__driUtilMessage(const char *f, ...) -{ - va_list args; - - if (getenv("LIBGL_DEBUG")) { - fprintf(stderr, "libGL error: \n"); - va_start(args, f); - vfprintf(stderr, f, args); - va_end(args); - fprintf(stderr, "\n"); - } -} - - -/*****************************************************************/ -/** \name Drawable list management */ -/*****************************************************************/ -/*@{*/ - -static GLboolean __driAddDrawable(void *drawHash, __DRIdrawable *pdraw) -{ - __DRIdrawablePrivate *pdp = (__DRIdrawablePrivate *)pdraw->private; - - if (drmHashInsert(drawHash, pdp->draw, pdraw)) - return GL_FALSE; - - return GL_TRUE; -} - -static __DRIdrawable *__driFindDrawable(void *drawHash, __DRIid draw) -{ - int retcode; - __DRIdrawable *pdraw; - - retcode = drmHashLookup(drawHash, draw, (void *)&pdraw); - if (retcode) - return NULL; - - return pdraw; -} - - -/** - * Find drawables in the local hash that have been destroyed on the - * server. - * - * \param drawHash Hash-table containing all know drawables. - */ -static void __driGarbageCollectDrawables(void *drawHash) -{ - __DRIid draw; - __DRInativeDisplay *dpy; - __DRIdrawable *pdraw; - - if (drmHashFirst(drawHash, &draw, (void *)&pdraw) == 1) { - do { - __DRIdrawablePrivate *pdp = (__DRIdrawablePrivate *)pdraw->private; - dpy = pdp->driScreenPriv->display; - if (! (*dri_interface->windowExists)(dpy, draw)) { - /* Destroy the local drawable data, if the drawable no - longer exists in the Xserver */ - (*pdraw->destroyDrawable)(dpy, pdraw->private); - _mesa_free(pdraw); - } - } while (drmHashNext(drawHash, &draw, (void *)&pdraw) == 1); - } -} - -/*@}*/ - - -/*****************************************************************/ -/** \name Context (un)binding functions */ -/*****************************************************************/ -/*@{*/ - -/** - * Unbind context. - * - * \param dpy the display handle. - * \param scrn the screen number. - * \param draw drawable. - * \param read Current reading drawable. - * \param gc context. - * - * \return \c GL_TRUE on success, or \c GL_FALSE on failure. - * - * \internal - * This function calls __DriverAPIRec::UnbindContext, and then decrements - * __DRIdrawablePrivateRec::refcount which must be non-zero for a successful - * return. - * - * While casting the opaque private pointers associated with the parameters - * into their respective real types it also assures they are not \c NULL. - */ -static GLboolean driUnbindContext(__DRInativeDisplay *dpy, int scrn, - __DRIid draw, __DRIid read, - __DRIcontext *ctx) -{ - __DRIscreen *pDRIScreen; - __DRIdrawable *pdraw; - __DRIdrawable *pread; - __DRIcontextPrivate *pcp; - __DRIscreenPrivate *psp; - __DRIdrawablePrivate *pdp; - __DRIdrawablePrivate *prp; - - /* - ** Assume error checking is done properly in glXMakeCurrent before - ** calling driUnbindContext. - */ - - if (ctx == NULL || draw == None || read == None) { - /* ERROR!!! */ - return GL_FALSE; - } - - pDRIScreen = (*dri_interface->getScreen)(dpy, scrn); - if ( (pDRIScreen == NULL) || (pDRIScreen->private == NULL) ) { - /* ERROR!!! */ - return GL_FALSE; - } - - psp = (__DRIscreenPrivate *)pDRIScreen->private; - pcp = (__DRIcontextPrivate *)ctx->private; - - pdraw = __driFindDrawable(psp->drawHash, draw); - if (!pdraw) { - /* ERROR!!! */ - return GL_FALSE; - } - pdp = (__DRIdrawablePrivate *)pdraw->private; - - pread = __driFindDrawable(psp->drawHash, read); - if (!pread) { - /* ERROR!!! */ - return GL_FALSE; - } - prp = (__DRIdrawablePrivate *)pread->private; - - - /* Let driver unbind drawable from context */ - (*psp->DriverAPI.UnbindContext)(pcp); - - - if (pdp->refcount == 0) { - /* ERROR!!! */ - return GL_FALSE; - } - - pdp->refcount--; - - if (prp != pdp) { - if (prp->refcount == 0) { - /* ERROR!!! */ - return GL_FALSE; - } - - prp->refcount--; - } - - - /* XXX this is disabled so that if we call SwapBuffers on an unbound - * window we can determine the last context bound to the window and - * use that context's lock. (BrianP, 2-Dec-2000) - */ -#if 0 - /* Unbind the drawable */ - pcp->driDrawablePriv = NULL; - pdp->driContextPriv = &psp->dummyContextPriv; -#endif - - return GL_TRUE; -} - - -/** - * This function takes both a read buffer and a draw buffer. This is needed - * for \c glXMakeCurrentReadSGI or GLX 1.3's \c glXMakeContextCurrent - * function. - * - * \bug This function calls \c driCreateNewDrawable in two places with the - * \c renderType hard-coded to \c GLX_WINDOW_BIT. Some checking might - * be needed in those places when support for pbuffers and / or pixmaps - * is added. Is it safe to assume that the drawable is a window? - */ -static GLboolean DoBindContext(__DRInativeDisplay *dpy, - __DRIid draw, __DRIid read, - __DRIcontext *ctx, const __GLcontextModes * modes, - __DRIscreenPrivate *psp) -{ - __DRIdrawable *pdraw; - __DRIdrawablePrivate *pdp; - __DRIdrawable *pread; - __DRIdrawablePrivate *prp; - __DRIcontextPrivate * const pcp = ctx->private; - - - /* Find the _DRIdrawable which corresponds to the writing drawable. */ - pdraw = __driFindDrawable(psp->drawHash, draw); - if (!pdraw) { - /* Allocate a new drawable */ - pdraw = (__DRIdrawable *)_mesa_malloc(sizeof(__DRIdrawable)); - if (!pdraw) { - /* ERROR!!! */ - return GL_FALSE; - } - - /* Create a new drawable */ - driCreateNewDrawable(dpy, modes, draw, pdraw, GLX_WINDOW_BIT, - empty_attribute_list); - if (!pdraw->private) { - /* ERROR!!! */ - _mesa_free(pdraw); - return GL_FALSE; - } - - } - pdp = (__DRIdrawablePrivate *) pdraw->private; - - /* Find the _DRIdrawable which corresponds to the reading drawable. */ - if (read == draw) { - /* read buffer == draw buffer */ - prp = pdp; - } - else { - pread = __driFindDrawable(psp->drawHash, read); - if (!pread) { - /* Allocate a new drawable */ - pread = (__DRIdrawable *)_mesa_malloc(sizeof(__DRIdrawable)); - if (!pread) { - /* ERROR!!! */ - return GL_FALSE; - } - - /* Create a new drawable */ - driCreateNewDrawable(dpy, modes, read, pread, GLX_WINDOW_BIT, - empty_attribute_list); - if (!pread->private) { - /* ERROR!!! */ - _mesa_free(pread); - return GL_FALSE; - } - } - prp = (__DRIdrawablePrivate *) pread->private; - } - - /* Bind the drawable to the context */ - pcp->driDrawablePriv = pdp; - pdp->driContextPriv = pcp; - pdp->refcount++; - if ( pdp != prp ) { - prp->refcount++; - } - - /* - ** Now that we have a context associated with this drawable, we can - ** initialize the drawable information if has not been done before. - */ - if (!pdp->pStamp || *pdp->pStamp != pdp->lastStamp) { - DRM_SPINLOCK(&psp->pSAREA->drawable_lock, psp->drawLockID); - __driUtilUpdateDrawableInfo(pdp); - DRM_SPINUNLOCK(&psp->pSAREA->drawable_lock, psp->drawLockID); - } - - /* Call device-specific MakeCurrent */ - (*psp->DriverAPI.MakeCurrent)(pcp, pdp, prp); - - return GL_TRUE; -} - - -/** - * This function takes both a read buffer and a draw buffer. This is needed - * for \c glXMakeCurrentReadSGI or GLX 1.3's \c glXMakeContextCurrent - * function. - */ -static GLboolean driBindContext(__DRInativeDisplay *dpy, int scrn, - __DRIid draw, __DRIid read, - __DRIcontext * ctx) -{ - __DRIscreen *pDRIScreen; - - /* - ** Assume error checking is done properly in glXMakeCurrent before - ** calling driBindContext. - */ - - if (ctx == NULL || draw == None || read == None) { - /* ERROR!!! */ - return GL_FALSE; - } - - pDRIScreen = (*dri_interface->getScreen)(dpy, scrn); - if ( (pDRIScreen == NULL) || (pDRIScreen->private == NULL) ) { - /* ERROR!!! */ - return GL_FALSE; - } - - return DoBindContext( dpy, draw, read, ctx, ctx->mode, - (__DRIscreenPrivate *)pDRIScreen->private ); -} -/*@}*/ - - -/*****************************************************************/ -/** \name Drawable handling functions */ -/*****************************************************************/ -/*@{*/ - -/** - * Update private drawable information. - * - * \param pdp pointer to the private drawable information to update. - * - * This function basically updates the __DRIdrawablePrivate struct's - * cliprect information by calling \c __DRIinterfaceMethods::getDrawableInfo. - * This is usually called by the DRI_VALIDATE_DRAWABLE_INFO macro which - * compares the __DRIdrwablePrivate pStamp and lastStamp values. If - * the values are different that means we have to update the clipping - * info. - */ -void -__driUtilUpdateDrawableInfo(__DRIdrawablePrivate *pdp) -{ - __DRIscreenPrivate *psp; - __DRIcontextPrivate *pcp = pdp->driContextPriv; - - if (!pcp || (pdp != pcp->driDrawablePriv)) { - /* ERROR!!! */ - return; - } - - psp = pdp->driScreenPriv; - if (!psp) { - /* ERROR!!! */ - return; - } - - if (pdp->pClipRects) { - _mesa_free(pdp->pClipRects); - } - - if (pdp->pBackClipRects) { - _mesa_free(pdp->pBackClipRects); - } - - DRM_SPINUNLOCK(&psp->pSAREA->drawable_lock, psp->drawLockID); - - if (!__driFindDrawable(psp->drawHash, pdp->draw) || - ! (*dri_interface->getDrawableInfo)(pdp->display, pdp->screen, pdp->draw, - &pdp->index, &pdp->lastStamp, - &pdp->x, &pdp->y, &pdp->w, &pdp->h, - &pdp->numClipRects, &pdp->pClipRects, - &pdp->backX, - &pdp->backY, - &pdp->numBackClipRects, - &pdp->pBackClipRects )) { - /* Error -- eg the window may have been destroyed. Keep going - * with no cliprects. - */ - pdp->pStamp = &pdp->lastStamp; /* prevent endless loop */ - pdp->numClipRects = 0; - pdp->pClipRects = NULL; - pdp->numBackClipRects = 0; - pdp->pBackClipRects = NULL; - } - else - pdp->pStamp = &(psp->pSAREA->drawableTable[pdp->index].stamp); - - DRM_SPINLOCK(&psp->pSAREA->drawable_lock, psp->drawLockID); - -} - -/*@}*/ - -/*****************************************************************/ -/** \name GLX callbacks */ -/*****************************************************************/ -/*@{*/ - -/** - * Swap buffers. - * - * \param dpy the display handle. - * \param drawablePrivate opaque pointer to the per-drawable private info. - * - * \internal - * This function calls __DRIdrawablePrivate::swapBuffers. - * - * Is called directly from glXSwapBuffers(). - */ -static void driSwapBuffers( __DRInativeDisplay *dpy, void *drawablePrivate ) -{ - __DRIdrawablePrivate *dPriv = (__DRIdrawablePrivate *) drawablePrivate; - dPriv->swapBuffers(dPriv); - (void) dpy; -} - -/** - * Called directly from a number of higher-level GLX functions. - */ -static int driGetMSC( void *screenPrivate, int64_t *msc ) -{ - __DRIscreenPrivate *sPriv = (__DRIscreenPrivate *) screenPrivate; - - return sPriv->DriverAPI.GetMSC( sPriv, msc ); -} - -/** - * Called directly from a number of higher-level GLX functions. - */ -static int driGetSBC( __DRInativeDisplay *dpy, void *drawablePrivate, int64_t *sbc ) -{ - __DRIdrawablePrivate *dPriv = (__DRIdrawablePrivate *) drawablePrivate; - __DRIswapInfo sInfo; - int status; - - - status = dPriv->driScreenPriv->DriverAPI.GetSwapInfo( dPriv, & sInfo ); - *sbc = sInfo.swap_count; - - return status; -} - -static int driWaitForSBC( __DRInativeDisplay * dpy, void *drawablePriv, - int64_t target_sbc, - int64_t * msc, int64_t * sbc ) -{ - __DRIdrawablePrivate *dPriv = (__DRIdrawablePrivate *) drawablePriv; - - return dPriv->driScreenPriv->DriverAPI.WaitForSBC( dPriv, target_sbc, - msc, sbc ); -} - -static int driWaitForMSC( __DRInativeDisplay * dpy, void *drawablePriv, - int64_t target_msc, - int64_t divisor, int64_t remainder, - int64_t * msc, int64_t * sbc ) -{ - __DRIdrawablePrivate *dPriv = (__DRIdrawablePrivate *) drawablePriv; - __DRIswapInfo sInfo; - int status; - - - status = dPriv->driScreenPriv->DriverAPI.WaitForMSC( dPriv, target_msc, - divisor, remainder, - msc ); - - /* GetSwapInfo() may not be provided by the driver if GLX_SGI_video_sync - * is supported but GLX_OML_sync_control is not. Therefore, don't return - * an error value if GetSwapInfo() is not implemented. - */ - if ( status == 0 - && dPriv->driScreenPriv->DriverAPI.GetSwapInfo ) { - status = dPriv->driScreenPriv->DriverAPI.GetSwapInfo( dPriv, & sInfo ); - *sbc = sInfo.swap_count; - } - - return status; -} - -static int64_t driSwapBuffersMSC( __DRInativeDisplay * dpy, void *drawablePriv, - int64_t target_msc, - int64_t divisor, int64_t remainder ) -{ - __DRIdrawablePrivate *dPriv = (__DRIdrawablePrivate *) drawablePriv; - - return dPriv->driScreenPriv->DriverAPI.SwapBuffersMSC( dPriv, target_msc, - divisor, - remainder ); -} - - -/** - * This is called via __DRIscreenRec's createNewDrawable pointer. - */ -static void *driCreateNewDrawable(__DRInativeDisplay *dpy, - const __GLcontextModes *modes, - __DRIid draw, - __DRIdrawable *pdraw, - int renderType, - const int *attrs) -{ - __DRIscreen * const pDRIScreen = (*dri_interface->getScreen)(dpy, modes->screen); - __DRIscreenPrivate *psp; - __DRIdrawablePrivate *pdp; - - - pdraw->private = NULL; - - /* Since pbuffers are not yet supported, no drawable attributes are - * supported either. - */ - (void) attrs; - - if ( (pDRIScreen == NULL) || (pDRIScreen->private == NULL) ) { - return NULL; - } - - pdp = (__DRIdrawablePrivate *)_mesa_malloc(sizeof(__DRIdrawablePrivate)); - if (!pdp) { - return NULL; - } - - if (!(*dri_interface->createDrawable)(dpy, modes->screen, draw, &pdp->hHWDrawable)) { - _mesa_free(pdp); - return NULL; - } - - pdp->draw = draw; - pdp->pdraw = pdraw; - pdp->refcount = 0; - pdp->pStamp = NULL; - pdp->lastStamp = 0; - pdp->index = 0; - pdp->x = 0; - pdp->y = 0; - pdp->w = 0; - pdp->h = 0; - pdp->numClipRects = 0; - pdp->numBackClipRects = 0; - pdp->pClipRects = NULL; - pdp->pBackClipRects = NULL; - pdp->display = dpy; - pdp->screen = modes->screen; - - psp = (__DRIscreenPrivate *)pDRIScreen->private; - pdp->driScreenPriv = psp; - pdp->driContextPriv = &psp->dummyContextPriv; - - if (!(*psp->DriverAPI.CreateBuffer)(psp, pdp, modes, - renderType == GLX_PIXMAP_BIT)) { - (void)(*dri_interface->destroyDrawable)(dpy, modes->screen, pdp->draw); - _mesa_free(pdp); - return NULL; - } - - pdraw->private = pdp; - pdraw->destroyDrawable = driDestroyDrawable; - pdraw->swapBuffers = driSwapBuffers; /* called by glXSwapBuffers() */ - - pdraw->getSBC = driGetSBC; - pdraw->waitForSBC = driWaitForSBC; - pdraw->waitForMSC = driWaitForMSC; - pdraw->swapBuffersMSC = driSwapBuffersMSC; - pdraw->frameTracking = NULL; - pdraw->queryFrameTracking = driQueryFrameTracking; - - /* This special default value is replaced with the configured - * default value when the drawable is first bound to a direct - * rendering context. - */ - pdraw->swap_interval = (unsigned)-1; - - pdp->swapBuffers = psp->DriverAPI.SwapBuffers; - - /* Add pdraw to drawable list */ - if (!__driAddDrawable(psp->drawHash, pdraw)) { - /* ERROR!!! */ - (*pdraw->destroyDrawable)(dpy, pdp); - _mesa_free(pdp); - pdp = NULL; - pdraw->private = NULL; - } - - return (void *) pdp; -} - -static __DRIdrawable *driGetDrawable(__DRInativeDisplay *dpy, __DRIid draw, - void *screenPrivate) -{ - __DRIscreenPrivate *psp = (__DRIscreenPrivate *) screenPrivate; - - /* - ** Make sure this routine returns NULL if the drawable is not bound - ** to a direct rendering context! - */ - return __driFindDrawable(psp->drawHash, draw); -} - -static void driDestroyDrawable(__DRInativeDisplay *dpy, void *drawablePrivate) -{ - __DRIdrawablePrivate *pdp = (__DRIdrawablePrivate *) drawablePrivate; - __DRIscreenPrivate *psp = pdp->driScreenPriv; - int scrn = psp->myNum; - - if (pdp) { - (*psp->DriverAPI.DestroyBuffer)(pdp); - if ((*dri_interface->windowExists)(dpy, pdp->draw)) - (void)(*dri_interface->destroyDrawable)(dpy, scrn, pdp->draw); - drmHashDelete(psp->drawHash, pdp->draw); - if (pdp->pClipRects) { - _mesa_free(pdp->pClipRects); - pdp->pClipRects = NULL; - } - if (pdp->pBackClipRects) { - _mesa_free(pdp->pBackClipRects); - pdp->pBackClipRects = NULL; - } - _mesa_free(pdp); - } -} - -/*@}*/ - - -/*****************************************************************/ -/** \name Context handling functions */ -/*****************************************************************/ -/*@{*/ - -/** - * Destroy the per-context private information. - * - * \param dpy the display handle. - * \param scrn the screen number. - * \param contextPrivate opaque pointer to the per-drawable private info. - * - * \internal - * This function calls __DriverAPIRec::DestroyContext on \p contextPrivate, calls - * drmDestroyContext(), and finally frees \p contextPrivate. - */ -static void driDestroyContext(__DRInativeDisplay *dpy, int scrn, void *contextPrivate) -{ - __DRIcontextPrivate *pcp = (__DRIcontextPrivate *) contextPrivate; - - if (pcp) { - (*pcp->driScreenPriv->DriverAPI.DestroyContext)(pcp); - __driGarbageCollectDrawables(pcp->driScreenPriv->drawHash); - (void) (*dri_interface->destroyContext)(dpy, scrn, pcp->contextID); - _mesa_free(pcp); - } -} - - -/** - * Create the per-drawable private driver information. - * - * \param dpy The display handle. - * \param modes Mode used to create the new context. - * \param render_type Type of rendering target. \c GLX_RGBA is the only - * type likely to ever be supported for direct-rendering. - * \param sharedPrivate The shared context dependent methods or \c NULL if - * non-existent. - * \param pctx DRI context to receive the context dependent methods. - * - * \returns An opaque pointer to the per-context private information on - * success, or \c NULL on failure. - * - * \internal - * This function allocates and fills a __DRIcontextPrivateRec structure. It - * performs some device independent initialization and passes all the - * relevent information to __DriverAPIRec::CreateContext to create the - * context. - * - */ -static void * -driCreateNewContext(__DRInativeDisplay *dpy, const __GLcontextModes *modes, - int render_type, void *sharedPrivate, __DRIcontext *pctx) -{ - __DRIscreen *pDRIScreen; - __DRIcontextPrivate *pcp; - __DRIcontextPrivate *pshare = (__DRIcontextPrivate *) sharedPrivate; - __DRIscreenPrivate *psp; - void * const shareCtx = (pshare != NULL) ? pshare->driverPrivate : NULL; - - pDRIScreen = (*dri_interface->getScreen)(dpy, modes->screen); - if ( (pDRIScreen == NULL) || (pDRIScreen->private == NULL) ) { - /* ERROR!!! */ - return NULL; - } - - psp = (__DRIscreenPrivate *)pDRIScreen->private; - - pcp = (__DRIcontextPrivate *)_mesa_malloc(sizeof(__DRIcontextPrivate)); - if (!pcp) { - return NULL; - } - - if (! (*dri_interface->createContext)(dpy, modes->screen, modes->fbconfigID, - &pcp->contextID, &pcp->hHWContext)) { - _mesa_free(pcp); - return NULL; - } - - pcp->display = dpy; - pcp->driScreenPriv = psp; - pcp->driDrawablePriv = NULL; - - /* When the first context is created for a screen, initialize a "dummy" - * context. - */ - - if (!psp->dummyContextPriv.driScreenPriv) { - psp->dummyContextPriv.contextID = 0; - psp->dummyContextPriv.hHWContext = psp->pSAREA->dummy_context; - psp->dummyContextPriv.driScreenPriv = psp; - psp->dummyContextPriv.driDrawablePriv = NULL; - psp->dummyContextPriv.driverPrivate = NULL; - /* No other fields should be used! */ - } - - pctx->destroyContext = driDestroyContext; - pctx->bindContext = driBindContext; - pctx->unbindContext = driUnbindContext; - - if ( !(*psp->DriverAPI.CreateContext)(modes, pcp, shareCtx) ) { - (void) (*dri_interface->destroyContext)(dpy, modes->screen, - pcp->contextID); - _mesa_free(pcp); - return NULL; - } - - __driGarbageCollectDrawables(pcp->driScreenPriv->drawHash); - - return pcp; -} -/*@}*/ - - -/*****************************************************************/ -/** \name Screen handling functions */ -/*****************************************************************/ -/*@{*/ - -/** - * Destroy the per-screen private information. - * - * \param dpy the display handle. - * \param scrn the screen number. - * \param screenPrivate opaque pointer to the per-screen private information. - * - * \internal - * This function calls __DriverAPIRec::DestroyScreen on \p screenPrivate, calls - * drmClose(), and finally frees \p screenPrivate. - */ -static void driDestroyScreen(__DRInativeDisplay *dpy, int scrn, void *screenPrivate) -{ - __DRIscreenPrivate *psp = (__DRIscreenPrivate *) screenPrivate; - - if (psp) { - /* No interaction with the X-server is possible at this point. This - * routine is called after XCloseDisplay, so there is no protocol - * stream open to the X-server anymore. - */ - - if (psp->DriverAPI.DestroyScreen) - (*psp->DriverAPI.DestroyScreen)(psp); - - (void)drmUnmap((drmAddress)psp->pSAREA, SAREA_MAX); - (void)drmUnmap((drmAddress)psp->pFB, psp->fbSize); - _mesa_free(psp->pDevPriv); - (void)drmClose(psp->fd); - if ( psp->modes != NULL ) { - (*dri_interface->destroyContextModes)( psp->modes ); - } - _mesa_free(psp); - } -} - - -/** - * Utility function used to create a new driver-private screen structure. - * - * \param dpy Display pointer - * \param scrn Index of the screen - * \param psc DRI screen data (not driver private) - * \param modes Linked list of known display modes. This list is, at a - * minimum, a list of modes based on the current display mode. - * These roughly match the set of available X11 visuals, but it - * need not be limited to X11! The calling libGL should create - * a list that will inform the driver of the current display - * mode (i.e., color buffer depth, depth buffer depth, etc.). - * \param ddx_version Version of the 2D DDX. This may not be meaningful for - * all drivers. - * \param dri_version Version of the "server-side" DRI. - * \param drm_version Version of the kernel DRM. - * \param frame_buffer Data describing the location and layout of the - * framebuffer. - * \param pSAREA Pointer the the SAREA. - * \param fd Device handle for the DRM. - * \param internal_api_version Version of the internal interface between the - * driver and libGL. - * \param driverAPI Driver API functions used by other routines in dri_util.c. - * - * \note - * There is no need to check the minimum API version in this function. Since - * the \c __driCreateNewScreen function is versioned, it is impossible for a - * loader that is too old to even load this driver. - */ -__DRIscreenPrivate * -__driUtilCreateNewScreen(__DRInativeDisplay *dpy, int scrn, __DRIscreen *psc, - __GLcontextModes * modes, - const __DRIversion * ddx_version, - const __DRIversion * dri_version, - const __DRIversion * drm_version, - const __DRIframebuffer * frame_buffer, - drm_sarea_t *pSAREA, - int fd, - int internal_api_version, - const struct __DriverAPIRec *driverAPI) -{ - __DRIscreenPrivate *psp; - - - api_ver = internal_api_version; - - psp = (__DRIscreenPrivate *)_mesa_malloc(sizeof(__DRIscreenPrivate)); - if (!psp) { - return NULL; - } - - /* Create the hash table */ - psp->drawHash = drmHashCreate(); - if ( psp->drawHash == NULL ) { - _mesa_free( psp ); - return NULL; - } - - psp->display = dpy; - psp->myNum = scrn; - psp->psc = psc; - psp->modes = modes; - - /* - ** NOT_DONE: This is used by the X server to detect when the client - ** has died while holding the drawable lock. The client sets the - ** drawable lock to this value. - */ - psp->drawLockID = 1; - - psp->drmMajor = drm_version->major; - psp->drmMinor = drm_version->minor; - psp->drmPatch = drm_version->patch; - psp->ddxMajor = ddx_version->major; - psp->ddxMinor = ddx_version->minor; - psp->ddxPatch = ddx_version->patch; - psp->driMajor = dri_version->major; - psp->driMinor = dri_version->minor; - psp->driPatch = dri_version->patch; - - /* install driver's callback functions */ - memcpy( &psp->DriverAPI, driverAPI, sizeof(struct __DriverAPIRec) ); - - psp->pSAREA = pSAREA; - - psp->pFB = frame_buffer->base; - psp->fbSize = frame_buffer->size; - psp->fbStride = frame_buffer->stride; - psp->fbWidth = frame_buffer->width; - psp->fbHeight = frame_buffer->height; - psp->devPrivSize = frame_buffer->dev_priv_size; - psp->pDevPriv = frame_buffer->dev_priv; - psp->fbBPP = psp->fbStride * 8 / frame_buffer->width; - - psp->fd = fd; - - /* - ** Do not init dummy context here; actual initialization will be - ** done when the first DRI context is created. Init screen priv ptr - ** to NULL to let CreateContext routine that it needs to be inited. - */ - psp->dummyContextPriv.driScreenPriv = NULL; - - psc->destroyScreen = driDestroyScreen; - psc->createNewDrawable = driCreateNewDrawable; - psc->getDrawable = driGetDrawable; - psc->getMSC = driGetMSC; - psc->createNewContext = driCreateNewContext; - - if ( (psp->DriverAPI.InitDriver != NULL) - && !(*psp->DriverAPI.InitDriver)(psp) ) { - _mesa_free( psp ); - return NULL; - } - - - return psp; -} - - -/** - * Compare the current GLX API version with a driver supplied required version. - * - * The minimum required version is compared with the API version exported by - * the \c __glXGetInternalVersion function (in libGL.so). - * - * \param required_version Minimum required internal GLX API version. - * \return A tri-value return, as from strcmp is returned. A value less - * than, equal to, or greater than zero will be returned if the - * internal GLX API version is less than, equal to, or greater - * than \c required_version. - * - * \sa __glXGetInternalVersion(). - */ -int driCompareGLXAPIVersion( GLint required_version ) -{ - if ( api_ver > required_version ) { - return 1; - } - else if ( api_ver == required_version ) { - return 0; - } - - return -1; -} - - -static int -driQueryFrameTracking( __DRInativeDisplay * dpy, void * priv, - int64_t * sbc, int64_t * missedFrames, - float * lastMissedUsage, float * usage ) -{ - __DRIswapInfo sInfo; - int status; - int64_t ust; - __DRIdrawablePrivate * dpriv = (__DRIdrawablePrivate *) priv; - - - status = dpriv->driScreenPriv->DriverAPI.GetSwapInfo( dpriv, & sInfo ); - if ( status == 0 ) { - *sbc = sInfo.swap_count; - *missedFrames = sInfo.swap_missed_count; - *lastMissedUsage = sInfo.swap_missed_usage; - - (*dri_interface->getUST)( & ust ); - *usage = driCalculateSwapUsage( dpriv, sInfo.swap_ust, ust ); - } - - return status; -} - - -/** - * Calculate amount of swap interval used between GLX buffer swaps. - * - * The usage value, on the range [0,max], is the fraction of total swap - * interval time used between GLX buffer swaps is calculated. - * - * \f$p = t_d / (i * t_r)\f$ - * - * Where \f$t_d\f$ is the time since the last GLX buffer swap, \f$i\f$ is the - * swap interval (as set by \c glXSwapIntervalSGI), and \f$t_r\f$ time - * required for a single vertical refresh period (as returned by \c - * glXGetMscRateOML). - * - * See the documentation for the GLX_MESA_swap_frame_usage extension for more - * details. - * - * \param dPriv Pointer to the private drawable structure. - * \return If less than a single swap interval time period was required - * between GLX buffer swaps, a number greater than 0 and less than - * 1.0 is returned. If exactly one swap interval time period is - * required, 1.0 is returned, and if more than one is required then - * a number greater than 1.0 will be returned. - * - * \sa glXSwapIntervalSGI glXGetMscRateOML - * - * \todo Instead of caching the \c glXGetMscRateOML function pointer, would it - * be possible to cache the sync rate? - */ -float -driCalculateSwapUsage( __DRIdrawablePrivate *dPriv, int64_t last_swap_ust, - int64_t current_ust ) -{ - int32_t n; - int32_t d; - int interval; - float usage = 1.0; - - - if ( (*dri_interface->getMSCRate)( dPriv->display, dPriv->draw, &n, &d ) ) { - interval = (dPriv->pdraw->swap_interval != 0) - ? dPriv->pdraw->swap_interval : 1; - - - /* We want to calculate - * (current_UST - last_swap_UST) / (interval * us_per_refresh). We get - * current_UST by calling __glXGetUST. last_swap_UST is stored in - * dPriv->swap_ust. interval has already been calculated. - * - * The only tricky part is us_per_refresh. us_per_refresh is - * 1000000 / MSC_rate. We know the MSC_rate is n / d. We can flip it - * around and say us_per_refresh = 1000000 * d / n. Since this goes in - * the denominator of the final calculation, we calculate - * (interval * 1000000 * d) and move n into the numerator. - */ - - usage = (current_ust - last_swap_ust); - usage *= n; - usage /= (interval * d); - usage /= 1000000.0; - } - - return usage; -} - -/*@}*/ diff --git a/nx-X11/extras/Mesa/src/mesa/drivers/dri/common/dri_util.h b/nx-X11/extras/Mesa/src/mesa/drivers/dri/common/dri_util.h deleted file mode 100644 index b9b38f39c..000000000 --- a/nx-X11/extras/Mesa/src/mesa/drivers/dri/common/dri_util.h +++ /dev/null @@ -1,555 +0,0 @@ -/* $XFree86: xc/lib/GL/dri/dri_util.h,v 1.1 2002/02/22 21:32:52 dawes Exp $ */ -/** - * \file dri_util.h - * DRI utility functions definitions. - * - * This module acts as glue between GLX and the actual hardware driver. A DRI - * driver doesn't really \e have to use any of this - it's optional. But, some - * useful stuff is done here that otherwise would have to be duplicated in most - * drivers. - * - * Basically, these utility functions take care of some of the dirty details of - * screen initialization, context creation, context binding, DRM setup, etc. - * - * These functions are compiled into each DRI driver so libGL.so knows nothing - * about them. - * - * \sa dri_util.c. - * - * \author Kevin E. Martin - * \author Brian Paul - */ - -/* - * Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas. - * 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 PRECISION INSIGHT 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. - */ - - -#ifndef _DRI_UTIL_H_ -#define _DRI_UTIL_H_ - -#define CAPI /* XXX this should be globally defined somewhere */ - -#include -#include "drm.h" -#include "drm_sarea.h" -#include "xf86drm.h" -#include "GL/internal/glcore.h" -#include "GL/internal/dri_interface.h" - -#define GLX_BAD_CONTEXT 5 - -typedef struct __DRIdisplayPrivateRec __DRIdisplayPrivate; -typedef struct __DRIscreenPrivateRec __DRIscreenPrivate; -typedef struct __DRIcontextPrivateRec __DRIcontextPrivate; -typedef struct __DRIdrawablePrivateRec __DRIdrawablePrivate; -typedef struct __DRIswapInfoRec __DRIswapInfo; -typedef struct __DRIutilversionRec2 __DRIutilversion2; - - -/** - * Used by DRI_VALIDATE_DRAWABLE_INFO - */ -#define DRI_VALIDATE_DRAWABLE_INFO_ONCE(pDrawPriv) \ - do { \ - if (*(pDrawPriv->pStamp) != pDrawPriv->lastStamp) { \ - __driUtilUpdateDrawableInfo(pDrawPriv); \ - } \ - } while (0) - - -/** - * Utility macro to validate the drawable information. - * - * See __DRIdrawablePrivate::pStamp and __DRIdrawablePrivate::lastStamp. - */ -#define DRI_VALIDATE_DRAWABLE_INFO(psp, pdp) \ -do { \ - while (*(pdp->pStamp) != pdp->lastStamp) { \ - DRM_UNLOCK(psp->fd, &psp->pSAREA->lock, \ - pdp->driContextPriv->hHWContext); \ - \ - DRM_SPINLOCK(&psp->pSAREA->drawable_lock, psp->drawLockID); \ - DRI_VALIDATE_DRAWABLE_INFO_ONCE(pdp); \ - DRM_SPINUNLOCK(&psp->pSAREA->drawable_lock, psp->drawLockID); \ - \ - DRM_LIGHT_LOCK(psp->fd, &psp->pSAREA->lock, \ - pdp->driContextPriv->hHWContext); \ - } \ -} while (0) - - -/** - * Driver callback functions. - * - * Each DRI driver must have one of these structures with all the pointers set - * to appropriate functions within the driver. - * - * When glXCreateContext() is called, for example, it'll call a helper function - * dri_util.c which in turn will jump through the \a CreateContext pointer in - * this structure. - */ -struct __DriverAPIRec { - /** - * Driver initialization callback - */ - GLboolean (*InitDriver)(__DRIscreenPrivate *driScrnPriv); - - /** - * Screen destruction callback - */ - void (*DestroyScreen)(__DRIscreenPrivate *driScrnPriv); - - /** - * Context creation callback - */ - GLboolean (*CreateContext)(const __GLcontextModes *glVis, - __DRIcontextPrivate *driContextPriv, - void *sharedContextPrivate); - - /** - * Context destruction callback - */ - void (*DestroyContext)(__DRIcontextPrivate *driContextPriv); - - /** - * Buffer (drawable) creation callback - */ - GLboolean (*CreateBuffer)(__DRIscreenPrivate *driScrnPriv, - __DRIdrawablePrivate *driDrawPriv, - const __GLcontextModes *glVis, - GLboolean pixmapBuffer); - - /** - * Buffer (drawable) destruction callback - */ - void (*DestroyBuffer)(__DRIdrawablePrivate *driDrawPriv); - - /** - * Buffer swapping callback - */ - void (*SwapBuffers)(__DRIdrawablePrivate *driDrawPriv); - - /** - * Context activation callback - */ - GLboolean (*MakeCurrent)(__DRIcontextPrivate *driContextPriv, - __DRIdrawablePrivate *driDrawPriv, - __DRIdrawablePrivate *driReadPriv); - - /** - * Context unbinding callback - */ - GLboolean (*UnbindContext)(__DRIcontextPrivate *driContextPriv); - - /** - * Retrieves statistics about buffer swap operations. Required if - * GLX_OML_sync_control or GLX_MESA_swap_frame_usage is supported. - */ - int (*GetSwapInfo)( __DRIdrawablePrivate *dPriv, __DRIswapInfo * sInfo ); - - - /** - * Required if GLX_SGI_video_sync or GLX_OML_sync_control is - * supported. - */ - int (*GetMSC)( __DRIscreenPrivate * priv, int64_t * count ); - - /** - * These are required if GLX_OML_sync_control is supported. - */ - /*@{*/ - int (*WaitForMSC)( __DRIdrawablePrivate *priv, int64_t target_msc, - int64_t divisor, int64_t remainder, - int64_t * msc ); - int (*WaitForSBC)( __DRIdrawablePrivate *priv, int64_t target_sbc, - int64_t * msc, int64_t * sbc ); - - int64_t (*SwapBuffersMSC)( __DRIdrawablePrivate *priv, int64_t target_msc, - int64_t divisor, int64_t remainder ); - /*@}*/ -}; - - -struct __DRIswapInfoRec { - /** - * Number of swapBuffers operations that have been *completed*. - */ - u_int64_t swap_count; - - /** - * Unadjusted system time of the last buffer swap. This is the time - * when the swap completed, not the time when swapBuffers was called. - */ - int64_t swap_ust; - - /** - * Number of swap operations that occurred after the swap deadline. That - * is if a swap happens more than swap_interval frames after the previous - * swap, it has missed its deadline. If swap_interval is 0, then the - * swap deadline is 1 frame after the previous swap. - */ - u_int64_t swap_missed_count; - - /** - * Amount of time used by the last swap that missed its deadline. This - * is calculated as (__glXGetUST() - swap_ust) / (swap_interval * - * time_for_single_vrefresh)). If the actual value of swap_interval is - * 0, then 1 is used instead. If swap_missed_count is non-zero, this - * should be greater-than 1.0. - */ - float swap_missed_usage; -}; - - -/** - * Per-drawable private DRI driver information. - */ -struct __DRIdrawablePrivateRec { - /** - * Kernel drawable handle - */ - drm_drawable_t hHWDrawable; - - /** - * Driver's private drawable information. - * - * This structure is opaque. - */ - void *driverPrivate; - - /** - * X's drawable ID associated with this private drawable. - */ - __DRIid draw; - __DRIdrawable *pdraw; - - /** - * Reference count for number of context's currently bound to this - * drawable. - * - * Once it reaches zero, the drawable can be destroyed. - * - * \note This behavior will change with GLX 1.3. - */ - int refcount; - - /** - * Index of this drawable information in the SAREA. - */ - unsigned int index; - - /** - * Pointer to the "drawable has changed ID" stamp in the SAREA. - */ - unsigned int *pStamp; - - /** - * Last value of the stamp. - * - * If this differs from the value stored at __DRIdrawablePrivate::pStamp, - * then the drawable information has been modified by the X server, and the - * drawable information (below) should be retrieved from the X server. - */ - unsigned int lastStamp; - - /** - * \name Drawable - * - * Drawable information used in software fallbacks. - */ - /*@{*/ - int x; - int y; - int w; - int h; - int numClipRects; - drm_clip_rect_t *pClipRects; - /*@}*/ - - /** - * \name Back and depthbuffer - * - * Information about the back and depthbuffer where different from above. - */ - /*@{*/ - int backX; - int backY; - int backClipRectType; - int numBackClipRects; - drm_clip_rect_t *pBackClipRects; - /*@}*/ - - /** - * Pointer to context to which this drawable is currently bound. - */ - __DRIcontextPrivate *driContextPriv; - - /** - * Pointer to screen on which this drawable was created. - */ - __DRIscreenPrivate *driScreenPriv; - - /** - * \name Display and screen information. - * - * Basically just need these for when the locking code needs to call - * \c __driUtilUpdateDrawableInfo. - */ - /*@{*/ - __DRInativeDisplay *display; - int screen; - /*@}*/ - - /** - * Called via glXSwapBuffers(). - */ - void (*swapBuffers)( __DRIdrawablePrivate *dPriv ); -}; - -/** - * Per-context private driver information. - */ -struct __DRIcontextPrivateRec { - /** - * Kernel context handle used to access the device lock. - */ - __DRIid contextID; - - /** - * Kernel context handle used to access the device lock. - */ - drm_context_t hHWContext; - - /** - * Device driver's private context data. This structure is opaque. - */ - void *driverPrivate; - - /** - * This context's display pointer. - */ - __DRInativeDisplay *display; - - /** - * Pointer to drawable currently bound to this context. - */ - __DRIdrawablePrivate *driDrawablePriv; - - /** - * Pointer to screen on which this context was created. - */ - __DRIscreenPrivate *driScreenPriv; -}; - -/** - * Per-screen private driver information. - */ -struct __DRIscreenPrivateRec { - /** - * Display for this screen - */ - __DRInativeDisplay *display; - - /** - * Current screen's number - */ - int myNum; - - /** - * Callback functions into the hardware-specific DRI driver code. - */ - struct __DriverAPIRec DriverAPI; - - /** - * \name DDX version - * DDX / 2D driver version information. - * \todo Replace these fields with a \c __DRIversionRec. - */ - /*@{*/ - int ddxMajor; - int ddxMinor; - int ddxPatch; - /*@}*/ - - /** - * \name DRI version - * DRI X extension version information. - * \todo Replace these fields with a \c __DRIversionRec. - */ - /*@{*/ - int driMajor; - int driMinor; - int driPatch; - /*@}*/ - - /** - * \name DRM version - * DRM (kernel module) version information. - * \todo Replace these fields with a \c __DRIversionRec. - */ - /*@{*/ - int drmMajor; - int drmMinor; - int drmPatch; - /*@}*/ - - /** - * ID used when the client sets the drawable lock. - * - * The X server uses this value to detect if the client has died while - * holding the drawable lock. - */ - int drawLockID; - - /** - * File descriptor returned when the kernel device driver is opened. - * - * Used to: - * - authenticate client to kernel - * - map the frame buffer, SAREA, etc. - * - close the kernel device driver - */ - int fd; - - /** - * SAREA pointer - * - * Used to access: - * - the device lock - * - the device-independent per-drawable and per-context(?) information - */ - drm_sarea_t *pSAREA; - - /** - * \name Direct frame buffer access information - * Used for software fallbacks. - */ - /*@{*/ - unsigned char *pFB; - int fbSize; - int fbOrigin; - int fbStride; - int fbWidth; - int fbHeight; - int fbBPP; - /*@}*/ - - /** - * \name Device-dependent private information (stored in the SAREA). - * - * This data is accessed by the client driver only. - */ - /*@{*/ - void *pDevPriv; - int devPrivSize; - /*@}*/ - - /** - * Dummy context to which drawables are bound when not bound to any - * other context. - * - * A dummy hHWContext is created for this context, and is used by the GL - * core when a hardware lock is required but the drawable is not currently - * bound (e.g., potentially during a SwapBuffers request). The dummy - * context is created when the first "real" context is created on this - * screen. - */ - __DRIcontextPrivate dummyContextPriv; - - /** - * Hash table to hold the drawable information for this screen. - */ - void *drawHash; - - /** - * Device-dependent private information (not stored in the SAREA). - * - * This pointer is never touched by the DRI layer. - */ - void *private; - - /** - * GLX visuals / FBConfigs for this screen. These are stored as a - * linked list. - * - * \note - * This field is \b only used in conjunction with the old interfaces. If - * the new interfaces are used, this field will be set to \c NULL and will - * not be dereferenced. - */ - __GLcontextModes *modes; - - /** - * Pointer back to the \c __DRIscreen that contains this structure. - */ - - __DRIscreen *psc; -}; - - -/** - * Used to store a version which includes a major range instead of a single - * major version number. - */ -struct __DRIutilversionRec2 { - int major_min; /** min allowed Major version number. */ - int major_max; /** max allowed Major version number. */ - int minor; /**< Minor version number. */ - int patch; /**< Patch-level. */ -}; - - -extern void -__driUtilMessage(const char *f, ...); - - -extern void -__driUtilUpdateDrawableInfo(__DRIdrawablePrivate *pdp); - - -extern __DRIscreenPrivate * __driUtilCreateNewScreen( __DRInativeDisplay *dpy, - int scrn, __DRIscreen *psc, __GLcontextModes * modes, - const __DRIversion * ddx_version, const __DRIversion * dri_version, - const __DRIversion * drm_version, const __DRIframebuffer * frame_buffer, - drm_sarea_t *pSAREA, int fd, int internal_api_version, - const struct __DriverAPIRec *driverAPI ); - -/* Test the version of the internal GLX API. Returns a value like strcmp. */ -extern int -driCompareGLXAPIVersion( GLint required_version ); - -extern float -driCalculateSwapUsage( __DRIdrawablePrivate *dPriv, - int64_t last_swap_ust, int64_t current_ust ); - -/** - * Pointer to the \c __DRIinterfaceMethods passed to the driver by the loader. - * - * This pointer is set in the driver's \c __driCreateNewScreen function and - * is defined in dri_util.c. - */ -extern const __DRIinterfaceMethods * dri_interface; - -#endif /* _DRI_UTIL_H_ */ diff --git a/nx-X11/extras/Mesa/src/mesa/drivers/dri/common/drirenderbuffer.c b/nx-X11/extras/Mesa/src/mesa/drivers/dri/common/drirenderbuffer.c deleted file mode 100644 index 44826958d..000000000 --- a/nx-X11/extras/Mesa/src/mesa/drivers/dri/common/drirenderbuffer.c +++ /dev/null @@ -1,98 +0,0 @@ - -#include "mtypes.h" -#include "drirenderbuffer.h" -#include "renderbuffer.h" -#include "imports.h" - - -/** - * This will get called when a window is resized. - * Just update width, height and internal format fields for now. - * There's usually no memory allocation above because the present - * DRI drivers use statically-allocated full-screen buffers. - */ -static GLboolean -driRenderbufferStorage(GLcontext *ctx, struct gl_renderbuffer *rb, - GLenum internalFormat, GLuint width, GLuint height) -{ - rb->Width = width; - rb->Height = height; - rb->InternalFormat = internalFormat; - return GL_TRUE; -} - - -/** - * Allocate a new driRenderbuffer object. - * Individual drivers are free to implement different versions of - * this function. - * \param format Either GL_RGBA, GL_DEPTH_COMPONENT16, GL_DEPTH_COMPONENT24, - * GL_DEPTH_COMPONENT32, or GL_STENCIL_INDEX8_EXT (for now). - * \param cpp chars or bytes per pixel - * \param offset start of buffer with respect to framebuffer address - * \param pitch pixels per row - */ -driRenderbuffer * -driNewRenderbuffer(GLenum format, GLint cpp, GLint offset, GLint pitch) -{ - driRenderbuffer *drb; - - assert(format == GL_RGBA || - format == GL_DEPTH_COMPONENT16 || - format == GL_DEPTH_COMPONENT24 || - format == GL_DEPTH_COMPONENT32 || - format == GL_STENCIL_INDEX8_EXT); - - assert(cpp > 0); - assert(pitch > 0); - - drb = _mesa_calloc(sizeof(driRenderbuffer)); - if (drb) { - const GLuint name = 0; - - _mesa_init_renderbuffer(&drb->Base, name); - - /* Make sure we're using a null-valued GetPointer routine */ - assert(drb->Base.GetPointer(NULL, &drb->Base, 0, 0) == NULL); - - drb->Base.InternalFormat = format; - - if (format == GL_RGBA) { - /* Color */ - drb->Base._BaseFormat = GL_RGBA; - drb->Base.DataType = GL_UNSIGNED_BYTE; - } - else if (format == GL_DEPTH_COMPONENT16) { - /* Depth */ - drb->Base._BaseFormat = GL_DEPTH_COMPONENT; - /* we always Get/Put 32-bit Z values */ - drb->Base.DataType = GL_UNSIGNED_INT; - } - else if (format == GL_DEPTH_COMPONENT24) { - /* Depth */ - drb->Base._BaseFormat = GL_DEPTH_COMPONENT; - /* we always Get/Put 32-bit Z values */ - drb->Base.DataType = GL_UNSIGNED_INT; - } - else { - /* Stencil */ - ASSERT(format == GL_STENCIL_INDEX8); - drb->Base._BaseFormat = GL_STENCIL_INDEX; - drb->Base.DataType = GL_UNSIGNED_BYTE; - } - - /* XXX if we were allocating a user-created renderbuffer, we'd have - * to fill in the ComponentSizes[] array too. - */ - - drb->Base.AllocStorage = driRenderbufferStorage; - /* using default Delete function */ - - - /* DRI renderbuffer-specific fields: */ - drb->offset = offset; - drb->pitch = pitch; - drb->cpp = cpp; - } - return drb; -} diff --git a/nx-X11/extras/Mesa/src/mesa/drivers/dri/common/drirenderbuffer.h b/nx-X11/extras/Mesa/src/mesa/drivers/dri/common/drirenderbuffer.h deleted file mode 100644 index 627f1d41d..000000000 --- a/nx-X11/extras/Mesa/src/mesa/drivers/dri/common/drirenderbuffer.h +++ /dev/null @@ -1,39 +0,0 @@ - -/** - * A driRenderbuffer is dervied from gl_renderbuffer. - * It describes a color buffer (front or back), a depth buffer, or stencil - * buffer etc. - * Specific to DRI drivers are the offset and pitch fields. - */ - - -#ifndef DRIRENDERBUFFER_H -#define DRIRENDERBUFFER_H - -#include "mtypes.h" - -typedef struct { - struct gl_renderbuffer Base; - - /* Chars or bytes per pixel. If Z and Stencil are stored together this - * will typically be 32 whether this a depth or stencil renderbuffer. - */ - GLint cpp; - - /* Buffer position and pitch (row stride). Recall that for today's DRI - * drivers, we have statically allocated color/depth/stencil buffers. - * So this information describes the whole screen, not just a window. - * To address pixels in a window, we need to know the window's position - * and size with respect to the screen. - */ - GLint offset; /* in bytes */ - GLint pitch; /* in pixels */ - -} driRenderbuffer; - - -driRenderbuffer * -driNewRenderbuffer(GLenum format, GLint cpp, GLint offset, GLint pitch); - - -#endif /* DRIRENDERBUFFER_H */ diff --git a/nx-X11/extras/Mesa/src/mesa/drivers/dri/common/extension_helper.h b/nx-X11/extras/Mesa/src/mesa/drivers/dri/common/extension_helper.h deleted file mode 100644 index 4a6606819..000000000 --- a/nx-X11/extras/Mesa/src/mesa/drivers/dri/common/extension_helper.h +++ /dev/null @@ -1,5887 +0,0 @@ -/* DO NOT EDIT - This file generated automatically by extension_helper.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 "utils.h" -#include "dispatch.h" - -#ifndef NULL -# define NULL 0 -#endif - -#if defined(need_GL_ARB_shader_objects) -static const char UniformMatrix3fvARB_names[] = - "iiip\0" /* Parameter signature */ - "glUniformMatrix3fvARB\0" - ""; -#endif - -#if defined(need_GL_NV_vertex_program) -static const char ProgramParameter4fNV_names[] = - "iiffff\0" /* Parameter signature */ - "glProgramParameter4fNV\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_3) || defined(need_GL_ARB_multisample) -static const char SampleCoverageARB_names[] = - "fi\0" /* Parameter signature */ - "glSampleCoverage\0" - "glSampleCoverageARB\0" - ""; -#endif - -#if defined(need_GL_EXT_convolution) -static const char ConvolutionFilter1D_names[] = - "iiiiip\0" /* Parameter signature */ - "glConvolutionFilter1D\0" - "glConvolutionFilter1DEXT\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_5) || defined(need_GL_ARB_occlusion_query) -static const char BeginQueryARB_names[] = - "ii\0" /* Parameter signature */ - "glBeginQuery\0" - "glBeginQueryARB\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_4) || defined(need_GL_NV_point_sprite) -static const char PointParameteriNV_names[] = - "ii\0" /* Parameter signature */ - "glPointParameteri\0" - "glPointParameteriNV\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_3) -static const char MultiTexCoord3sARB_names[] = - "iiii\0" /* Parameter signature */ - "glMultiTexCoord3s\0" - "glMultiTexCoord3sARB\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_4) || defined(need_GL_EXT_secondary_color) -static const char SecondaryColor3iEXT_names[] = - "iii\0" /* Parameter signature */ - "glSecondaryColor3i\0" - "glSecondaryColor3iEXT\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_4) || defined(need_GL_ARB_window_pos) || defined(need_GL_MESA_window_pos) -static const char WindowPos3fMESA_names[] = - "fff\0" /* Parameter signature */ - "glWindowPos3f\0" - "glWindowPos3fARB\0" - "glWindowPos3fMESA\0" - ""; -#endif - -#if defined(need_GL_SGIS_pixel_texture) -static const char PixelTexGenParameterfvSGIS_names[] = - "ip\0" /* Parameter signature */ - "glPixelTexGenParameterfvSGIS\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_3) -static const char ActiveTextureARB_names[] = - "i\0" /* Parameter signature */ - "glActiveTexture\0" - "glActiveTextureARB\0" - ""; -#endif - -#if defined(need_GL_NV_vertex_program) -static const char VertexAttrib4ubvNV_names[] = - "ip\0" /* Parameter signature */ - "glVertexAttrib4ubvNV\0" - ""; -#endif - -#if defined(need_GL_SGI_color_table) -static const char GetColorTableParameterfvSGI_names[] = - "iip\0" /* Parameter signature */ - "glGetColorTableParameterfvSGI\0" - ""; -#endif - -#if defined(need_GL_NV_fragment_program) -static const char GetProgramNamedParameterdvNV_names[] = - "iipp\0" /* Parameter signature */ - "glGetProgramNamedParameterdvNV\0" - ""; -#endif - -#if defined(need_GL_EXT_histogram) -static const char Histogram_names[] = - "iiii\0" /* Parameter signature */ - "glHistogram\0" - "glHistogramEXT\0" - ""; -#endif - -#if defined(need_GL_SGIS_texture4D) -static const char TexImage4DSGIS_names[] = - "iiiiiiiiiip\0" /* Parameter signature */ - "glTexImage4DSGIS\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_4) || defined(need_GL_ARB_window_pos) || defined(need_GL_MESA_window_pos) -static const char WindowPos2dvMESA_names[] = - "p\0" /* Parameter signature */ - "glWindowPos2dv\0" - "glWindowPos2dvARB\0" - "glWindowPos2dvMESA\0" - ""; -#endif - -#if defined(need_GL_SUN_vertex) -static const char ReplacementCodeuiColor3fVertex3fvSUN_names[] = - "ppp\0" /* Parameter signature */ - "glReplacementCodeuiColor3fVertex3fvSUN\0" - ""; -#endif - -#if defined(need_GL_EXT_paletted_texture) -static const char GetColorTableParameterivEXT_names[] = - "iip\0" /* Parameter signature */ - "glGetColorTableParameterivEXT\0" - ""; -#endif - -#if defined(need_GL_EXT_blend_equation_separate) || defined(need_GL_ATI_blend_equation_separate) -static const char BlendEquationSeparateEXT_names[] = - "ii\0" /* Parameter signature */ - "glBlendEquationSeparateEXT\0" - "glBlendEquationSeparateATI\0" - ""; -#endif - -#if defined(need_GL_SGIX_list_priority) -static const char ListParameterfSGIX_names[] = - "iif\0" /* Parameter signature */ - "glListParameterfSGIX\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_4) || defined(need_GL_EXT_secondary_color) -static const char SecondaryColor3bEXT_names[] = - "iii\0" /* Parameter signature */ - "glSecondaryColor3b\0" - "glSecondaryColor3bEXT\0" - ""; -#endif - -#if defined(need_GL_SUN_vertex) -static const char TexCoord4fColor4fNormal3fVertex4fvSUN_names[] = - "pppp\0" /* Parameter signature */ - "glTexCoord4fColor4fNormal3fVertex4fvSUN\0" - ""; -#endif - -#if defined(need_GL_NV_vertex_program) -static const char VertexAttrib4svNV_names[] = - "ip\0" /* Parameter signature */ - "glVertexAttrib4svNV\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_5) || defined(need_GL_ARB_vertex_buffer_object) -static const char GetBufferSubDataARB_names[] = - "iiip\0" /* Parameter signature */ - "glGetBufferSubData\0" - "glGetBufferSubDataARB\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_5) || defined(need_GL_ARB_vertex_buffer_object) -static const char BufferSubDataARB_names[] = - "iiip\0" /* Parameter signature */ - "glBufferSubData\0" - "glBufferSubDataARB\0" - ""; -#endif - -#if defined(need_GL_SUN_vertex) -static const char TexCoord2fColor4ubVertex3fvSUN_names[] = - "ppp\0" /* Parameter signature */ - "glTexCoord2fColor4ubVertex3fvSUN\0" - ""; -#endif - -#if defined(need_GL_ARB_vertex_program) -static const char ProgramEnvParameter4dvARB_names[] = - "iip\0" /* Parameter signature */ - "glProgramEnvParameter4dvARB\0" - ""; -#endif - -#if defined(need_GL_ARB_vertex_program) -static const char VertexAttrib2fARB_names[] = - "iff\0" /* Parameter signature */ - "glVertexAttrib2fARB\0" - ""; -#endif - -#if defined(need_GL_EXT_histogram) -static const char GetHistogramParameterivEXT_names[] = - "iip\0" /* Parameter signature */ - "glGetHistogramParameterivEXT\0" - ""; -#endif - -#if defined(need_GL_ARB_vertex_program) -static const char VertexAttrib3fARB_names[] = - "ifff\0" /* Parameter signature */ - "glVertexAttrib3fARB\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_5) || defined(need_GL_ARB_occlusion_query) -static const char GetQueryivARB_names[] = - "iip\0" /* Parameter signature */ - "glGetQueryiv\0" - "glGetQueryivARB\0" - ""; -#endif - -#if defined(need_GL_EXT_texture3D) -static const char TexImage3D_names[] = - "iiiiiiiiip\0" /* Parameter signature */ - "glTexImage3D\0" - "glTexImage3DEXT\0" - ""; -#endif - -#if defined(need_GL_SUN_vertex) -static const char ReplacementCodeuiVertex3fvSUN_names[] = - "pp\0" /* Parameter signature */ - "glReplacementCodeuiVertex3fvSUN\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_5) || defined(need_GL_ARB_occlusion_query) -static const char GetQueryObjectivARB_names[] = - "iip\0" /* Parameter signature */ - "glGetQueryObjectiv\0" - "glGetQueryObjectivARB\0" - ""; -#endif - -#if defined(need_GL_SUN_vertex) -static const char ReplacementCodeuiTexCoord2fVertex3fvSUN_names[] = - "ppp\0" /* Parameter signature */ - "glReplacementCodeuiTexCoord2fVertex3fvSUN\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_3) || defined(need_GL_ARB_texture_compression) -static const char CompressedTexSubImage2DARB_names[] = - "iiiiiiiip\0" /* Parameter signature */ - "glCompressedTexSubImage2D\0" - "glCompressedTexSubImage2DARB\0" - ""; -#endif - -#if defined(need_GL_ARB_shader_objects) -static const char Uniform2fARB_names[] = - "iff\0" /* Parameter signature */ - "glUniform2fARB\0" - ""; -#endif - -#if defined(need_GL_ARB_vertex_program) -static const char VertexAttrib1svARB_names[] = - "ip\0" /* Parameter signature */ - "glVertexAttrib1svARB\0" - ""; -#endif - -#if defined(need_GL_NV_vertex_program) -static const char VertexAttribs1dvNV_names[] = - "iip\0" /* Parameter signature */ - "glVertexAttribs1dvNV\0" - ""; -#endif - -#if defined(need_GL_ARB_shader_objects) -static const char Uniform2ivARB_names[] = - "iip\0" /* Parameter signature */ - "glUniform2ivARB\0" - ""; -#endif - -#if defined(need_GL_HP_image_transform) -static const char GetImageTransformParameterfvHP_names[] = - "iip\0" /* Parameter signature */ - "glGetImageTransformParameterfvHP\0" - ""; -#endif - -#if defined(need_GL_ARB_vertex_blend) -static const char WeightubvARB_names[] = - "ip\0" /* Parameter signature */ - "glWeightubvARB\0" - ""; -#endif - -#if defined(need_GL_EXT_convolution) -static const char CopyConvolutionFilter1D_names[] = - "iiiii\0" /* Parameter signature */ - "glCopyConvolutionFilter1D\0" - "glCopyConvolutionFilter1DEXT\0" - ""; -#endif - -#if defined(need_GL_SUN_vertex) -static const char ReplacementCodeuiNormal3fVertex3fSUN_names[] = - "iffffff\0" /* Parameter signature */ - "glReplacementCodeuiNormal3fVertex3fSUN\0" - ""; -#endif - -#if defined(need_GL_SGIX_fragment_lighting) -static const char FragmentMaterialfvSGIX_names[] = - "iip\0" /* Parameter signature */ - "glFragmentMaterialfvSGIX\0" - ""; -#endif - -#if defined(need_GL_EXT_blend_color) -static const char BlendColor_names[] = - "ffff\0" /* Parameter signature */ - "glBlendColor\0" - "glBlendColorEXT\0" - ""; -#endif - -#if defined(need_GL_ARB_shader_objects) -static const char UniformMatrix4fvARB_names[] = - "iiip\0" /* Parameter signature */ - "glUniformMatrix4fvARB\0" - ""; -#endif - -#if defined(need_GL_SGIX_instruments) -static const char ReadInstrumentsSGIX_names[] = - "i\0" /* Parameter signature */ - "glReadInstrumentsSGIX\0" - ""; -#endif - -#if defined(need_GL_SUN_vertex) -static const char Color4ubVertex3fvSUN_names[] = - "pp\0" /* Parameter signature */ - "glColor4ubVertex3fvSUN\0" - ""; -#endif - -#if defined(need_GL_SGIX_list_priority) -static const char GetListParameterivSGIX_names[] = - "iip\0" /* Parameter signature */ - "glGetListParameterivSGIX\0" - ""; -#endif - -#if defined(need_GL_ARB_vertex_program) -static const char VertexAttrib4NusvARB_names[] = - "ip\0" /* Parameter signature */ - "glVertexAttrib4NusvARB\0" - ""; -#endif - -#if defined(need_GL_MESA_window_pos) -static const char WindowPos4svMESA_names[] = - "p\0" /* Parameter signature */ - "glWindowPos4svMESA\0" - ""; -#endif - -#if defined(need_GL_ARB_shader_objects) -static const char CreateProgramObjectARB_names[] = - "\0" /* Parameter signature */ - "glCreateProgramObjectARB\0" - ""; -#endif - -#if defined(need_GL_SGIX_fragment_lighting) -static const char FragmentLightModelivSGIX_names[] = - "ip\0" /* Parameter signature */ - "glFragmentLightModelivSGIX\0" - ""; -#endif - -#if defined(need_GL_ATI_fragment_shader) -static const char ColorFragmentOp3ATI_names[] = - "iiiiiiiiiiiii\0" /* Parameter signature */ - "glColorFragmentOp3ATI\0" - ""; -#endif - -#if defined(need_GL_EXT_texture_object) -static const char PrioritizeTextures_names[] = - "ipp\0" /* Parameter signature */ - "glPrioritizeTextures\0" - "glPrioritizeTexturesEXT\0" - ""; -#endif - -#if defined(need_GL_SGIX_async) -static const char AsyncMarkerSGIX_names[] = - "i\0" /* Parameter signature */ - "glAsyncMarkerSGIX\0" - ""; -#endif - -#if defined(need_GL_SUN_global_alpha) -static const char GlobalAlphaFactorubSUN_names[] = - "i\0" /* Parameter signature */ - "glGlobalAlphaFactorubSUN\0" - ""; -#endif - -#if defined(need_GL_EXT_histogram) -static const char ResetHistogram_names[] = - "i\0" /* Parameter signature */ - "glResetHistogram\0" - "glResetHistogramEXT\0" - ""; -#endif - -#if defined(need_GL_NV_fragment_program) -static const char GetProgramNamedParameterfvNV_names[] = - "iipp\0" /* Parameter signature */ - "glGetProgramNamedParameterfvNV\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_4) || defined(need_GL_ARB_point_parameters) || defined(need_GL_EXT_point_parameters) || defined(need_GL_SGIS_point_parameters) -static const char PointParameterfEXT_names[] = - "if\0" /* Parameter signature */ - "glPointParameterf\0" - "glPointParameterfARB\0" - "glPointParameterfEXT\0" - "glPointParameterfSGIS\0" - ""; -#endif - -#if defined(need_GL_SGIX_polynomial_ffd) -static const char LoadIdentityDeformationMapSGIX_names[] = - "i\0" /* Parameter signature */ - "glLoadIdentityDeformationMapSGIX\0" - ""; -#endif - -#if defined(need_GL_NV_fence) -static const char GenFencesNV_names[] = - "ip\0" /* Parameter signature */ - "glGenFencesNV\0" - ""; -#endif - -#if defined(need_GL_HP_image_transform) -static const char ImageTransformParameterfHP_names[] = - "iif\0" /* Parameter signature */ - "glImageTransformParameterfHP\0" - ""; -#endif - -#if defined(need_GL_ARB_matrix_palette) -static const char MatrixIndexusvARB_names[] = - "ip\0" /* Parameter signature */ - "glMatrixIndexusvARB\0" - ""; -#endif - -#if defined(need_GL_NV_vertex_program) -static const char ProgramParameter4dvNV_names[] = - "iip\0" /* Parameter signature */ - "glProgramParameter4dvNV\0" - ""; -#endif - -#if defined(need_GL_ARB_vertex_program) -static const char DisableVertexAttribArrayARB_names[] = - "i\0" /* Parameter signature */ - "glDisableVertexAttribArrayARB\0" - ""; -#endif - -#if defined(need_GL_VERSION_2_0) -static const char StencilMaskSeparate_names[] = - "ii\0" /* Parameter signature */ - "glStencilMaskSeparate\0" - ""; -#endif - -#if defined(need_GL_ARB_vertex_program) -static const char ProgramLocalParameter4dARB_names[] = - "iidddd\0" /* Parameter signature */ - "glProgramLocalParameter4dARB\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_3) || defined(need_GL_ARB_texture_compression) -static const char CompressedTexImage3DARB_names[] = - "iiiiiiiip\0" /* Parameter signature */ - "glCompressedTexImage3D\0" - "glCompressedTexImage3DARB\0" - ""; -#endif - -#if defined(need_GL_ARB_vertex_program) -static const char VertexAttrib1fARB_names[] = - "if\0" /* Parameter signature */ - "glVertexAttrib1fARB\0" - ""; -#endif - -#if defined(need_GL_NV_fence) -static const char TestFenceNV_names[] = - "i\0" /* Parameter signature */ - "glTestFenceNV\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_3) -static const char MultiTexCoord1fvARB_names[] = - "ip\0" /* Parameter signature */ - "glMultiTexCoord1fv\0" - "glMultiTexCoord1fvARB\0" - ""; -#endif - -#if defined(need_GL_ATI_fragment_shader) -static const char ColorFragmentOp2ATI_names[] = - "iiiiiiiiii\0" /* Parameter signature */ - "glColorFragmentOp2ATI\0" - ""; -#endif - -#if defined(need_GL_IBM_vertex_array_lists) -static const char SecondaryColorPointerListIBM_names[] = - "iiipi\0" /* Parameter signature */ - "glSecondaryColorPointerListIBM\0" - ""; -#endif - -#if defined(need_GL_SGIS_pixel_texture) -static const char GetPixelTexGenParameterivSGIS_names[] = - "ip\0" /* Parameter signature */ - "glGetPixelTexGenParameterivSGIS\0" - ""; -#endif - -#if defined(need_GL_NV_vertex_program) -static const char VertexAttrib4fNV_names[] = - "iffff\0" /* Parameter signature */ - "glVertexAttrib4fNV\0" - ""; -#endif - -#if defined(need_GL_SUN_triangle_list) -static const char ReplacementCodeubSUN_names[] = - "i\0" /* Parameter signature */ - "glReplacementCodeubSUN\0" - ""; -#endif - -#if defined(need_GL_SGIX_async) -static const char FinishAsyncSGIX_names[] = - "p\0" /* Parameter signature */ - "glFinishAsyncSGIX\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_4) || defined(need_GL_EXT_fog_coord) -static const char FogCoorddEXT_names[] = - "d\0" /* Parameter signature */ - "glFogCoordd\0" - "glFogCoorddEXT\0" - ""; -#endif - -#if defined(need_GL_SUN_vertex) -static const char Color4ubVertex3fSUN_names[] = - "iiiifff\0" /* Parameter signature */ - "glColor4ubVertex3fSUN\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_4) || defined(need_GL_EXT_fog_coord) -static const char FogCoordfEXT_names[] = - "f\0" /* Parameter signature */ - "glFogCoordf\0" - "glFogCoordfEXT\0" - ""; -#endif - -#if defined(need_GL_SUN_vertex) -static const char TexCoord2fVertex3fSUN_names[] = - "fffff\0" /* Parameter signature */ - "glTexCoord2fVertex3fSUN\0" - ""; -#endif - -#if defined(need_GL_SUN_global_alpha) -static const char GlobalAlphaFactoriSUN_names[] = - "i\0" /* Parameter signature */ - "glGlobalAlphaFactoriSUN\0" - ""; -#endif - -#if defined(need_GL_NV_vertex_program) -static const char VertexAttrib2dNV_names[] = - "idd\0" /* Parameter signature */ - "glVertexAttrib2dNV\0" - ""; -#endif - -#if defined(need_GL_ARB_vertex_program) -static const char VertexAttrib4NbvARB_names[] = - "ip\0" /* Parameter signature */ - "glVertexAttrib4NbvARB\0" - ""; -#endif - -#if defined(need_GL_ARB_vertex_shader) -static const char GetActiveAttribARB_names[] = - "iiipppp\0" /* Parameter signature */ - "glGetActiveAttribARB\0" - ""; -#endif - -#if defined(need_GL_NV_vertex_program) -static const char VertexAttrib4ubNV_names[] = - "iiiii\0" /* Parameter signature */ - "glVertexAttrib4ubNV\0" - ""; -#endif - -#if defined(need_GL_SUN_vertex) -static const char TexCoord2fColor4fNormal3fVertex3fSUN_names[] = - "ffffffffffff\0" /* Parameter signature */ - "glTexCoord2fColor4fNormal3fVertex3fSUN\0" - ""; -#endif - -#if defined(need_GL_EXT_histogram) -static const char GetMinmaxEXT_names[] = - "iiiip\0" /* Parameter signature */ - "glGetMinmaxEXT\0" - ""; -#endif - -#if defined(need_GL_NV_register_combiners) -static const char CombinerParameterfvNV_names[] = - "ip\0" /* Parameter signature */ - "glCombinerParameterfvNV\0" - ""; -#endif - -#if defined(need_GL_NV_vertex_program) -static const char VertexAttribs3dvNV_names[] = - "iip\0" /* Parameter signature */ - "glVertexAttribs3dvNV\0" - ""; -#endif - -#if defined(need_GL_NV_vertex_program) -static const char VertexAttribs4fvNV_names[] = - "iip\0" /* Parameter signature */ - "glVertexAttribs4fvNV\0" - ""; -#endif - -#if defined(need_GL_SGIX_fragment_lighting) -static const char FragmentLightiSGIX_names[] = - "iii\0" /* Parameter signature */ - "glFragmentLightiSGIX\0" - ""; -#endif - -#if defined(need_GL_EXT_polygon_offset) -static const char PolygonOffsetEXT_names[] = - "ff\0" /* Parameter signature */ - "glPolygonOffsetEXT\0" - ""; -#endif - -#if defined(need_GL_SGIX_async) -static const char PollAsyncSGIX_names[] = - "p\0" /* Parameter signature */ - "glPollAsyncSGIX\0" - ""; -#endif - -#if defined(need_GL_ATI_fragment_shader) -static const char DeleteFragmentShaderATI_names[] = - "i\0" /* Parameter signature */ - "glDeleteFragmentShaderATI\0" - ""; -#endif - -#if defined(need_GL_SUN_vertex) -static const char TexCoord2fNormal3fVertex3fvSUN_names[] = - "ppp\0" /* Parameter signature */ - "glTexCoord2fNormal3fVertex3fvSUN\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_3) || defined(need_GL_ARB_transpose_matrix) -static const char MultTransposeMatrixdARB_names[] = - "p\0" /* Parameter signature */ - "glMultTransposeMatrixd\0" - "glMultTransposeMatrixdARB\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_4) || defined(need_GL_ARB_window_pos) || defined(need_GL_MESA_window_pos) -static const char WindowPos2svMESA_names[] = - "p\0" /* Parameter signature */ - "glWindowPos2sv\0" - "glWindowPos2svARB\0" - "glWindowPos2svMESA\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_3) || defined(need_GL_ARB_texture_compression) -static const char CompressedTexImage1DARB_names[] = - "iiiiiip\0" /* Parameter signature */ - "glCompressedTexImage1D\0" - "glCompressedTexImage1DARB\0" - ""; -#endif - -#if defined(need_GL_NV_vertex_program) -static const char VertexAttrib2sNV_names[] = - "iii\0" /* Parameter signature */ - "glVertexAttrib2sNV\0" - ""; -#endif - -#if defined(need_GL_IBM_vertex_array_lists) -static const char NormalPointerListIBM_names[] = - "iipi\0" /* Parameter signature */ - "glNormalPointerListIBM\0" - ""; -#endif - -#if defined(need_GL_EXT_vertex_array) -static const char IndexPointerEXT_names[] = - "iiip\0" /* Parameter signature */ - "glIndexPointerEXT\0" - ""; -#endif - -#if defined(need_GL_EXT_vertex_array) -static const char NormalPointerEXT_names[] = - "iiip\0" /* Parameter signature */ - "glNormalPointerEXT\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_3) -static const char MultiTexCoord3dARB_names[] = - "iddd\0" /* Parameter signature */ - "glMultiTexCoord3d\0" - "glMultiTexCoord3dARB\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_3) -static const char MultiTexCoord2iARB_names[] = - "iii\0" /* Parameter signature */ - "glMultiTexCoord2i\0" - "glMultiTexCoord2iARB\0" - ""; -#endif - -#if defined(need_GL_SUN_vertex) -static const char ReplacementCodeuiTexCoord2fNormal3fVertex3fSUN_names[] = - "iffffffff\0" /* Parameter signature */ - "glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_3) -static const char MultiTexCoord2svARB_names[] = - "ip\0" /* Parameter signature */ - "glMultiTexCoord2sv\0" - "glMultiTexCoord2svARB\0" - ""; -#endif - -#if defined(need_GL_SUN_triangle_list) -static const char ReplacementCodeubvSUN_names[] = - "p\0" /* Parameter signature */ - "glReplacementCodeubvSUN\0" - ""; -#endif - -#if defined(need_GL_ARB_shader_objects) -static const char Uniform3iARB_names[] = - "iiii\0" /* Parameter signature */ - "glUniform3iARB\0" - ""; -#endif - -#if defined(need_GL_SGIX_fragment_lighting) -static const char GetFragmentMaterialfvSGIX_names[] = - "iip\0" /* Parameter signature */ - "glGetFragmentMaterialfvSGIX\0" - ""; -#endif - -#if defined(need_GL_EXT_coordinate_frame) -static const char Binormal3fEXT_names[] = - "fff\0" /* Parameter signature */ - "glBinormal3fEXT\0" - ""; -#endif - -#if defined(need_GL_ARB_vertex_blend) -static const char WeightivARB_names[] = - "ip\0" /* Parameter signature */ - "glWeightivARB\0" - ""; -#endif - -#if defined(need_GL_SUN_global_alpha) -static const char GlobalAlphaFactordSUN_names[] = - "d\0" /* Parameter signature */ - "glGlobalAlphaFactordSUN\0" - ""; -#endif - -#if defined(need_GL_NV_vertex_program) -static const char VertexAttribs3fvNV_names[] = - "iip\0" /* Parameter signature */ - "glVertexAttribs3fvNV\0" - ""; -#endif - -#if defined(need_GL_EXT_framebuffer_object) -static const char GenerateMipmapEXT_names[] = - "i\0" /* Parameter signature */ - "glGenerateMipmapEXT\0" - ""; -#endif - -#if defined(need_GL_NV_vertex_program) -static const char ProgramParameter4dNV_names[] = - "iidddd\0" /* Parameter signature */ - "glProgramParameter4dNV\0" - ""; -#endif - -#if defined(need_GL_ATI_fragment_shader) -static const char SetFragmentShaderConstantATI_names[] = - "ip\0" /* Parameter signature */ - "glSetFragmentShaderConstantATI\0" - ""; -#endif - -#if defined(need_GL_NV_evaluators) -static const char GetMapAttribParameterivNV_names[] = - "iiip\0" /* Parameter signature */ - "glGetMapAttribParameterivNV\0" - ""; -#endif - -#if defined(need_GL_ARB_shader_objects) -static const char CreateShaderObjectARB_names[] = - "i\0" /* Parameter signature */ - "glCreateShaderObjectARB\0" - ""; -#endif - -#if defined(need_GL_SGIS_sharpen_texture) -static const char GetSharpenTexFuncSGIS_names[] = - "ip\0" /* Parameter signature */ - "glGetSharpenTexFuncSGIS\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_5) || defined(need_GL_ARB_vertex_buffer_object) -static const char BufferDataARB_names[] = - "iipi\0" /* Parameter signature */ - "glBufferData\0" - "glBufferDataARB\0" - ""; -#endif - -#if defined(need_GL_NV_vertex_array_range) -static const char FlushVertexArrayRangeNV_names[] = - "\0" /* Parameter signature */ - "glFlushVertexArrayRangeNV\0" - ""; -#endif - -#if defined(need_GL_ATI_fragment_shader) -static const char SampleMapATI_names[] = - "iii\0" /* Parameter signature */ - "glSampleMapATI\0" - ""; -#endif - -#if defined(need_GL_EXT_vertex_array) -static const char VertexPointerEXT_names[] = - "iiiip\0" /* Parameter signature */ - "glVertexPointerEXT\0" - ""; -#endif - -#if defined(need_GL_SGIS_texture_filter4) -static const char GetTexFilterFuncSGIS_names[] = - "iip\0" /* Parameter signature */ - "glGetTexFilterFuncSGIS\0" - ""; -#endif - -#if defined(need_GL_NV_register_combiners) -static const char GetCombinerOutputParameterfvNV_names[] = - "iiip\0" /* Parameter signature */ - "glGetCombinerOutputParameterfvNV\0" - ""; -#endif - -#if defined(need_GL_EXT_subtexture) -static const char TexSubImage1D_names[] = - "iiiiiip\0" /* Parameter signature */ - "glTexSubImage1D\0" - "glTexSubImage1DEXT\0" - ""; -#endif - -#if defined(need_GL_ARB_vertex_program) -static const char VertexAttrib1sARB_names[] = - "ii\0" /* Parameter signature */ - "glVertexAttrib1sARB\0" - ""; -#endif - -#if defined(need_GL_NV_register_combiners) -static const char FinalCombinerInputNV_names[] = - "iiii\0" /* Parameter signature */ - "glFinalCombinerInputNV\0" - ""; -#endif - -#if defined(need_GL_EXT_histogram) -static const char GetHistogramParameterfvEXT_names[] = - "iip\0" /* Parameter signature */ - "glGetHistogramParameterfvEXT\0" - ""; -#endif - -#if defined(need_GL_SGIX_flush_raster) -static const char FlushRasterSGIX_names[] = - "\0" /* Parameter signature */ - "glFlushRasterSGIX\0" - ""; -#endif - -#if defined(need_GL_SUN_vertex) -static const char ReplacementCodeuiTexCoord2fVertex3fSUN_names[] = - "ifffff\0" /* Parameter signature */ - "glReplacementCodeuiTexCoord2fVertex3fSUN\0" - ""; -#endif - -#if defined(need_GL_ARB_draw_buffers) || defined(need_GL_ATI_draw_buffers) -static const char DrawBuffersARB_names[] = - "ip\0" /* Parameter signature */ - "glDrawBuffersARB\0" - "glDrawBuffersATI\0" - ""; -#endif - -#if defined(need_GL_EXT_framebuffer_object) -static const char IsRenderbufferEXT_names[] = - "i\0" /* Parameter signature */ - "glIsRenderbufferEXT\0" - ""; -#endif - -#if defined(need_GL_VERSION_2_0) -static const char StencilOpSeparate_names[] = - "iiii\0" /* Parameter signature */ - "glStencilOpSeparate\0" - ""; -#endif - -#if defined(need_GL_SGI_color_table) -static const char ColorTableParameteriv_names[] = - "iip\0" /* Parameter signature */ - "glColorTableParameteriv\0" - "glColorTableParameterivSGI\0" - ""; -#endif - -#if defined(need_GL_IBM_vertex_array_lists) -static const char FogCoordPointerListIBM_names[] = - "iipi\0" /* Parameter signature */ - "glFogCoordPointerListIBM\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_4) || defined(need_GL_ARB_window_pos) || defined(need_GL_MESA_window_pos) -static const char WindowPos3dMESA_names[] = - "ddd\0" /* Parameter signature */ - "glWindowPos3d\0" - "glWindowPos3dARB\0" - "glWindowPos3dMESA\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_4) || defined(need_GL_ARB_point_parameters) || defined(need_GL_EXT_point_parameters) || defined(need_GL_SGIS_point_parameters) -static const char PointParameterfvEXT_names[] = - "ip\0" /* Parameter signature */ - "glPointParameterfv\0" - "glPointParameterfvARB\0" - "glPointParameterfvEXT\0" - "glPointParameterfvSGIS\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_4) || defined(need_GL_ARB_window_pos) || defined(need_GL_MESA_window_pos) -static const char WindowPos2fvMESA_names[] = - "p\0" /* Parameter signature */ - "glWindowPos2fv\0" - "glWindowPos2fvARB\0" - "glWindowPos2fvMESA\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_4) || defined(need_GL_EXT_secondary_color) -static const char SecondaryColor3bvEXT_names[] = - "p\0" /* Parameter signature */ - "glSecondaryColor3bv\0" - "glSecondaryColor3bvEXT\0" - ""; -#endif - -#if defined(need_GL_EXT_histogram) -static const char GetHistogramEXT_names[] = - "iiiip\0" /* Parameter signature */ - "glGetHistogramEXT\0" - ""; -#endif - -#if defined(need_GL_IBM_vertex_array_lists) -static const char VertexPointerListIBM_names[] = - "iiipi\0" /* Parameter signature */ - "glVertexPointerListIBM\0" - ""; -#endif - -#if defined(need_GL_ARB_vertex_program) -static const char GetProgramLocalParameterfvARB_names[] = - "iip\0" /* Parameter signature */ - "glGetProgramLocalParameterfvARB\0" - ""; -#endif - -#if defined(need_GL_SGIX_fragment_lighting) -static const char FragmentMaterialfSGIX_names[] = - "iif\0" /* Parameter signature */ - "glFragmentMaterialfSGIX\0" - ""; -#endif - -#if defined(need_GL_EXT_paletted_texture) -static const char GetColorTableEXT_names[] = - "iiip\0" /* Parameter signature */ - "glGetColorTableEXT\0" - ""; -#endif - -#if defined(need_GL_EXT_framebuffer_object) -static const char RenderbufferStorageEXT_names[] = - "iiii\0" /* Parameter signature */ - "glRenderbufferStorageEXT\0" - ""; -#endif - -#if defined(need_GL_NV_fence) -static const char IsFenceNV_names[] = - "i\0" /* Parameter signature */ - "glIsFenceNV\0" - ""; -#endif - -#if defined(need_GL_ARB_shader_objects) -static const char AttachObjectARB_names[] = - "ii\0" /* Parameter signature */ - "glAttachObjectARB\0" - ""; -#endif - -#if defined(need_GL_SGIX_fragment_lighting) -static const char GetFragmentLightivSGIX_names[] = - "iip\0" /* Parameter signature */ - "glGetFragmentLightivSGIX\0" - ""; -#endif - -#if defined(need_GL_ARB_shader_objects) -static const char UniformMatrix2fvARB_names[] = - "iiip\0" /* Parameter signature */ - "glUniformMatrix2fvARB\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_3) -static const char MultiTexCoord2fARB_names[] = - "iff\0" /* Parameter signature */ - "glMultiTexCoord2f\0" - "glMultiTexCoord2fARB\0" - ""; -#endif - -#if defined(need_GL_SGI_color_table) || defined(need_GL_EXT_paletted_texture) -static const char ColorTable_names[] = - "iiiiip\0" /* Parameter signature */ - "glColorTable\0" - "glColorTableSGI\0" - "glColorTableEXT\0" - ""; -#endif - -#if defined(need_GL_NV_evaluators) -static const char MapControlPointsNV_names[] = - "iiiiiiiip\0" /* Parameter signature */ - "glMapControlPointsNV\0" - ""; -#endif - -#if defined(need_GL_EXT_convolution) -static const char ConvolutionFilter2D_names[] = - "iiiiiip\0" /* Parameter signature */ - "glConvolutionFilter2D\0" - "glConvolutionFilter2DEXT\0" - ""; -#endif - -#if defined(need_GL_NV_evaluators) -static const char MapParameterfvNV_names[] = - "iip\0" /* Parameter signature */ - "glMapParameterfvNV\0" - ""; -#endif - -#if defined(need_GL_ARB_vertex_program) -static const char VertexAttrib3dvARB_names[] = - "ip\0" /* Parameter signature */ - "glVertexAttrib3dvARB\0" - ""; -#endif - -#if defined(need_GL_PGI_misc_hints) -static const char HintPGI_names[] = - "ii\0" /* Parameter signature */ - "glHintPGI\0" - ""; -#endif - -#if defined(need_GL_EXT_convolution) -static const char ConvolutionParameteriv_names[] = - "iip\0" /* Parameter signature */ - "glConvolutionParameteriv\0" - "glConvolutionParameterivEXT\0" - ""; -#endif - -#if defined(need_GL_EXT_cull_vertex) -static const char CullParameterdvEXT_names[] = - "ip\0" /* Parameter signature */ - "glCullParameterdvEXT\0" - ""; -#endif - -#if defined(need_GL_NV_fragment_program) -static const char ProgramNamedParameter4fNV_names[] = - "iipffff\0" /* Parameter signature */ - "glProgramNamedParameter4fNV\0" - ""; -#endif - -#if defined(need_GL_SUN_vertex) -static const char Color3fVertex3fSUN_names[] = - "ffffff\0" /* Parameter signature */ - "glColor3fVertex3fSUN\0" - ""; -#endif - -#if defined(need_GL_ARB_vertex_program) -static const char ProgramEnvParameter4fvARB_names[] = - "iip\0" /* Parameter signature */ - "glProgramEnvParameter4fvARB\0" - ""; -#endif - -#if defined(need_GL_SGIX_fragment_lighting) -static const char FragmentLightModeliSGIX_names[] = - "ii\0" /* Parameter signature */ - "glFragmentLightModeliSGIX\0" - ""; -#endif - -#if defined(need_GL_EXT_convolution) -static const char ConvolutionParameterfv_names[] = - "iip\0" /* Parameter signature */ - "glConvolutionParameterfv\0" - "glConvolutionParameterfvEXT\0" - ""; -#endif - -#if defined(need_GL_3DFX_tbuffer) -static const char TbufferMask3DFX_names[] = - "i\0" /* Parameter signature */ - "glTbufferMask3DFX\0" - ""; -#endif - -#if defined(need_GL_NV_vertex_program) -static const char LoadProgramNV_names[] = - "iiip\0" /* Parameter signature */ - "glLoadProgramNV\0" - ""; -#endif - -#if defined(need_GL_NV_vertex_program) -static const char VertexAttrib4fvNV_names[] = - "ip\0" /* Parameter signature */ - "glVertexAttrib4fvNV\0" - ""; -#endif - -#if defined(need_GL_ARB_shader_objects) -static const char GetAttachedObjectsARB_names[] = - "iipp\0" /* Parameter signature */ - "glGetAttachedObjectsARB\0" - ""; -#endif - -#if defined(need_GL_ARB_shader_objects) -static const char Uniform3fvARB_names[] = - "iip\0" /* Parameter signature */ - "glUniform3fvARB\0" - ""; -#endif - -#if defined(need_GL_EXT_draw_range_elements) -static const char DrawRangeElements_names[] = - "iiiiip\0" /* Parameter signature */ - "glDrawRangeElements\0" - "glDrawRangeElementsEXT\0" - ""; -#endif - -#if defined(need_GL_SGIX_sprite) -static const char SpriteParameterfvSGIX_names[] = - "ip\0" /* Parameter signature */ - "glSpriteParameterfvSGIX\0" - ""; -#endif - -#if defined(need_GL_EXT_framebuffer_object) -static const char CheckFramebufferStatusEXT_names[] = - "i\0" /* Parameter signature */ - "glCheckFramebufferStatusEXT\0" - ""; -#endif - -#if defined(need_GL_SUN_global_alpha) -static const char GlobalAlphaFactoruiSUN_names[] = - "i\0" /* Parameter signature */ - "glGlobalAlphaFactoruiSUN\0" - ""; -#endif - -#if defined(need_GL_ARB_shader_objects) -static const char GetHandleARB_names[] = - "i\0" /* Parameter signature */ - "glGetHandleARB\0" - ""; -#endif - -#if defined(need_GL_ARB_vertex_program) -static const char GetVertexAttribivARB_names[] = - "iip\0" /* Parameter signature */ - "glGetVertexAttribivARB\0" - ""; -#endif - -#if defined(need_GL_NV_register_combiners) -static const char GetCombinerInputParameterfvNV_names[] = - "iiiip\0" /* Parameter signature */ - "glGetCombinerInputParameterfvNV\0" - ""; -#endif - -#if defined(need_GL_SUN_vertex) -static const char ReplacementCodeuiNormal3fVertex3fvSUN_names[] = - "ppp\0" /* Parameter signature */ - "glReplacementCodeuiNormal3fVertex3fvSUN\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_3) || defined(need_GL_ARB_transpose_matrix) -static const char LoadTransposeMatrixdARB_names[] = - "p\0" /* Parameter signature */ - "glLoadTransposeMatrixd\0" - "glLoadTransposeMatrixdARB\0" - ""; -#endif - -#if defined(need_GL_VERSION_2_0) -static const char StencilFuncSeparate_names[] = - "iiii\0" /* Parameter signature */ - "glStencilFuncSeparate\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_4) || defined(need_GL_EXT_secondary_color) -static const char SecondaryColor3sEXT_names[] = - "iii\0" /* Parameter signature */ - "glSecondaryColor3s\0" - "glSecondaryColor3sEXT\0" - ""; -#endif - -#if defined(need_GL_SUN_vertex) -static const char Color3fVertex3fvSUN_names[] = - "pp\0" /* Parameter signature */ - "glColor3fVertex3fvSUN\0" - ""; -#endif - -#if defined(need_GL_SUN_global_alpha) -static const char GlobalAlphaFactorbSUN_names[] = - "i\0" /* Parameter signature */ - "glGlobalAlphaFactorbSUN\0" - ""; -#endif - -#if defined(need_GL_HP_image_transform) -static const char ImageTransformParameterfvHP_names[] = - "iip\0" /* Parameter signature */ - "glImageTransformParameterfvHP\0" - ""; -#endif - -#if defined(need_GL_ARB_vertex_program) -static const char VertexAttrib4ivARB_names[] = - "ip\0" /* Parameter signature */ - "glVertexAttrib4ivARB\0" - ""; -#endif - -#if defined(need_GL_NV_vertex_program) -static const char VertexAttrib3fNV_names[] = - "ifff\0" /* Parameter signature */ - "glVertexAttrib3fNV\0" - ""; -#endif - -#if defined(need_GL_NV_vertex_program) -static const char VertexAttribs2dvNV_names[] = - "iip\0" /* Parameter signature */ - "glVertexAttribs2dvNV\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_3) -static const char MultiTexCoord3fvARB_names[] = - "ip\0" /* Parameter signature */ - "glMultiTexCoord3fv\0" - "glMultiTexCoord3fvARB\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_4) || defined(need_GL_EXT_secondary_color) -static const char SecondaryColor3dEXT_names[] = - "ddd\0" /* Parameter signature */ - "glSecondaryColor3d\0" - "glSecondaryColor3dEXT\0" - ""; -#endif - -#if defined(need_GL_NV_vertex_program) -static const char GetProgramParameterfvNV_names[] = - "iiip\0" /* Parameter signature */ - "glGetProgramParameterfvNV\0" - ""; -#endif - -#if defined(need_GL_EXT_coordinate_frame) -static const char TangentPointerEXT_names[] = - "iip\0" /* Parameter signature */ - "glTangentPointerEXT\0" - ""; -#endif - -#if defined(need_GL_SUN_vertex) -static const char Color4fNormal3fVertex3fvSUN_names[] = - "ppp\0" /* Parameter signature */ - "glColor4fNormal3fVertex3fvSUN\0" - ""; -#endif - -#if defined(need_GL_SGIX_instruments) -static const char GetInstrumentsSGIX_names[] = - "\0" /* Parameter signature */ - "glGetInstrumentsSGIX\0" - ""; -#endif - -#if defined(need_GL_NV_evaluators) -static const char EvalMapsNV_names[] = - "ii\0" /* Parameter signature */ - "glEvalMapsNV\0" - ""; -#endif - -#if defined(need_GL_EXT_subtexture) -static const char TexSubImage2D_names[] = - "iiiiiiiip\0" /* Parameter signature */ - "glTexSubImage2D\0" - "glTexSubImage2DEXT\0" - ""; -#endif - -#if defined(need_GL_SGIX_fragment_lighting) -static const char FragmentLightivSGIX_names[] = - "iip\0" /* Parameter signature */ - "glFragmentLightivSGIX\0" - ""; -#endif - -#if defined(need_GL_EXT_framebuffer_object) -static const char DeleteRenderbuffersEXT_names[] = - "ip\0" /* Parameter signature */ - "glDeleteRenderbuffersEXT\0" - ""; -#endif - -#if defined(need_GL_EXT_pixel_transform) -static const char PixelTransformParameterfvEXT_names[] = - "iip\0" /* Parameter signature */ - "glPixelTransformParameterfvEXT\0" - ""; -#endif - -#if defined(need_GL_ARB_vertex_program) -static const char VertexAttrib4bvARB_names[] = - "ip\0" /* Parameter signature */ - "glVertexAttrib4bvARB\0" - ""; -#endif - -#if defined(need_GL_ATI_fragment_shader) -static const char AlphaFragmentOp2ATI_names[] = - "iiiiiiiii\0" /* Parameter signature */ - "glAlphaFragmentOp2ATI\0" - ""; -#endif - -#if defined(need_GL_EXT_convolution) -static const char GetSeparableFilterEXT_names[] = - "iiippp\0" /* Parameter signature */ - "glGetSeparableFilterEXT\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_3) -static const char MultiTexCoord4sARB_names[] = - "iiiii\0" /* Parameter signature */ - "glMultiTexCoord4s\0" - "glMultiTexCoord4sARB\0" - ""; -#endif - -#if defined(need_GL_SGIX_fragment_lighting) -static const char GetFragmentMaterialivSGIX_names[] = - "iip\0" /* Parameter signature */ - "glGetFragmentMaterialivSGIX\0" - ""; -#endif - -#if defined(need_GL_MESA_window_pos) -static const char WindowPos4dMESA_names[] = - "dddd\0" /* Parameter signature */ - "glWindowPos4dMESA\0" - ""; -#endif - -#if defined(need_GL_ARB_vertex_blend) -static const char WeightPointerARB_names[] = - "iiip\0" /* Parameter signature */ - "glWeightPointerARB\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_4) || defined(need_GL_ARB_window_pos) || defined(need_GL_MESA_window_pos) -static const char WindowPos2dMESA_names[] = - "dd\0" /* Parameter signature */ - "glWindowPos2d\0" - "glWindowPos2dARB\0" - "glWindowPos2dMESA\0" - ""; -#endif - -#if defined(need_GL_EXT_framebuffer_object) -static const char FramebufferTexture3DEXT_names[] = - "iiiiii\0" /* Parameter signature */ - "glFramebufferTexture3DEXT\0" - ""; -#endif - -#if defined(need_GL_EXT_blend_minmax) -static const char BlendEquation_names[] = - "i\0" /* Parameter signature */ - "glBlendEquation\0" - "glBlendEquationEXT\0" - ""; -#endif - -#if defined(need_GL_NV_vertex_program) -static const char VertexAttrib3dNV_names[] = - "iddd\0" /* Parameter signature */ - "glVertexAttrib3dNV\0" - ""; -#endif - -#if defined(need_GL_ARB_vertex_program) -static const char VertexAttrib3dARB_names[] = - "iddd\0" /* Parameter signature */ - "glVertexAttrib3dARB\0" - ""; -#endif - -#if defined(need_GL_SUN_vertex) -static const char ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN_names[] = - "ppppp\0" /* Parameter signature */ - "glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN\0" - ""; -#endif - -#if defined(need_GL_ARB_vertex_program) -static const char VertexAttrib4fARB_names[] = - "iffff\0" /* Parameter signature */ - "glVertexAttrib4fARB\0" - ""; -#endif - -#if defined(need_GL_EXT_index_func) -static const char IndexFuncEXT_names[] = - "if\0" /* Parameter signature */ - "glIndexFuncEXT\0" - ""; -#endif - -#if defined(need_GL_SGIX_list_priority) -static const char GetListParameterfvSGIX_names[] = - "iip\0" /* Parameter signature */ - "glGetListParameterfvSGIX\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_3) -static const char MultiTexCoord2dvARB_names[] = - "ip\0" /* Parameter signature */ - "glMultiTexCoord2dv\0" - "glMultiTexCoord2dvARB\0" - ""; -#endif - -#if defined(need_GL_EXT_cull_vertex) -static const char CullParameterfvEXT_names[] = - "ip\0" /* Parameter signature */ - "glCullParameterfvEXT\0" - ""; -#endif - -#if defined(need_GL_NV_fragment_program) -static const char ProgramNamedParameter4fvNV_names[] = - "iipp\0" /* Parameter signature */ - "glProgramNamedParameter4fvNV\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_4) || defined(need_GL_EXT_secondary_color) -static const char SecondaryColorPointerEXT_names[] = - "iiip\0" /* Parameter signature */ - "glSecondaryColorPointer\0" - "glSecondaryColorPointerEXT\0" - ""; -#endif - -#if defined(need_GL_ARB_vertex_program) -static const char VertexAttrib4fvARB_names[] = - "ip\0" /* Parameter signature */ - "glVertexAttrib4fvARB\0" - ""; -#endif - -#if defined(need_GL_IBM_vertex_array_lists) -static const char ColorPointerListIBM_names[] = - "iiipi\0" /* Parameter signature */ - "glColorPointerListIBM\0" - ""; -#endif - -#if defined(need_GL_ARB_shader_objects) -static const char GetActiveUniformARB_names[] = - "iiipppp\0" /* Parameter signature */ - "glGetActiveUniformARB\0" - ""; -#endif - -#if defined(need_GL_HP_image_transform) -static const char ImageTransformParameteriHP_names[] = - "iii\0" /* Parameter signature */ - "glImageTransformParameteriHP\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_3) -static const char MultiTexCoord1svARB_names[] = - "ip\0" /* Parameter signature */ - "glMultiTexCoord1sv\0" - "glMultiTexCoord1svARB\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_5) || defined(need_GL_ARB_occlusion_query) -static const char EndQueryARB_names[] = - "i\0" /* Parameter signature */ - "glEndQuery\0" - "glEndQueryARB\0" - ""; -#endif - -#if defined(need_GL_NV_fence) -static const char DeleteFencesNV_names[] = - "ip\0" /* Parameter signature */ - "glDeleteFencesNV\0" - ""; -#endif - -#if defined(need_GL_SGIX_polynomial_ffd) -static const char DeformationMap3dSGIX_names[] = - "iddiiddiiddiip\0" /* Parameter signature */ - "glDeformationMap3dSGIX\0" - ""; -#endif - -#if defined(need_GL_HP_image_transform) -static const char GetImageTransformParameterivHP_names[] = - "iip\0" /* Parameter signature */ - "glGetImageTransformParameterivHP\0" - ""; -#endif - -#if defined(need_GL_MESA_window_pos) -static const char WindowPos4ivMESA_names[] = - "p\0" /* Parameter signature */ - "glWindowPos4ivMESA\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_3) -static const char MultiTexCoord3svARB_names[] = - "ip\0" /* Parameter signature */ - "glMultiTexCoord3sv\0" - "glMultiTexCoord3svARB\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_3) -static const char MultiTexCoord4iARB_names[] = - "iiiii\0" /* Parameter signature */ - "glMultiTexCoord4i\0" - "glMultiTexCoord4iARB\0" - ""; -#endif - -#if defined(need_GL_EXT_coordinate_frame) -static const char Binormal3ivEXT_names[] = - "p\0" /* Parameter signature */ - "glBinormal3ivEXT\0" - ""; -#endif - -#if defined(need_GL_MESA_resize_buffers) -static const char ResizeBuffersMESA_names[] = - "\0" /* Parameter signature */ - "glResizeBuffersMESA\0" - ""; -#endif - -#if defined(need_GL_ARB_shader_objects) -static const char GetUniformivARB_names[] = - "iip\0" /* Parameter signature */ - "glGetUniformivARB\0" - ""; -#endif - -#if defined(need_GL_SGIS_pixel_texture) -static const char PixelTexGenParameteriSGIS_names[] = - "ii\0" /* Parameter signature */ - "glPixelTexGenParameteriSGIS\0" - ""; -#endif - -#if defined(need_GL_INTEL_parallel_arrays) -static const char VertexPointervINTEL_names[] = - "iip\0" /* Parameter signature */ - "glVertexPointervINTEL\0" - ""; -#endif - -#if defined(need_GL_SUN_vertex) -static const char ReplacementCodeuiColor4fNormal3fVertex3fvSUN_names[] = - "pppp\0" /* Parameter signature */ - "glReplacementCodeuiColor4fNormal3fVertex3fvSUN\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_4) || defined(need_GL_EXT_secondary_color) -static const char SecondaryColor3uiEXT_names[] = - "iii\0" /* Parameter signature */ - "glSecondaryColor3ui\0" - "glSecondaryColor3uiEXT\0" - ""; -#endif - -#if defined(need_GL_SGIX_instruments) -static const char StartInstrumentsSGIX_names[] = - "\0" /* Parameter signature */ - "glStartInstrumentsSGIX\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_4) || defined(need_GL_EXT_secondary_color) -static const char SecondaryColor3usvEXT_names[] = - "p\0" /* Parameter signature */ - "glSecondaryColor3usv\0" - "glSecondaryColor3usvEXT\0" - ""; -#endif - -#if defined(need_GL_NV_vertex_program) -static const char VertexAttrib2fvNV_names[] = - "ip\0" /* Parameter signature */ - "glVertexAttrib2fvNV\0" - ""; -#endif - -#if defined(need_GL_ARB_vertex_program) -static const char ProgramLocalParameter4dvARB_names[] = - "iip\0" /* Parameter signature */ - "glProgramLocalParameter4dvARB\0" - ""; -#endif - -#if defined(need_GL_ARB_matrix_palette) -static const char MatrixIndexuivARB_names[] = - "ip\0" /* Parameter signature */ - "glMatrixIndexuivARB\0" - ""; -#endif - -#if defined(need_GL_EXT_coordinate_frame) -static const char Tangent3sEXT_names[] = - "iii\0" /* Parameter signature */ - "glTangent3sEXT\0" - ""; -#endif - -#if defined(need_GL_SUN_global_alpha) -static const char GlobalAlphaFactorfSUN_names[] = - "f\0" /* Parameter signature */ - "glGlobalAlphaFactorfSUN\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_3) -static const char MultiTexCoord3iARB_names[] = - "iiii\0" /* Parameter signature */ - "glMultiTexCoord3i\0" - "glMultiTexCoord3iARB\0" - ""; -#endif - -#if defined(need_GL_EXT_convolution) -static const char GetConvolutionFilterEXT_names[] = - "iiip\0" /* Parameter signature */ - "glGetConvolutionFilterEXT\0" - ""; -#endif - -#if defined(need_GL_IBM_vertex_array_lists) -static const char TexCoordPointerListIBM_names[] = - "iiipi\0" /* Parameter signature */ - "glTexCoordPointerListIBM\0" - ""; -#endif - -#if defined(need_GL_SUN_global_alpha) -static const char GlobalAlphaFactorusSUN_names[] = - "i\0" /* Parameter signature */ - "glGlobalAlphaFactorusSUN\0" - ""; -#endif - -#if defined(need_GL_NV_vertex_program) -static const char VertexAttrib2dvNV_names[] = - "ip\0" /* Parameter signature */ - "glVertexAttrib2dvNV\0" - ""; -#endif - -#if defined(need_GL_EXT_framebuffer_object) -static const char FramebufferRenderbufferEXT_names[] = - "iiii\0" /* Parameter signature */ - "glFramebufferRenderbufferEXT\0" - ""; -#endif - -#if defined(need_GL_NV_vertex_program) -static const char VertexAttrib1dvNV_names[] = - "ip\0" /* Parameter signature */ - "glVertexAttrib1dvNV\0" - ""; -#endif - -#if defined(need_GL_NV_fence) -static const char SetFenceNV_names[] = - "ii\0" /* Parameter signature */ - "glSetFenceNV\0" - ""; -#endif - -#if defined(need_GL_EXT_framebuffer_object) -static const char FramebufferTexture1DEXT_names[] = - "iiiii\0" /* Parameter signature */ - "glFramebufferTexture1DEXT\0" - ""; -#endif - -#if defined(need_GL_NV_register_combiners) -static const char GetCombinerOutputParameterivNV_names[] = - "iiip\0" /* Parameter signature */ - "glGetCombinerOutputParameterivNV\0" - ""; -#endif - -#if defined(need_GL_SGIS_pixel_texture) -static const char PixelTexGenParameterivSGIS_names[] = - "ip\0" /* Parameter signature */ - "glPixelTexGenParameterivSGIS\0" - ""; -#endif - -#if defined(need_GL_EXT_texture_perturb_normal) -static const char TextureNormalEXT_names[] = - "i\0" /* Parameter signature */ - "glTextureNormalEXT\0" - ""; -#endif - -#if defined(need_GL_IBM_vertex_array_lists) -static const char IndexPointerListIBM_names[] = - "iipi\0" /* Parameter signature */ - "glIndexPointerListIBM\0" - ""; -#endif - -#if defined(need_GL_ARB_vertex_blend) -static const char WeightfvARB_names[] = - "ip\0" /* Parameter signature */ - "glWeightfvARB\0" - ""; -#endif - -#if defined(need_GL_NV_vertex_program) -static const char ProgramParameter4fvNV_names[] = - "iip\0" /* Parameter signature */ - "glProgramParameter4fvNV\0" - ""; -#endif - -#if defined(need_GL_MESA_window_pos) -static const char WindowPos4fMESA_names[] = - "ffff\0" /* Parameter signature */ - "glWindowPos4fMESA\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_4) || defined(need_GL_ARB_window_pos) || defined(need_GL_MESA_window_pos) -static const char WindowPos3dvMESA_names[] = - "p\0" /* Parameter signature */ - "glWindowPos3dv\0" - "glWindowPos3dvARB\0" - "glWindowPos3dvMESA\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_3) -static const char MultiTexCoord1dARB_names[] = - "id\0" /* Parameter signature */ - "glMultiTexCoord1d\0" - "glMultiTexCoord1dARB\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_4) || defined(need_GL_NV_point_sprite) -static const char PointParameterivNV_names[] = - "ip\0" /* Parameter signature */ - "glPointParameteriv\0" - "glPointParameterivNV\0" - ""; -#endif - -#if defined(need_GL_ARB_shader_objects) -static const char Uniform2fvARB_names[] = - "iip\0" /* Parameter signature */ - "glUniform2fvARB\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_3) -static const char MultiTexCoord3dvARB_names[] = - "ip\0" /* Parameter signature */ - "glMultiTexCoord3dv\0" - "glMultiTexCoord3dvARB\0" - ""; -#endif - -#if defined(need_GL_SUN_vertex) -static const char ReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN_names[] = - "pppp\0" /* Parameter signature */ - "glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN\0" - ""; -#endif - -#if defined(need_GL_ARB_shader_objects) -static const char DeleteObjectARB_names[] = - "i\0" /* Parameter signature */ - "glDeleteObjectARB\0" - ""; -#endif - -#if defined(need_GL_ARB_shader_objects) -static const char UseProgramObjectARB_names[] = - "i\0" /* Parameter signature */ - "glUseProgramObjectARB\0" - ""; -#endif - -#if defined(need_GL_NV_fragment_program) -static const char ProgramNamedParameter4dvNV_names[] = - "iipp\0" /* Parameter signature */ - "glProgramNamedParameter4dvNV\0" - ""; -#endif - -#if defined(need_GL_EXT_coordinate_frame) -static const char Tangent3fvEXT_names[] = - "p\0" /* Parameter signature */ - "glTangent3fvEXT\0" - ""; -#endif - -#if defined(need_GL_EXT_framebuffer_object) -static const char BindFramebufferEXT_names[] = - "ii\0" /* Parameter signature */ - "glBindFramebufferEXT\0" - ""; -#endif - -#if defined(need_GL_ARB_vertex_program) -static const char VertexAttrib4usvARB_names[] = - "ip\0" /* Parameter signature */ - "glVertexAttrib4usvARB\0" - ""; -#endif - -#if defined(need_GL_EXT_compiled_vertex_array) -static const char UnlockArraysEXT_names[] = - "\0" /* Parameter signature */ - "glUnlockArraysEXT\0" - ""; -#endif - -#if defined(need_GL_SUN_vertex) -static const char TexCoord2fColor3fVertex3fSUN_names[] = - "ffffffff\0" /* Parameter signature */ - "glTexCoord2fColor3fVertex3fSUN\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_4) || defined(need_GL_ARB_window_pos) || defined(need_GL_MESA_window_pos) -static const char WindowPos3fvMESA_names[] = - "p\0" /* Parameter signature */ - "glWindowPos3fv\0" - "glWindowPos3fvARB\0" - "glWindowPos3fvMESA\0" - ""; -#endif - -#if defined(need_GL_NV_vertex_program) -static const char VertexAttrib1svNV_names[] = - "ip\0" /* Parameter signature */ - "glVertexAttrib1svNV\0" - ""; -#endif - -#if defined(need_GL_EXT_copy_texture) -static const char CopyTexSubImage3D_names[] = - "iiiiiiiii\0" /* Parameter signature */ - "glCopyTexSubImage3D\0" - "glCopyTexSubImage3DEXT\0" - ""; -#endif - -#if defined(need_GL_ARB_vertex_program) -static const char VertexAttrib2dARB_names[] = - "idd\0" /* Parameter signature */ - "glVertexAttrib2dARB\0" - ""; -#endif - -#if defined(need_GL_SGIS_texture_color_mask) -static const char TextureColorMaskSGIS_names[] = - "iiii\0" /* Parameter signature */ - "glTextureColorMaskSGIS\0" - ""; -#endif - -#if defined(need_GL_SGI_color_table) -static const char CopyColorTable_names[] = - "iiiii\0" /* Parameter signature */ - "glCopyColorTable\0" - "glCopyColorTableSGI\0" - ""; -#endif - -#if defined(need_GL_INTEL_parallel_arrays) -static const char ColorPointervINTEL_names[] = - "iip\0" /* Parameter signature */ - "glColorPointervINTEL\0" - ""; -#endif - -#if defined(need_GL_ATI_fragment_shader) -static const char AlphaFragmentOp1ATI_names[] = - "iiiiii\0" /* Parameter signature */ - "glAlphaFragmentOp1ATI\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_3) -static const char MultiTexCoord3ivARB_names[] = - "ip\0" /* Parameter signature */ - "glMultiTexCoord3iv\0" - "glMultiTexCoord3ivARB\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_3) -static const char MultiTexCoord2sARB_names[] = - "iii\0" /* Parameter signature */ - "glMultiTexCoord2s\0" - "glMultiTexCoord2sARB\0" - ""; -#endif - -#if defined(need_GL_ARB_vertex_program) -static const char VertexAttrib1dvARB_names[] = - "ip\0" /* Parameter signature */ - "glVertexAttrib1dvARB\0" - ""; -#endif - -#if defined(need_GL_EXT_texture_object) -static const char DeleteTextures_names[] = - "ip\0" /* Parameter signature */ - "glDeleteTextures\0" - "glDeleteTexturesEXT\0" - ""; -#endif - -#if defined(need_GL_EXT_vertex_array) -static const char TexCoordPointerEXT_names[] = - "iiiip\0" /* Parameter signature */ - "glTexCoordPointerEXT\0" - ""; -#endif - -#if defined(need_GL_SGIS_texture4D) -static const char TexSubImage4DSGIS_names[] = - "iiiiiiiiiiiip\0" /* Parameter signature */ - "glTexSubImage4DSGIS\0" - ""; -#endif - -#if defined(need_GL_NV_register_combiners2) -static const char CombinerStageParameterfvNV_names[] = - "iip\0" /* Parameter signature */ - "glCombinerStageParameterfvNV\0" - ""; -#endif - -#if defined(need_GL_SGIX_instruments) -static const char StopInstrumentsSGIX_names[] = - "i\0" /* Parameter signature */ - "glStopInstrumentsSGIX\0" - ""; -#endif - -#if defined(need_GL_SUN_vertex) -static const char TexCoord4fColor4fNormal3fVertex4fSUN_names[] = - "fffffffffffffff\0" /* Parameter signature */ - "glTexCoord4fColor4fNormal3fVertex4fSUN\0" - ""; -#endif - -#if defined(need_GL_SGIX_polynomial_ffd) -static const char DeformSGIX_names[] = - "i\0" /* Parameter signature */ - "glDeformSGIX\0" - ""; -#endif - -#if defined(need_GL_ARB_vertex_program) -static const char GetVertexAttribfvARB_names[] = - "iip\0" /* Parameter signature */ - "glGetVertexAttribfvARB\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_4) || defined(need_GL_EXT_secondary_color) -static const char SecondaryColor3ivEXT_names[] = - "p\0" /* Parameter signature */ - "glSecondaryColor3iv\0" - "glSecondaryColor3ivEXT\0" - ""; -#endif - -#if defined(need_GL_SGIS_detail_texture) -static const char GetDetailTexFuncSGIS_names[] = - "ip\0" /* Parameter signature */ - "glGetDetailTexFuncSGIS\0" - ""; -#endif - -#if defined(need_GL_NV_register_combiners2) -static const char GetCombinerStageParameterfvNV_names[] = - "iip\0" /* Parameter signature */ - "glGetCombinerStageParameterfvNV\0" - ""; -#endif - -#if defined(need_GL_SUN_vertex) -static const char Color4ubVertex2fvSUN_names[] = - "pp\0" /* Parameter signature */ - "glColor4ubVertex2fvSUN\0" - ""; -#endif - -#if defined(need_GL_SGIS_texture_filter4) -static const char TexFilterFuncSGIS_names[] = - "iiip\0" /* Parameter signature */ - "glTexFilterFuncSGIS\0" - ""; -#endif - -#if defined(need_GL_SGIS_multisample) || defined(need_GL_EXT_multisample) -static const char SampleMaskSGIS_names[] = - "fi\0" /* Parameter signature */ - "glSampleMaskSGIS\0" - "glSampleMaskEXT\0" - ""; -#endif - -#if defined(need_GL_ARB_vertex_shader) -static const char GetAttribLocationARB_names[] = - "ip\0" /* Parameter signature */ - "glGetAttribLocationARB\0" - ""; -#endif - -#if defined(need_GL_ARB_vertex_program) -static const char VertexAttrib4ubvARB_names[] = - "ip\0" /* Parameter signature */ - "glVertexAttrib4ubvARB\0" - ""; -#endif - -#if defined(need_GL_SGIS_detail_texture) -static const char DetailTexFuncSGIS_names[] = - "iip\0" /* Parameter signature */ - "glDetailTexFuncSGIS\0" - ""; -#endif - -#if defined(need_GL_SUN_vertex) -static const char Normal3fVertex3fSUN_names[] = - "ffffff\0" /* Parameter signature */ - "glNormal3fVertex3fSUN\0" - ""; -#endif - -#if defined(need_GL_EXT_copy_texture) -static const char CopyTexImage2D_names[] = - "iiiiiiii\0" /* Parameter signature */ - "glCopyTexImage2D\0" - "glCopyTexImage2DEXT\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_5) || defined(need_GL_ARB_vertex_buffer_object) -static const char GetBufferPointervARB_names[] = - "iip\0" /* Parameter signature */ - "glGetBufferPointerv\0" - "glGetBufferPointervARB\0" - ""; -#endif - -#if defined(need_GL_ARB_vertex_program) -static const char ProgramEnvParameter4fARB_names[] = - "iiffff\0" /* Parameter signature */ - "glProgramEnvParameter4fARB\0" - ""; -#endif - -#if defined(need_GL_ARB_shader_objects) -static const char Uniform3ivARB_names[] = - "iip\0" /* Parameter signature */ - "glUniform3ivARB\0" - ""; -#endif - -#if defined(need_GL_NV_fence) -static const char GetFenceivNV_names[] = - "iip\0" /* Parameter signature */ - "glGetFenceivNV\0" - ""; -#endif - -#if defined(need_GL_MESA_window_pos) -static const char WindowPos4dvMESA_names[] = - "p\0" /* Parameter signature */ - "glWindowPos4dvMESA\0" - ""; -#endif - -#if defined(need_GL_EXT_color_subtable) -static const char ColorSubTable_names[] = - "iiiiip\0" /* Parameter signature */ - "glColorSubTable\0" - "glColorSubTableEXT\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_3) -static const char MultiTexCoord4ivARB_names[] = - "ip\0" /* Parameter signature */ - "glMultiTexCoord4iv\0" - "glMultiTexCoord4ivARB\0" - ""; -#endif - -#if defined(need_GL_NV_evaluators) -static const char GetMapAttribParameterfvNV_names[] = - "iiip\0" /* Parameter signature */ - "glGetMapAttribParameterfvNV\0" - ""; -#endif - -#if defined(need_GL_ARB_vertex_program) -static const char VertexAttrib4sARB_names[] = - "iiiii\0" /* Parameter signature */ - "glVertexAttrib4sARB\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_5) || defined(need_GL_ARB_occlusion_query) -static const char GetQueryObjectuivARB_names[] = - "iip\0" /* Parameter signature */ - "glGetQueryObjectuiv\0" - "glGetQueryObjectuivARB\0" - ""; -#endif - -#if defined(need_GL_NV_evaluators) -static const char MapParameterivNV_names[] = - "iip\0" /* Parameter signature */ - "glMapParameterivNV\0" - ""; -#endif - -#if defined(need_GL_EXT_framebuffer_object) -static const char GenRenderbuffersEXT_names[] = - "ip\0" /* Parameter signature */ - "glGenRenderbuffersEXT\0" - ""; -#endif - -#if defined(need_GL_EXT_convolution) -static const char GetConvolutionParameterfvEXT_names[] = - "iip\0" /* Parameter signature */ - "glGetConvolutionParameterfvEXT\0" - ""; -#endif - -#if defined(need_GL_EXT_histogram) -static const char GetMinmaxParameterfvEXT_names[] = - "iip\0" /* Parameter signature */ - "glGetMinmaxParameterfvEXT\0" - ""; -#endif - -#if defined(need_GL_ARB_vertex_program) -static const char VertexAttrib2dvARB_names[] = - "ip\0" /* Parameter signature */ - "glVertexAttrib2dvARB\0" - ""; -#endif - -#if defined(need_GL_EXT_vertex_array) -static const char EdgeFlagPointerEXT_names[] = - "iip\0" /* Parameter signature */ - "glEdgeFlagPointerEXT\0" - ""; -#endif - -#if defined(need_GL_NV_vertex_program) -static const char VertexAttribs2svNV_names[] = - "iip\0" /* Parameter signature */ - "glVertexAttribs2svNV\0" - ""; -#endif - -#if defined(need_GL_ARB_vertex_blend) -static const char WeightbvARB_names[] = - "ip\0" /* Parameter signature */ - "glWeightbvARB\0" - ""; -#endif - -#if defined(need_GL_ARB_vertex_program) -static const char VertexAttrib2fvARB_names[] = - "ip\0" /* Parameter signature */ - "glVertexAttrib2fvARB\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_5) || defined(need_GL_ARB_vertex_buffer_object) -static const char GetBufferParameterivARB_names[] = - "iip\0" /* Parameter signature */ - "glGetBufferParameteriv\0" - "glGetBufferParameterivARB\0" - ""; -#endif - -#if defined(need_GL_SGIX_list_priority) -static const char ListParameteriSGIX_names[] = - "iii\0" /* Parameter signature */ - "glListParameteriSGIX\0" - ""; -#endif - -#if defined(need_GL_SUN_vertex) -static const char ReplacementCodeuiColor4fNormal3fVertex3fSUN_names[] = - "iffffffffff\0" /* Parameter signature */ - "glReplacementCodeuiColor4fNormal3fVertex3fSUN\0" - ""; -#endif - -#if defined(need_GL_SGIX_instruments) -static const char InstrumentsBufferSGIX_names[] = - "ip\0" /* Parameter signature */ - "glInstrumentsBufferSGIX\0" - ""; -#endif - -#if defined(need_GL_ARB_vertex_program) -static const char VertexAttrib4NivARB_names[] = - "ip\0" /* Parameter signature */ - "glVertexAttrib4NivARB\0" - ""; -#endif - -#if defined(need_GL_SUN_triangle_list) -static const char ReplacementCodeuivSUN_names[] = - "p\0" /* Parameter signature */ - "glReplacementCodeuivSUN\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_4) || defined(need_GL_ARB_window_pos) || defined(need_GL_MESA_window_pos) -static const char WindowPos2iMESA_names[] = - "ii\0" /* Parameter signature */ - "glWindowPos2i\0" - "glWindowPos2iARB\0" - "glWindowPos2iMESA\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_4) || defined(need_GL_EXT_secondary_color) -static const char SecondaryColor3fvEXT_names[] = - "p\0" /* Parameter signature */ - "glSecondaryColor3fv\0" - "glSecondaryColor3fvEXT\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_3) || defined(need_GL_ARB_texture_compression) -static const char CompressedTexSubImage1DARB_names[] = - "iiiiiip\0" /* Parameter signature */ - "glCompressedTexSubImage1D\0" - "glCompressedTexSubImage1DARB\0" - ""; -#endif - -#if defined(need_GL_SUN_vertex) -static const char TexCoord2fNormal3fVertex3fSUN_names[] = - "ffffffff\0" /* Parameter signature */ - "glTexCoord2fNormal3fVertex3fSUN\0" - ""; -#endif - -#if defined(need_GL_NV_vertex_program) -static const char GetVertexAttribivNV_names[] = - "iip\0" /* Parameter signature */ - "glGetVertexAttribivNV\0" - ""; -#endif - -#if defined(need_GL_ARB_vertex_program) -static const char GetProgramStringARB_names[] = - "iip\0" /* Parameter signature */ - "glGetProgramStringARB\0" - ""; -#endif - -#if defined(need_GL_ARB_shader_objects) -static const char CompileShaderARB_names[] = - "i\0" /* Parameter signature */ - "glCompileShaderARB\0" - ""; -#endif - -#if defined(need_GL_NV_register_combiners) -static const char CombinerOutputNV_names[] = - "iiiiiiiiii\0" /* Parameter signature */ - "glCombinerOutputNV\0" - ""; -#endif - -#if defined(need_GL_SGIX_list_priority) -static const char ListParameterfvSGIX_names[] = - "iip\0" /* Parameter signature */ - "glListParameterfvSGIX\0" - ""; -#endif - -#if defined(need_GL_EXT_coordinate_frame) -static const char Tangent3dvEXT_names[] = - "p\0" /* Parameter signature */ - "glTangent3dvEXT\0" - ""; -#endif - -#if defined(need_GL_NV_vertex_program) -static const char GetVertexAttribfvNV_names[] = - "iip\0" /* Parameter signature */ - "glGetVertexAttribfvNV\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_4) || defined(need_GL_ARB_window_pos) || defined(need_GL_MESA_window_pos) -static const char WindowPos3sMESA_names[] = - "iii\0" /* Parameter signature */ - "glWindowPos3s\0" - "glWindowPos3sARB\0" - "glWindowPos3sMESA\0" - ""; -#endif - -#if defined(need_GL_NV_vertex_program) -static const char VertexAttrib2svNV_names[] = - "ip\0" /* Parameter signature */ - "glVertexAttrib2svNV\0" - ""; -#endif - -#if defined(need_GL_NV_vertex_program) -static const char VertexAttribs1fvNV_names[] = - "iip\0" /* Parameter signature */ - "glVertexAttribs1fvNV\0" - ""; -#endif - -#if defined(need_GL_SUN_vertex) -static const char TexCoord2fVertex3fvSUN_names[] = - "pp\0" /* Parameter signature */ - "glTexCoord2fVertex3fvSUN\0" - ""; -#endif - -#if defined(need_GL_MESA_window_pos) -static const char WindowPos4sMESA_names[] = - "iiii\0" /* Parameter signature */ - "glWindowPos4sMESA\0" - ""; -#endif - -#if defined(need_GL_ARB_vertex_program) -static const char VertexAttrib4NuivARB_names[] = - "ip\0" /* Parameter signature */ - "glVertexAttrib4NuivARB\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_3) -static const char ClientActiveTextureARB_names[] = - "i\0" /* Parameter signature */ - "glClientActiveTexture\0" - "glClientActiveTextureARB\0" - ""; -#endif - -#if defined(need_GL_SGIX_pixel_texture) -static const char PixelTexGenSGIX_names[] = - "i\0" /* Parameter signature */ - "glPixelTexGenSGIX\0" - ""; -#endif - -#if defined(need_GL_SUN_triangle_list) -static const char ReplacementCodeusvSUN_names[] = - "p\0" /* Parameter signature */ - "glReplacementCodeusvSUN\0" - ""; -#endif - -#if defined(need_GL_ARB_shader_objects) -static const char Uniform4fARB_names[] = - "iffff\0" /* Parameter signature */ - "glUniform4fARB\0" - ""; -#endif - -#if defined(need_GL_IBM_multimode_draw_arrays) -static const char MultiModeDrawArraysIBM_names[] = - "pppii\0" /* Parameter signature */ - "glMultiModeDrawArraysIBM\0" - ""; -#endif - -#if defined(need_GL_ARB_vertex_program) || defined(need_GL_NV_vertex_program) -static const char IsProgramNV_names[] = - "i\0" /* Parameter signature */ - "glIsProgramARB\0" - "glIsProgramNV\0" - ""; -#endif - -#if defined(need_GL_SUN_triangle_list) -static const char ReplacementCodePointerSUN_names[] = - "iip\0" /* Parameter signature */ - "glReplacementCodePointerSUN\0" - ""; -#endif - -#if defined(need_GL_ARB_vertex_program) -static const char ProgramEnvParameter4dARB_names[] = - "iidddd\0" /* Parameter signature */ - "glProgramEnvParameter4dARB\0" - ""; -#endif - -#if defined(need_GL_SGI_color_table) -static const char ColorTableParameterfv_names[] = - "iip\0" /* Parameter signature */ - "glColorTableParameterfv\0" - "glColorTableParameterfvSGI\0" - ""; -#endif - -#if defined(need_GL_SGIX_fragment_lighting) -static const char FragmentLightModelfSGIX_names[] = - "if\0" /* Parameter signature */ - "glFragmentLightModelfSGIX\0" - ""; -#endif - -#if defined(need_GL_EXT_coordinate_frame) -static const char Binormal3bvEXT_names[] = - "p\0" /* Parameter signature */ - "glBinormal3bvEXT\0" - ""; -#endif - -#if defined(need_GL_EXT_vertex_weighting) -static const char VertexWeightfvEXT_names[] = - "p\0" /* Parameter signature */ - "glVertexWeightfvEXT\0" - ""; -#endif - -#if defined(need_GL_ARB_vertex_program) -static const char VertexAttrib1dARB_names[] = - "id\0" /* Parameter signature */ - "glVertexAttrib1dARB\0" - ""; -#endif - -#if defined(need_GL_HP_image_transform) -static const char ImageTransformParameterivHP_names[] = - "iip\0" /* Parameter signature */ - "glImageTransformParameterivHP\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_5) || defined(need_GL_ARB_occlusion_query) -static const char DeleteQueriesARB_names[] = - "ip\0" /* Parameter signature */ - "glDeleteQueries\0" - "glDeleteQueriesARB\0" - ""; -#endif - -#if defined(need_GL_SUN_vertex) -static const char Color4ubVertex2fSUN_names[] = - "iiiiff\0" /* Parameter signature */ - "glColor4ubVertex2fSUN\0" - ""; -#endif - -#if defined(need_GL_SGIX_fragment_lighting) -static const char FragmentColorMaterialSGIX_names[] = - "ii\0" /* Parameter signature */ - "glFragmentColorMaterialSGIX\0" - ""; -#endif - -#if defined(need_GL_ARB_matrix_palette) -static const char CurrentPaletteMatrixARB_names[] = - "i\0" /* Parameter signature */ - "glCurrentPaletteMatrixARB\0" - ""; -#endif - -#if defined(need_GL_NV_vertex_program) -static const char VertexAttrib4sNV_names[] = - "iiiii\0" /* Parameter signature */ - "glVertexAttrib4sNV\0" - ""; -#endif - -#if defined(need_GL_SGIS_multisample) || defined(need_GL_EXT_multisample) -static const char SamplePatternSGIS_names[] = - "i\0" /* Parameter signature */ - "glSamplePatternSGIS\0" - "glSamplePatternEXT\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_5) || defined(need_GL_ARB_occlusion_query) -static const char IsQueryARB_names[] = - "i\0" /* Parameter signature */ - "glIsQuery\0" - "glIsQueryARB\0" - ""; -#endif - -#if defined(need_GL_SUN_vertex) -static const char ReplacementCodeuiColor4ubVertex3fSUN_names[] = - "iiiiifff\0" /* Parameter signature */ - "glReplacementCodeuiColor4ubVertex3fSUN\0" - ""; -#endif - -#if defined(need_GL_ARB_shader_objects) -static const char LinkProgramARB_names[] = - "i\0" /* Parameter signature */ - "glLinkProgramARB\0" - ""; -#endif - -#if defined(need_GL_NV_vertex_program) -static const char VertexAttrib2fNV_names[] = - "iff\0" /* Parameter signature */ - "glVertexAttrib2fNV\0" - ""; -#endif - -#if defined(need_GL_ARB_shader_objects) -static const char ShaderSourceARB_names[] = - "iipp\0" /* Parameter signature */ - "glShaderSourceARB\0" - ""; -#endif - -#if defined(need_GL_SGIX_fragment_lighting) -static const char FragmentMaterialiSGIX_names[] = - "iii\0" /* Parameter signature */ - "glFragmentMaterialiSGIX\0" - ""; -#endif - -#if defined(need_GL_ARB_vertex_program) -static const char VertexAttrib3svARB_names[] = - "ip\0" /* Parameter signature */ - "glVertexAttrib3svARB\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_3) || defined(need_GL_ARB_texture_compression) -static const char CompressedTexSubImage3DARB_names[] = - "iiiiiiiiiip\0" /* Parameter signature */ - "glCompressedTexSubImage3D\0" - "glCompressedTexSubImage3DARB\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_4) || defined(need_GL_ARB_window_pos) || defined(need_GL_MESA_window_pos) -static const char WindowPos2ivMESA_names[] = - "p\0" /* Parameter signature */ - "glWindowPos2iv\0" - "glWindowPos2ivARB\0" - "glWindowPos2ivMESA\0" - ""; -#endif - -#if defined(need_GL_EXT_framebuffer_object) -static const char IsFramebufferEXT_names[] = - "i\0" /* Parameter signature */ - "glIsFramebufferEXT\0" - ""; -#endif - -#if defined(need_GL_ARB_shader_objects) -static const char Uniform4ivARB_names[] = - "iip\0" /* Parameter signature */ - "glUniform4ivARB\0" - ""; -#endif - -#if defined(need_GL_ARB_vertex_program) -static const char GetVertexAttribdvARB_names[] = - "iip\0" /* Parameter signature */ - "glGetVertexAttribdvARB\0" - ""; -#endif - -#if defined(need_GL_EXT_coordinate_frame) -static const char Binormal3dEXT_names[] = - "ddd\0" /* Parameter signature */ - "glBinormal3dEXT\0" - ""; -#endif - -#if defined(need_GL_SGIX_sprite) -static const char SpriteParameteriSGIX_names[] = - "ii\0" /* Parameter signature */ - "glSpriteParameteriSGIX\0" - ""; -#endif - -#if defined(need_GL_NV_vertex_program) -static const char RequestResidentProgramsNV_names[] = - "ip\0" /* Parameter signature */ - "glRequestResidentProgramsNV\0" - ""; -#endif - -#if defined(need_GL_SGIX_tag_sample_buffer) -static const char TagSampleBufferSGIX_names[] = - "\0" /* Parameter signature */ - "glTagSampleBufferSGIX\0" - ""; -#endif - -#if defined(need_GL_SUN_triangle_list) -static const char ReplacementCodeusSUN_names[] = - "i\0" /* Parameter signature */ - "glReplacementCodeusSUN\0" - ""; -#endif - -#if defined(need_GL_SGIX_list_priority) -static const char ListParameterivSGIX_names[] = - "iip\0" /* Parameter signature */ - "glListParameterivSGIX\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_4) || defined(need_GL_EXT_multi_draw_arrays) -static const char MultiDrawElementsEXT_names[] = - "ipipi\0" /* Parameter signature */ - "glMultiDrawElements\0" - "glMultiDrawElementsEXT\0" - ""; -#endif - -#if defined(need_GL_ARB_shader_objects) -static const char Uniform1ivARB_names[] = - "iip\0" /* Parameter signature */ - "glUniform1ivARB\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_4) || defined(need_GL_ARB_window_pos) || defined(need_GL_MESA_window_pos) -static const char WindowPos2sMESA_names[] = - "ii\0" /* Parameter signature */ - "glWindowPos2s\0" - "glWindowPos2sARB\0" - "glWindowPos2sMESA\0" - ""; -#endif - -#if defined(need_GL_ARB_vertex_blend) -static const char WeightusvARB_names[] = - "ip\0" /* Parameter signature */ - "glWeightusvARB\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_4) || defined(need_GL_EXT_fog_coord) -static const char FogCoordPointerEXT_names[] = - "iip\0" /* Parameter signature */ - "glFogCoordPointer\0" - "glFogCoordPointerEXT\0" - ""; -#endif - -#if defined(need_GL_EXT_index_material) -static const char IndexMaterialEXT_names[] = - "ii\0" /* Parameter signature */ - "glIndexMaterialEXT\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_4) || defined(need_GL_EXT_secondary_color) -static const char SecondaryColor3ubvEXT_names[] = - "p\0" /* Parameter signature */ - "glSecondaryColor3ubv\0" - "glSecondaryColor3ubvEXT\0" - ""; -#endif - -#if defined(need_GL_ARB_vertex_program) -static const char VertexAttrib4dvARB_names[] = - "ip\0" /* Parameter signature */ - "glVertexAttrib4dvARB\0" - ""; -#endif - -#if defined(need_GL_ARB_vertex_shader) -static const char BindAttribLocationARB_names[] = - "iip\0" /* Parameter signature */ - "glBindAttribLocationARB\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_3) -static const char MultiTexCoord2dARB_names[] = - "idd\0" /* Parameter signature */ - "glMultiTexCoord2d\0" - "glMultiTexCoord2dARB\0" - ""; -#endif - -#if defined(need_GL_NV_vertex_program) -static const char ExecuteProgramNV_names[] = - "iip\0" /* Parameter signature */ - "glExecuteProgramNV\0" - ""; -#endif - -#if defined(need_GL_SGIX_fragment_lighting) -static const char LightEnviSGIX_names[] = - "ii\0" /* Parameter signature */ - "glLightEnviSGIX\0" - ""; -#endif - -#if defined(need_GL_SGI_color_table) -static const char GetColorTableParameterivSGI_names[] = - "iip\0" /* Parameter signature */ - "glGetColorTableParameterivSGI\0" - ""; -#endif - -#if defined(need_GL_SUN_triangle_list) -static const char ReplacementCodeuiSUN_names[] = - "i\0" /* Parameter signature */ - "glReplacementCodeuiSUN\0" - ""; -#endif - -#if defined(need_GL_EXT_framebuffer_object) -static const char FramebufferTexture2DEXT_names[] = - "iiiii\0" /* Parameter signature */ - "glFramebufferTexture2DEXT\0" - ""; -#endif - -#if defined(need_GL_NV_vertex_program) -static const char VertexAttribPointerNV_names[] = - "iiiip\0" /* Parameter signature */ - "glVertexAttribPointerNV\0" - ""; -#endif - -#if defined(need_GL_EXT_framebuffer_object) -static const char GetFramebufferAttachmentParameterivEXT_names[] = - "iiip\0" /* Parameter signature */ - "glGetFramebufferAttachmentParameterivEXT\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_3) -static const char MultiTexCoord4dvARB_names[] = - "ip\0" /* Parameter signature */ - "glMultiTexCoord4dv\0" - "glMultiTexCoord4dvARB\0" - ""; -#endif - -#if defined(need_GL_EXT_pixel_transform) -static const char PixelTransformParameteriEXT_names[] = - "iii\0" /* Parameter signature */ - "glPixelTransformParameteriEXT\0" - ""; -#endif - -#if defined(need_GL_ARB_shader_objects) -static const char ValidateProgramARB_names[] = - "i\0" /* Parameter signature */ - "glValidateProgramARB\0" - ""; -#endif - -#if defined(need_GL_SUN_vertex) -static const char TexCoord2fColor4ubVertex3fSUN_names[] = - "ffiiiifff\0" /* Parameter signature */ - "glTexCoord2fColor4ubVertex3fSUN\0" - ""; -#endif - -#if defined(need_GL_ARB_shader_objects) -static const char Uniform1iARB_names[] = - "ii\0" /* Parameter signature */ - "glUniform1iARB\0" - ""; -#endif - -#if defined(need_GL_ARB_vertex_program) -static const char VertexAttribPointerARB_names[] = - "iiiiip\0" /* Parameter signature */ - "glVertexAttribPointerARB\0" - ""; -#endif - -#if defined(need_GL_SGIS_sharpen_texture) -static const char SharpenTexFuncSGIS_names[] = - "iip\0" /* Parameter signature */ - "glSharpenTexFuncSGIS\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_3) -static const char MultiTexCoord4fvARB_names[] = - "ip\0" /* Parameter signature */ - "glMultiTexCoord4fv\0" - "glMultiTexCoord4fvARB\0" - ""; -#endif - -#if defined(need_GL_NV_vertex_program) -static const char TrackMatrixNV_names[] = - "iiii\0" /* Parameter signature */ - "glTrackMatrixNV\0" - ""; -#endif - -#if defined(need_GL_NV_register_combiners) -static const char CombinerParameteriNV_names[] = - "ii\0" /* Parameter signature */ - "glCombinerParameteriNV\0" - ""; -#endif - -#if defined(need_GL_SGIX_async) -static const char DeleteAsyncMarkersSGIX_names[] = - "ii\0" /* Parameter signature */ - "glDeleteAsyncMarkersSGIX\0" - ""; -#endif - -#if defined(need_GL_SGIX_async) -static const char IsAsyncMarkerSGIX_names[] = - "i\0" /* Parameter signature */ - "glIsAsyncMarkerSGIX\0" - ""; -#endif - -#if defined(need_GL_SGIX_framezoom) -static const char FrameZoomSGIX_names[] = - "i\0" /* Parameter signature */ - "glFrameZoomSGIX\0" - ""; -#endif - -#if defined(need_GL_SUN_vertex) -static const char Normal3fVertex3fvSUN_names[] = - "pp\0" /* Parameter signature */ - "glNormal3fVertex3fvSUN\0" - ""; -#endif - -#if defined(need_GL_ARB_vertex_program) -static const char VertexAttrib4NsvARB_names[] = - "ip\0" /* Parameter signature */ - "glVertexAttrib4NsvARB\0" - ""; -#endif - -#if defined(need_GL_ARB_vertex_program) -static const char VertexAttrib3fvARB_names[] = - "ip\0" /* Parameter signature */ - "glVertexAttrib3fvARB\0" - ""; -#endif - -#if defined(need_GL_EXT_framebuffer_object) -static const char DeleteFramebuffersEXT_names[] = - "ip\0" /* Parameter signature */ - "glDeleteFramebuffersEXT\0" - ""; -#endif - -#if defined(need_GL_SUN_global_alpha) -static const char GlobalAlphaFactorsSUN_names[] = - "i\0" /* Parameter signature */ - "glGlobalAlphaFactorsSUN\0" - ""; -#endif - -#if defined(need_GL_EXT_texture3D) -static const char TexSubImage3D_names[] = - "iiiiiiiiiip\0" /* Parameter signature */ - "glTexSubImage3D\0" - "glTexSubImage3DEXT\0" - ""; -#endif - -#if defined(need_GL_EXT_coordinate_frame) -static const char Tangent3fEXT_names[] = - "fff\0" /* Parameter signature */ - "glTangent3fEXT\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_4) || defined(need_GL_EXT_secondary_color) -static const char SecondaryColor3uivEXT_names[] = - "p\0" /* Parameter signature */ - "glSecondaryColor3uiv\0" - "glSecondaryColor3uivEXT\0" - ""; -#endif - -#if defined(need_GL_ARB_matrix_palette) -static const char MatrixIndexubvARB_names[] = - "ip\0" /* Parameter signature */ - "glMatrixIndexubvARB\0" - ""; -#endif - -#if defined(need_GL_SUN_vertex) -static const char Color4fNormal3fVertex3fSUN_names[] = - "ffffffffff\0" /* Parameter signature */ - "glColor4fNormal3fVertex3fSUN\0" - ""; -#endif - -#if defined(need_GL_SGIS_pixel_texture) -static const char PixelTexGenParameterfSGIS_names[] = - "if\0" /* Parameter signature */ - "glPixelTexGenParameterfSGIS\0" - ""; -#endif - -#if defined(need_GL_SUN_vertex) -static const char TexCoord2fColor4fNormal3fVertex3fvSUN_names[] = - "pppp\0" /* Parameter signature */ - "glTexCoord2fColor4fNormal3fVertex3fvSUN\0" - ""; -#endif - -#if defined(need_GL_SGIX_fragment_lighting) -static const char FragmentLightModelfvSGIX_names[] = - "ip\0" /* Parameter signature */ - "glFragmentLightModelfvSGIX\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_3) -static const char MultiTexCoord3fARB_names[] = - "ifff\0" /* Parameter signature */ - "glMultiTexCoord3f\0" - "glMultiTexCoord3fARB\0" - ""; -#endif - -#if defined(need_GL_SGIS_pixel_texture) -static const char GetPixelTexGenParameterfvSGIS_names[] = - "ip\0" /* Parameter signature */ - "glGetPixelTexGenParameterfvSGIS\0" - ""; -#endif - -#if defined(need_GL_EXT_framebuffer_object) -static const char GenFramebuffersEXT_names[] = - "ip\0" /* Parameter signature */ - "glGenFramebuffersEXT\0" - ""; -#endif - -#if defined(need_GL_NV_vertex_program) -static const char GetProgramParameterdvNV_names[] = - "iiip\0" /* Parameter signature */ - "glGetProgramParameterdvNV\0" - ""; -#endif - -#if defined(need_GL_EXT_pixel_transform) -static const char PixelTransformParameterfEXT_names[] = - "iif\0" /* Parameter signature */ - "glPixelTransformParameterfEXT\0" - ""; -#endif - -#if defined(need_GL_SGIX_fragment_lighting) -static const char FragmentLightfvSGIX_names[] = - "iip\0" /* Parameter signature */ - "glFragmentLightfvSGIX\0" - ""; -#endif - -#if defined(need_GL_NV_vertex_program) -static const char VertexAttrib3sNV_names[] = - "iiii\0" /* Parameter signature */ - "glVertexAttrib3sNV\0" - ""; -#endif - -#if defined(need_GL_ARB_vertex_program) -static const char VertexAttrib4NubARB_names[] = - "iiiii\0" /* Parameter signature */ - "glVertexAttrib4NubARB\0" - ""; -#endif - -#if defined(need_GL_ARB_vertex_program) -static const char GetProgramEnvParameterfvARB_names[] = - "iip\0" /* Parameter signature */ - "glGetProgramEnvParameterfvARB\0" - ""; -#endif - -#if defined(need_GL_NV_vertex_program) -static const char GetTrackMatrixivNV_names[] = - "iiip\0" /* Parameter signature */ - "glGetTrackMatrixivNV\0" - ""; -#endif - -#if defined(need_GL_NV_vertex_program) -static const char VertexAttrib3svNV_names[] = - "ip\0" /* Parameter signature */ - "glVertexAttrib3svNV\0" - ""; -#endif - -#if defined(need_GL_ARB_shader_objects) -static const char Uniform4fvARB_names[] = - "iip\0" /* Parameter signature */ - "glUniform4fvARB\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_3) || defined(need_GL_ARB_transpose_matrix) -static const char MultTransposeMatrixfARB_names[] = - "p\0" /* Parameter signature */ - "glMultTransposeMatrixf\0" - "glMultTransposeMatrixfARB\0" - ""; -#endif - -#if defined(need_GL_ATI_fragment_shader) -static const char ColorFragmentOp1ATI_names[] = - "iiiiiii\0" /* Parameter signature */ - "glColorFragmentOp1ATI\0" - ""; -#endif - -#if defined(need_GL_ARB_shader_objects) -static const char GetUniformfvARB_names[] = - "iip\0" /* Parameter signature */ - "glGetUniformfvARB\0" - ""; -#endif - -#if defined(need_GL_SUN_vertex) -static const char ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN_names[] = - "iffffffffffff\0" /* Parameter signature */ - "glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN\0" - ""; -#endif - -#if defined(need_GL_ARB_shader_objects) -static const char DetachObjectARB_names[] = - "ii\0" /* Parameter signature */ - "glDetachObjectARB\0" - ""; -#endif - -#if defined(need_GL_ARB_vertex_blend) -static const char VertexBlendARB_names[] = - "i\0" /* Parameter signature */ - "glVertexBlendARB\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_4) || defined(need_GL_ARB_window_pos) || defined(need_GL_MESA_window_pos) -static const char WindowPos3iMESA_names[] = - "iii\0" /* Parameter signature */ - "glWindowPos3i\0" - "glWindowPos3iARB\0" - "glWindowPos3iMESA\0" - ""; -#endif - -#if defined(need_GL_EXT_convolution) -static const char SeparableFilter2D_names[] = - "iiiiiipp\0" /* Parameter signature */ - "glSeparableFilter2D\0" - "glSeparableFilter2DEXT\0" - ""; -#endif - -#if defined(need_GL_SUN_vertex) -static const char ReplacementCodeuiColor4ubVertex3fvSUN_names[] = - "ppp\0" /* Parameter signature */ - "glReplacementCodeuiColor4ubVertex3fvSUN\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_3) || defined(need_GL_ARB_texture_compression) -static const char CompressedTexImage2DARB_names[] = - "iiiiiiip\0" /* Parameter signature */ - "glCompressedTexImage2D\0" - "glCompressedTexImage2DARB\0" - ""; -#endif - -#if defined(need_GL_EXT_vertex_array) -static const char ArrayElement_names[] = - "i\0" /* Parameter signature */ - "glArrayElement\0" - "glArrayElementEXT\0" - ""; -#endif - -#if defined(need_GL_EXT_depth_bounds_test) -static const char DepthBoundsEXT_names[] = - "dd\0" /* Parameter signature */ - "glDepthBoundsEXT\0" - ""; -#endif - -#if defined(need_GL_NV_vertex_program) -static const char ProgramParameters4fvNV_names[] = - "iiip\0" /* Parameter signature */ - "glProgramParameters4fvNV\0" - ""; -#endif - -#if defined(need_GL_SGIX_polynomial_ffd) -static const char DeformationMap3fSGIX_names[] = - "iffiiffiiffiip\0" /* Parameter signature */ - "glDeformationMap3fSGIX\0" - ""; -#endif - -#if defined(need_GL_NV_vertex_program) -static const char GetProgramivNV_names[] = - "iip\0" /* Parameter signature */ - "glGetProgramivNV\0" - ""; -#endif - -#if defined(need_GL_EXT_copy_texture) -static const char CopyTexImage1D_names[] = - "iiiiiii\0" /* Parameter signature */ - "glCopyTexImage1D\0" - "glCopyTexImage1DEXT\0" - ""; -#endif - -#if defined(need_GL_ATI_fragment_shader) -static const char AlphaFragmentOp3ATI_names[] = - "iiiiiiiiiiii\0" /* Parameter signature */ - "glAlphaFragmentOp3ATI\0" - ""; -#endif - -#if defined(need_GL_NV_vertex_program) -static const char GetVertexAttribdvNV_names[] = - "iip\0" /* Parameter signature */ - "glGetVertexAttribdvNV\0" - ""; -#endif - -#if defined(need_GL_NV_vertex_program) -static const char VertexAttrib3fvNV_names[] = - "ip\0" /* Parameter signature */ - "glVertexAttrib3fvNV\0" - ""; -#endif - -#if defined(need_GL_NV_register_combiners) -static const char GetFinalCombinerInputParameterivNV_names[] = - "iip\0" /* Parameter signature */ - "glGetFinalCombinerInputParameterivNV\0" - ""; -#endif - -#if defined(need_GL_NV_evaluators) -static const char GetMapParameterivNV_names[] = - "iip\0" /* Parameter signature */ - "glGetMapParameterivNV\0" - ""; -#endif - -#if defined(need_GL_ARB_shader_objects) -static const char Uniform4iARB_names[] = - "iiiii\0" /* Parameter signature */ - "glUniform4iARB\0" - ""; -#endif - -#if defined(need_GL_EXT_convolution) -static const char ConvolutionParameteri_names[] = - "iii\0" /* Parameter signature */ - "glConvolutionParameteri\0" - "glConvolutionParameteriEXT\0" - ""; -#endif - -#if defined(need_GL_EXT_coordinate_frame) -static const char Binormal3sEXT_names[] = - "iii\0" /* Parameter signature */ - "glBinormal3sEXT\0" - ""; -#endif - -#if defined(need_GL_EXT_convolution) -static const char ConvolutionParameterf_names[] = - "iif\0" /* Parameter signature */ - "glConvolutionParameterf\0" - "glConvolutionParameterfEXT\0" - ""; -#endif - -#if defined(need_GL_NV_vertex_program) -static const char VertexAttribs2fvNV_names[] = - "iip\0" /* Parameter signature */ - "glVertexAttribs2fvNV\0" - ""; -#endif - -#if defined(need_GL_ARB_matrix_palette) -static const char MatrixIndexPointerARB_names[] = - "iiip\0" /* Parameter signature */ - "glMatrixIndexPointerARB\0" - ""; -#endif - -#if defined(need_GL_NV_evaluators) -static const char GetMapParameterfvNV_names[] = - "iip\0" /* Parameter signature */ - "glGetMapParameterfvNV\0" - ""; -#endif - -#if defined(need_GL_ATI_fragment_shader) -static const char PassTexCoordATI_names[] = - "iii\0" /* Parameter signature */ - "glPassTexCoordATI\0" - ""; -#endif - -#if defined(need_GL_NV_vertex_program) -static const char VertexAttrib1fvNV_names[] = - "ip\0" /* Parameter signature */ - "glVertexAttrib1fvNV\0" - ""; -#endif - -#if defined(need_GL_EXT_coordinate_frame) -static const char Tangent3ivEXT_names[] = - "p\0" /* Parameter signature */ - "glTangent3ivEXT\0" - ""; -#endif - -#if defined(need_GL_EXT_coordinate_frame) -static const char Tangent3dEXT_names[] = - "ddd\0" /* Parameter signature */ - "glTangent3dEXT\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_4) || defined(need_GL_EXT_secondary_color) -static const char SecondaryColor3dvEXT_names[] = - "p\0" /* Parameter signature */ - "glSecondaryColor3dv\0" - "glSecondaryColor3dvEXT\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_4) || defined(need_GL_EXT_multi_draw_arrays) -static const char MultiDrawArraysEXT_names[] = - "ippi\0" /* Parameter signature */ - "glMultiDrawArrays\0" - "glMultiDrawArraysEXT\0" - ""; -#endif - -#if defined(need_GL_EXT_framebuffer_object) -static const char BindRenderbufferEXT_names[] = - "ii\0" /* Parameter signature */ - "glBindRenderbufferEXT\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_3) -static const char MultiTexCoord4dARB_names[] = - "idddd\0" /* Parameter signature */ - "glMultiTexCoord4d\0" - "glMultiTexCoord4dARB\0" - ""; -#endif - -#if defined(need_GL_SGI_color_table) -static const char GetColorTableSGI_names[] = - "iiip\0" /* Parameter signature */ - "glGetColorTableSGI\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_4) || defined(need_GL_EXT_secondary_color) -static const char SecondaryColor3usEXT_names[] = - "iii\0" /* Parameter signature */ - "glSecondaryColor3us\0" - "glSecondaryColor3usEXT\0" - ""; -#endif - -#if defined(need_GL_ARB_vertex_program) -static const char ProgramLocalParameter4fvARB_names[] = - "iip\0" /* Parameter signature */ - "glProgramLocalParameter4fvARB\0" - ""; -#endif - -#if defined(need_GL_ARB_vertex_program) || defined(need_GL_NV_vertex_program) -static const char DeleteProgramsNV_names[] = - "ip\0" /* Parameter signature */ - "glDeleteProgramsARB\0" - "glDeleteProgramsNV\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_3) -static const char MultiTexCoord1sARB_names[] = - "ii\0" /* Parameter signature */ - "glMultiTexCoord1s\0" - "glMultiTexCoord1sARB\0" - ""; -#endif - -#if defined(need_GL_SUN_vertex) -static const char ReplacementCodeuiColor3fVertex3fSUN_names[] = - "iffffff\0" /* Parameter signature */ - "glReplacementCodeuiColor3fVertex3fSUN\0" - ""; -#endif - -#if defined(need_GL_ARB_vertex_program) || defined(need_GL_NV_vertex_program) -static const char GetVertexAttribPointervNV_names[] = - "iip\0" /* Parameter signature */ - "glGetVertexAttribPointervARB\0" - "glGetVertexAttribPointervNV\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_3) -static const char MultiTexCoord1dvARB_names[] = - "ip\0" /* Parameter signature */ - "glMultiTexCoord1dv\0" - "glMultiTexCoord1dvARB\0" - ""; -#endif - -#if defined(need_GL_ARB_shader_objects) -static const char Uniform2iARB_names[] = - "iii\0" /* Parameter signature */ - "glUniform2iARB\0" - ""; -#endif - -#if defined(need_GL_EXT_convolution) -static const char GetConvolutionParameterivEXT_names[] = - "iip\0" /* Parameter signature */ - "glGetConvolutionParameterivEXT\0" - ""; -#endif - -#if defined(need_GL_NV_vertex_program) -static const char GetProgramStringNV_names[] = - "iip\0" /* Parameter signature */ - "glGetProgramStringNV\0" - ""; -#endif - -#if defined(need_GL_EXT_vertex_array) -static const char ColorPointerEXT_names[] = - "iiiip\0" /* Parameter signature */ - "glColorPointerEXT\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_5) || defined(need_GL_ARB_vertex_buffer_object) -static const char MapBufferARB_names[] = - "ii\0" /* Parameter signature */ - "glMapBuffer\0" - "glMapBufferARB\0" - ""; -#endif - -#if defined(need_GL_EXT_coordinate_frame) -static const char Binormal3svEXT_names[] = - "p\0" /* Parameter signature */ - "glBinormal3svEXT\0" - ""; -#endif - -#if defined(need_GL_EXT_light_texture) -static const char ApplyTextureEXT_names[] = - "i\0" /* Parameter signature */ - "glApplyTextureEXT\0" - ""; -#endif - -#if defined(need_GL_EXT_light_texture) -static const char TextureMaterialEXT_names[] = - "ii\0" /* Parameter signature */ - "glTextureMaterialEXT\0" - ""; -#endif - -#if defined(need_GL_EXT_light_texture) -static const char TextureLightEXT_names[] = - "i\0" /* Parameter signature */ - "glTextureLightEXT\0" - ""; -#endif - -#if defined(need_GL_EXT_histogram) -static const char ResetMinmax_names[] = - "i\0" /* Parameter signature */ - "glResetMinmax\0" - "glResetMinmaxEXT\0" - ""; -#endif - -#if defined(need_GL_EXT_texture_object) -static const char GenTexturesEXT_names[] = - "ip\0" /* Parameter signature */ - "glGenTexturesEXT\0" - ""; -#endif - -#if defined(need_GL_SGIX_sprite) -static const char SpriteParameterfSGIX_names[] = - "if\0" /* Parameter signature */ - "glSpriteParameterfSGIX\0" - ""; -#endif - -#if defined(need_GL_EXT_histogram) -static const char GetMinmaxParameterivEXT_names[] = - "iip\0" /* Parameter signature */ - "glGetMinmaxParameterivEXT\0" - ""; -#endif - -#if defined(need_GL_NV_vertex_program) -static const char VertexAttribs4dvNV_names[] = - "iip\0" /* Parameter signature */ - "glVertexAttribs4dvNV\0" - ""; -#endif - -#if defined(need_GL_ARB_vertex_program) -static const char VertexAttrib4dARB_names[] = - "idddd\0" /* Parameter signature */ - "glVertexAttrib4dARB\0" - ""; -#endif - -#if defined(need_GL_NV_fragment_program) -static const char ProgramNamedParameter4dNV_names[] = - "iipdddd\0" /* Parameter signature */ - "glProgramNamedParameter4dNV\0" - ""; -#endif - -#if defined(need_GL_EXT_vertex_weighting) -static const char VertexWeightfEXT_names[] = - "f\0" /* Parameter signature */ - "glVertexWeightfEXT\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_4) || defined(need_GL_EXT_fog_coord) -static const char FogCoordfvEXT_names[] = - "p\0" /* Parameter signature */ - "glFogCoordfv\0" - "glFogCoordfvEXT\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_3) -static const char MultiTexCoord1ivARB_names[] = - "ip\0" /* Parameter signature */ - "glMultiTexCoord1iv\0" - "glMultiTexCoord1ivARB\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_4) || defined(need_GL_EXT_secondary_color) -static const char SecondaryColor3ubEXT_names[] = - "iii\0" /* Parameter signature */ - "glSecondaryColor3ub\0" - "glSecondaryColor3ubEXT\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_3) -static const char MultiTexCoord2ivARB_names[] = - "ip\0" /* Parameter signature */ - "glMultiTexCoord2iv\0" - "glMultiTexCoord2ivARB\0" - ""; -#endif - -#if defined(need_GL_SGIS_fog_function) -static const char FogFuncSGIS_names[] = - "ip\0" /* Parameter signature */ - "glFogFuncSGIS\0" - ""; -#endif - -#if defined(need_GL_EXT_copy_texture) -static const char CopyTexSubImage2D_names[] = - "iiiiiiii\0" /* Parameter signature */ - "glCopyTexSubImage2D\0" - "glCopyTexSubImage2DEXT\0" - ""; -#endif - -#if defined(need_GL_ARB_shader_objects) -static const char GetObjectParameterivARB_names[] = - "iip\0" /* Parameter signature */ - "glGetObjectParameterivARB\0" - ""; -#endif - -#if defined(need_GL_SUN_vertex) -static const char TexCoord4fVertex4fSUN_names[] = - "ffffffff\0" /* Parameter signature */ - "glTexCoord4fVertex4fSUN\0" - ""; -#endif - -#if defined(need_GL_ARB_vertex_program) -static const char GetProgramLocalParameterdvARB_names[] = - "iip\0" /* Parameter signature */ - "glGetProgramLocalParameterdvARB\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_3) -static const char MultiTexCoord1iARB_names[] = - "ii\0" /* Parameter signature */ - "glMultiTexCoord1i\0" - "glMultiTexCoord1iARB\0" - ""; -#endif - -#if defined(need_GL_ARB_vertex_program) -static const char GetProgramivARB_names[] = - "iip\0" /* Parameter signature */ - "glGetProgramivARB\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_4) || defined(need_GL_EXT_blend_func_separate) || defined(need_GL_INGR_blend_func_separate) -static const char BlendFuncSeparateEXT_names[] = - "iiii\0" /* Parameter signature */ - "glBlendFuncSeparate\0" - "glBlendFuncSeparateEXT\0" - "glBlendFuncSeparateINGR\0" - ""; -#endif - -#if defined(need_GL_NV_vertex_program) -static const char ProgramParameters4dvNV_names[] = - "iiip\0" /* Parameter signature */ - "glProgramParameters4dvNV\0" - ""; -#endif - -#if defined(need_GL_SUN_vertex) -static const char TexCoord2fColor3fVertex3fvSUN_names[] = - "ppp\0" /* Parameter signature */ - "glTexCoord2fColor3fVertex3fvSUN\0" - ""; -#endif - -#if defined(need_GL_EXT_coordinate_frame) -static const char Binormal3dvEXT_names[] = - "p\0" /* Parameter signature */ - "glBinormal3dvEXT\0" - ""; -#endif - -#if defined(need_GL_EXT_texture_object) -static const char AreTexturesResidentEXT_names[] = - "ipp\0" /* Parameter signature */ - "glAreTexturesResidentEXT\0" - ""; -#endif - -#if defined(need_GL_SGIS_fog_function) -static const char GetFogFuncSGIS_names[] = - "p\0" /* Parameter signature */ - "glGetFogFuncSGIS\0" - ""; -#endif - -#if defined(need_GL_ARB_shader_objects) -static const char GetUniformLocationARB_names[] = - "ip\0" /* Parameter signature */ - "glGetUniformLocationARB\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_4) || defined(need_GL_EXT_secondary_color) -static const char SecondaryColor3fEXT_names[] = - "fff\0" /* Parameter signature */ - "glSecondaryColor3f\0" - "glSecondaryColor3fEXT\0" - ""; -#endif - -#if defined(need_GL_NV_register_combiners) -static const char CombinerInputNV_names[] = - "iiiiii\0" /* Parameter signature */ - "glCombinerInputNV\0" - ""; -#endif - -#if defined(need_GL_ARB_vertex_program) -static const char VertexAttrib3sARB_names[] = - "iiii\0" /* Parameter signature */ - "glVertexAttrib3sARB\0" - ""; -#endif - -#if defined(need_GL_ARB_vertex_program) -static const char ProgramStringARB_names[] = - "iiip\0" /* Parameter signature */ - "glProgramStringARB\0" - ""; -#endif - -#if defined(need_GL_SUN_vertex) -static const char TexCoord4fVertex4fvSUN_names[] = - "pp\0" /* Parameter signature */ - "glTexCoord4fVertex4fvSUN\0" - ""; -#endif - -#if defined(need_GL_NV_vertex_program) -static const char VertexAttrib1fNV_names[] = - "if\0" /* Parameter signature */ - "glVertexAttrib1fNV\0" - ""; -#endif - -#if defined(need_GL_SGIX_fragment_lighting) -static const char FragmentLightfSGIX_names[] = - "iif\0" /* Parameter signature */ - "glFragmentLightfSGIX\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_3) || defined(need_GL_ARB_texture_compression) -static const char GetCompressedTexImageARB_names[] = - "iip\0" /* Parameter signature */ - "glGetCompressedTexImage\0" - "glGetCompressedTexImageARB\0" - ""; -#endif - -#if defined(need_GL_EXT_vertex_weighting) -static const char VertexWeightPointerEXT_names[] = - "iiip\0" /* Parameter signature */ - "glVertexWeightPointerEXT\0" - ""; -#endif - -#if defined(need_GL_EXT_stencil_two_side) -static const char ActiveStencilFaceEXT_names[] = - "i\0" /* Parameter signature */ - "glActiveStencilFaceEXT\0" - ""; -#endif - -#if defined(need_GL_EXT_paletted_texture) -static const char GetColorTableParameterfvEXT_names[] = - "iip\0" /* Parameter signature */ - "glGetColorTableParameterfvEXT\0" - ""; -#endif - -#if defined(need_GL_ARB_shader_objects) -static const char GetShaderSourceARB_names[] = - "iipp\0" /* Parameter signature */ - "glGetShaderSourceARB\0" - ""; -#endif - -#if defined(need_GL_SGIX_igloo_interface) -static const char IglooInterfaceSGIX_names[] = - "ip\0" /* Parameter signature */ - "glIglooInterfaceSGIX\0" - ""; -#endif - -#if defined(need_GL_NV_vertex_program) -static const char VertexAttrib4dNV_names[] = - "idddd\0" /* Parameter signature */ - "glVertexAttrib4dNV\0" - ""; -#endif - -#if defined(need_GL_IBM_multimode_draw_arrays) -static const char MultiModeDrawElementsIBM_names[] = - "ppipii\0" /* Parameter signature */ - "glMultiModeDrawElementsIBM\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_3) -static const char MultiTexCoord4svARB_names[] = - "ip\0" /* Parameter signature */ - "glMultiTexCoord4sv\0" - "glMultiTexCoord4svARB\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_5) || defined(need_GL_ARB_occlusion_query) -static const char GenQueriesARB_names[] = - "ip\0" /* Parameter signature */ - "glGenQueries\0" - "glGenQueriesARB\0" - ""; -#endif - -#if defined(need_GL_SUN_vertex) -static const char ReplacementCodeuiVertex3fSUN_names[] = - "ifff\0" /* Parameter signature */ - "glReplacementCodeuiVertex3fSUN\0" - ""; -#endif - -#if defined(need_GL_EXT_coordinate_frame) -static const char Tangent3iEXT_names[] = - "iii\0" /* Parameter signature */ - "glTangent3iEXT\0" - ""; -#endif - -#if defined(need_GL_SUN_mesh_array) -static const char DrawMeshArraysSUN_names[] = - "iiii\0" /* Parameter signature */ - "glDrawMeshArraysSUN\0" - ""; -#endif - -#if defined(need_GL_NV_evaluators) -static const char GetMapControlPointsNV_names[] = - "iiiiiip\0" /* Parameter signature */ - "glGetMapControlPointsNV\0" - ""; -#endif - -#if defined(need_GL_ARB_shader_objects) -static const char Uniform1fARB_names[] = - "if\0" /* Parameter signature */ - "glUniform1fARB\0" - ""; -#endif - -#if defined(need_GL_ARB_vertex_program) -static const char ProgramLocalParameter4fARB_names[] = - "iiffff\0" /* Parameter signature */ - "glProgramLocalParameter4fARB\0" - ""; -#endif - -#if defined(need_GL_SGIX_sprite) -static const char SpriteParameterivSGIX_names[] = - "ip\0" /* Parameter signature */ - "glSpriteParameterivSGIX\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_3) -static const char MultiTexCoord1fARB_names[] = - "if\0" /* Parameter signature */ - "glMultiTexCoord1f\0" - "glMultiTexCoord1fARB\0" - ""; -#endif - -#if defined(need_GL_NV_vertex_program) -static const char VertexAttribs4ubvNV_names[] = - "iip\0" /* Parameter signature */ - "glVertexAttribs4ubvNV\0" - ""; -#endif - -#if defined(need_GL_ARB_vertex_blend) -static const char WeightsvARB_names[] = - "ip\0" /* Parameter signature */ - "glWeightsvARB\0" - ""; -#endif - -#if defined(need_GL_ARB_shader_objects) -static const char Uniform1fvARB_names[] = - "iip\0" /* Parameter signature */ - "glUniform1fvARB\0" - ""; -#endif - -#if defined(need_GL_EXT_copy_texture) -static const char CopyTexSubImage1D_names[] = - "iiiiii\0" /* Parameter signature */ - "glCopyTexSubImage1D\0" - "glCopyTexSubImage1DEXT\0" - ""; -#endif - -#if defined(need_GL_EXT_texture_object) -static const char BindTexture_names[] = - "ii\0" /* Parameter signature */ - "glBindTexture\0" - "glBindTextureEXT\0" - ""; -#endif - -#if defined(need_GL_ATI_fragment_shader) -static const char BeginFragmentShaderATI_names[] = - "\0" /* Parameter signature */ - "glBeginFragmentShaderATI\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_3) -static const char MultiTexCoord4fARB_names[] = - "iffff\0" /* Parameter signature */ - "glMultiTexCoord4f\0" - "glMultiTexCoord4fARB\0" - ""; -#endif - -#if defined(need_GL_NV_vertex_program) -static const char VertexAttribs3svNV_names[] = - "iip\0" /* Parameter signature */ - "glVertexAttribs3svNV\0" - ""; -#endif - -#if defined(need_GL_ARB_vertex_program) -static const char EnableVertexAttribArrayARB_names[] = - "i\0" /* Parameter signature */ - "glEnableVertexAttribArrayARB\0" - ""; -#endif - -#if defined(need_GL_INTEL_parallel_arrays) -static const char NormalPointervINTEL_names[] = - "ip\0" /* Parameter signature */ - "glNormalPointervINTEL\0" - ""; -#endif - -#if defined(need_GL_EXT_convolution) -static const char CopyConvolutionFilter2D_names[] = - "iiiiii\0" /* Parameter signature */ - "glCopyConvolutionFilter2D\0" - "glCopyConvolutionFilter2DEXT\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_4) || defined(need_GL_ARB_window_pos) || defined(need_GL_MESA_window_pos) -static const char WindowPos3ivMESA_names[] = - "p\0" /* Parameter signature */ - "glWindowPos3iv\0" - "glWindowPos3ivARB\0" - "glWindowPos3ivMESA\0" - ""; -#endif - -#if defined(need_GL_NV_fence) -static const char FinishFenceNV_names[] = - "i\0" /* Parameter signature */ - "glFinishFenceNV\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_5) || defined(need_GL_ARB_vertex_buffer_object) -static const char IsBufferARB_names[] = - "i\0" /* Parameter signature */ - "glIsBuffer\0" - "glIsBufferARB\0" - ""; -#endif - -#if defined(need_GL_MESA_window_pos) -static const char WindowPos4iMESA_names[] = - "iiii\0" /* Parameter signature */ - "glWindowPos4iMESA\0" - ""; -#endif - -#if defined(need_GL_ARB_vertex_program) -static const char VertexAttrib4uivARB_names[] = - "ip\0" /* Parameter signature */ - "glVertexAttrib4uivARB\0" - ""; -#endif - -#if defined(need_GL_EXT_coordinate_frame) -static const char Tangent3bvEXT_names[] = - "p\0" /* Parameter signature */ - "glTangent3bvEXT\0" - ""; -#endif - -#if defined(need_GL_SGIX_reference_plane) -static const char ReferencePlaneSGIX_names[] = - "p\0" /* Parameter signature */ - "glReferencePlaneSGIX\0" - ""; -#endif - -#if defined(need_GL_EXT_coordinate_frame) -static const char Binormal3fvEXT_names[] = - "p\0" /* Parameter signature */ - "glBinormal3fvEXT\0" - ""; -#endif - -#if defined(need_GL_EXT_texture_object) -static const char IsTextureEXT_names[] = - "i\0" /* Parameter signature */ - "glIsTextureEXT\0" - ""; -#endif - -#if defined(need_GL_INTEL_parallel_arrays) -static const char TexCoordPointervINTEL_names[] = - "iip\0" /* Parameter signature */ - "glTexCoordPointervINTEL\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_5) || defined(need_GL_ARB_vertex_buffer_object) -static const char DeleteBuffersARB_names[] = - "ip\0" /* Parameter signature */ - "glDeleteBuffers\0" - "glDeleteBuffersARB\0" - ""; -#endif - -#if defined(need_GL_MESA_window_pos) -static const char WindowPos4fvMESA_names[] = - "p\0" /* Parameter signature */ - "glWindowPos4fvMESA\0" - ""; -#endif - -#if defined(need_GL_NV_vertex_program) -static const char VertexAttrib1sNV_names[] = - "ii\0" /* Parameter signature */ - "glVertexAttrib1sNV\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_4) || defined(need_GL_EXT_secondary_color) -static const char SecondaryColor3svEXT_names[] = - "p\0" /* Parameter signature */ - "glSecondaryColor3sv\0" - "glSecondaryColor3svEXT\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_3) || defined(need_GL_ARB_transpose_matrix) -static const char LoadTransposeMatrixfARB_names[] = - "p\0" /* Parameter signature */ - "glLoadTransposeMatrixf\0" - "glLoadTransposeMatrixfARB\0" - ""; -#endif - -#if defined(need_GL_EXT_vertex_array) -static const char GetPointerv_names[] = - "ip\0" /* Parameter signature */ - "glGetPointerv\0" - "glGetPointervEXT\0" - ""; -#endif - -#if defined(need_GL_EXT_coordinate_frame) -static const char Tangent3bEXT_names[] = - "iii\0" /* Parameter signature */ - "glTangent3bEXT\0" - ""; -#endif - -#if defined(need_GL_NV_register_combiners) -static const char CombinerParameterfNV_names[] = - "if\0" /* Parameter signature */ - "glCombinerParameterfNV\0" - ""; -#endif - -#if defined(need_GL_ARB_vertex_program) || defined(need_GL_NV_vertex_program) -static const char BindProgramNV_names[] = - "ii\0" /* Parameter signature */ - "glBindProgramARB\0" - "glBindProgramNV\0" - ""; -#endif - -#if defined(need_GL_ARB_vertex_program) -static const char VertexAttrib4svARB_names[] = - "ip\0" /* Parameter signature */ - "glVertexAttrib4svARB\0" - ""; -#endif - -#if defined(need_GL_ARB_shader_objects) -static const char Uniform3fARB_names[] = - "ifff\0" /* Parameter signature */ - "glUniform3fARB\0" - ""; -#endif - -#if defined(need_GL_ATI_fragment_shader) -static const char BindFragmentShaderATI_names[] = - "i\0" /* Parameter signature */ - "glBindFragmentShaderATI\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_5) || defined(need_GL_ARB_vertex_buffer_object) -static const char UnmapBufferARB_names[] = - "i\0" /* Parameter signature */ - "glUnmapBuffer\0" - "glUnmapBufferARB\0" - ""; -#endif - -#if defined(need_GL_EXT_histogram) -static const char Minmax_names[] = - "iii\0" /* Parameter signature */ - "glMinmax\0" - "glMinmaxEXT\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_4) || defined(need_GL_EXT_fog_coord) -static const char FogCoorddvEXT_names[] = - "p\0" /* Parameter signature */ - "glFogCoorddv\0" - "glFogCoorddvEXT\0" - ""; -#endif - -#if defined(need_GL_SUNX_constant_data) -static const char FinishTextureSUNX_names[] = - "\0" /* Parameter signature */ - "glFinishTextureSUNX\0" - ""; -#endif - -#if defined(need_GL_SGIX_fragment_lighting) -static const char GetFragmentLightfvSGIX_names[] = - "iip\0" /* Parameter signature */ - "glGetFragmentLightfvSGIX\0" - ""; -#endif - -#if defined(need_GL_NV_register_combiners) -static const char GetFinalCombinerInputParameterfvNV_names[] = - "iip\0" /* Parameter signature */ - "glGetFinalCombinerInputParameterfvNV\0" - ""; -#endif - -#if defined(need_GL_ARB_vertex_program) -static const char VertexAttrib2svARB_names[] = - "ip\0" /* Parameter signature */ - "glVertexAttrib2svARB\0" - ""; -#endif - -#if defined(need_GL_NV_vertex_program) -static const char AreProgramsResidentNV_names[] = - "ipp\0" /* Parameter signature */ - "glAreProgramsResidentNV\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_4) || defined(need_GL_ARB_window_pos) || defined(need_GL_MESA_window_pos) -static const char WindowPos3svMESA_names[] = - "p\0" /* Parameter signature */ - "glWindowPos3sv\0" - "glWindowPos3svARB\0" - "glWindowPos3svMESA\0" - ""; -#endif - -#if defined(need_GL_EXT_color_subtable) -static const char CopyColorSubTable_names[] = - "iiiii\0" /* Parameter signature */ - "glCopyColorSubTable\0" - "glCopyColorSubTableEXT\0" - ""; -#endif - -#if defined(need_GL_ARB_vertex_blend) -static const char WeightdvARB_names[] = - "ip\0" /* Parameter signature */ - "glWeightdvARB\0" - ""; -#endif - -#if defined(need_GL_SGIX_instruments) -static const char PollInstrumentsSGIX_names[] = - "p\0" /* Parameter signature */ - "glPollInstrumentsSGIX\0" - ""; -#endif - -#if defined(need_GL_ARB_vertex_program) -static const char VertexAttrib4NubvARB_names[] = - "ip\0" /* Parameter signature */ - "glVertexAttrib4NubvARB\0" - ""; -#endif - -#if defined(need_GL_NV_vertex_program) -static const char VertexAttrib3dvNV_names[] = - "ip\0" /* Parameter signature */ - "glVertexAttrib3dvNV\0" - ""; -#endif - -#if defined(need_GL_ARB_shader_objects) -static const char GetObjectParameterfvARB_names[] = - "iip\0" /* Parameter signature */ - "glGetObjectParameterfvARB\0" - ""; -#endif - -#if defined(need_GL_ARB_vertex_program) -static const char GetProgramEnvParameterdvARB_names[] = - "iip\0" /* Parameter signature */ - "glGetProgramEnvParameterdvARB\0" - ""; -#endif - -#if defined(need_GL_EXT_compiled_vertex_array) -static const char LockArraysEXT_names[] = - "ii\0" /* Parameter signature */ - "glLockArraysEXT\0" - ""; -#endif - -#if defined(need_GL_EXT_pixel_transform) -static const char PixelTransformParameterivEXT_names[] = - "iip\0" /* Parameter signature */ - "glPixelTransformParameterivEXT\0" - ""; -#endif - -#if defined(need_GL_EXT_coordinate_frame) -static const char BinormalPointerEXT_names[] = - "iip\0" /* Parameter signature */ - "glBinormalPointerEXT\0" - ""; -#endif - -#if defined(need_GL_NV_vertex_program) -static const char VertexAttrib1dNV_names[] = - "id\0" /* Parameter signature */ - "glVertexAttrib1dNV\0" - ""; -#endif - -#if defined(need_GL_NV_register_combiners) -static const char GetCombinerInputParameterivNV_names[] = - "iiiip\0" /* Parameter signature */ - "glGetCombinerInputParameterivNV\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_3) -static const char MultiTexCoord2fvARB_names[] = - "ip\0" /* Parameter signature */ - "glMultiTexCoord2fv\0" - "glMultiTexCoord2fvARB\0" - ""; -#endif - -#if defined(need_GL_EXT_framebuffer_object) -static const char GetRenderbufferParameterivEXT_names[] = - "iip\0" /* Parameter signature */ - "glGetRenderbufferParameterivEXT\0" - ""; -#endif - -#if defined(need_GL_NV_register_combiners) -static const char CombinerParameterivNV_names[] = - "ip\0" /* Parameter signature */ - "glCombinerParameterivNV\0" - ""; -#endif - -#if defined(need_GL_ATI_fragment_shader) -static const char GenFragmentShadersATI_names[] = - "i\0" /* Parameter signature */ - "glGenFragmentShadersATI\0" - ""; -#endif - -#if defined(need_GL_EXT_vertex_array) -static const char DrawArrays_names[] = - "iii\0" /* Parameter signature */ - "glDrawArrays\0" - "glDrawArraysEXT\0" - ""; -#endif - -#if defined(need_GL_ARB_vertex_blend) -static const char WeightuivARB_names[] = - "ip\0" /* Parameter signature */ - "glWeightuivARB\0" - ""; -#endif - -#if defined(need_GL_ARB_vertex_program) -static const char VertexAttrib2sARB_names[] = - "iii\0" /* Parameter signature */ - "glVertexAttrib2sARB\0" - ""; -#endif - -#if defined(need_GL_SGIX_async) -static const char GenAsyncMarkersSGIX_names[] = - "i\0" /* Parameter signature */ - "glGenAsyncMarkersSGIX\0" - ""; -#endif - -#if defined(need_GL_EXT_coordinate_frame) -static const char Tangent3svEXT_names[] = - "p\0" /* Parameter signature */ - "glTangent3svEXT\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_5) || defined(need_GL_ARB_vertex_buffer_object) -static const char BindBufferARB_names[] = - "ii\0" /* Parameter signature */ - "glBindBuffer\0" - "glBindBufferARB\0" - ""; -#endif - -#if defined(need_GL_ARB_shader_objects) -static const char GetInfoLogARB_names[] = - "iipp\0" /* Parameter signature */ - "glGetInfoLogARB\0" - ""; -#endif - -#if defined(need_GL_NV_vertex_program) -static const char VertexAttribs4svNV_names[] = - "iip\0" /* Parameter signature */ - "glVertexAttribs4svNV\0" - ""; -#endif - -#if defined(need_GL_IBM_vertex_array_lists) -static const char EdgeFlagPointerListIBM_names[] = - "ipi\0" /* Parameter signature */ - "glEdgeFlagPointerListIBM\0" - ""; -#endif - -#if defined(need_GL_ARB_vertex_program) -static const char VertexAttrib1fvARB_names[] = - "ip\0" /* Parameter signature */ - "glVertexAttrib1fvARB\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_5) || defined(need_GL_ARB_vertex_buffer_object) -static const char GenBuffersARB_names[] = - "ip\0" /* Parameter signature */ - "glGenBuffers\0" - "glGenBuffersARB\0" - ""; -#endif - -#if defined(need_GL_NV_vertex_program) -static const char VertexAttribs1svNV_names[] = - "iip\0" /* Parameter signature */ - "glVertexAttribs1svNV\0" - ""; -#endif - -#if defined(need_GL_EXT_coordinate_frame) -static const char Binormal3bEXT_names[] = - "iii\0" /* Parameter signature */ - "glBinormal3bEXT\0" - ""; -#endif - -#if defined(need_GL_SGIX_fragment_lighting) -static const char FragmentMaterialivSGIX_names[] = - "iip\0" /* Parameter signature */ - "glFragmentMaterialivSGIX\0" - ""; -#endif - -#if defined(need_GL_NV_vertex_array_range) -static const char VertexArrayRangeNV_names[] = - "ip\0" /* Parameter signature */ - "glVertexArrayRangeNV\0" - ""; -#endif - -#if defined(need_GL_ARB_vertex_program) || defined(need_GL_NV_vertex_program) -static const char GenProgramsNV_names[] = - "ip\0" /* Parameter signature */ - "glGenProgramsARB\0" - "glGenProgramsNV\0" - ""; -#endif - -#if defined(need_GL_NV_vertex_program) -static const char VertexAttrib4dvNV_names[] = - "ip\0" /* Parameter signature */ - "glVertexAttrib4dvNV\0" - ""; -#endif - -#if defined(need_GL_ATI_fragment_shader) -static const char EndFragmentShaderATI_names[] = - "\0" /* Parameter signature */ - "glEndFragmentShaderATI\0" - ""; -#endif - -#if defined(need_GL_EXT_coordinate_frame) -static const char Binormal3iEXT_names[] = - "iii\0" /* Parameter signature */ - "glBinormal3iEXT\0" - ""; -#endif - -#if defined(need_GL_VERSION_1_4) || defined(need_GL_ARB_window_pos) || defined(need_GL_MESA_window_pos) -static const char WindowPos2fMESA_names[] = - "ff\0" /* Parameter signature */ - "glWindowPos2f\0" - "glWindowPos2fARB\0" - "glWindowPos2fMESA\0" - ""; -#endif - -#if defined(need_GL_3DFX_tbuffer) -static const struct dri_extension_function GL_3DFX_tbuffer_functions[] = { - { TbufferMask3DFX_names, TbufferMask3DFX_remap_index, 553 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_ARB_draw_buffers) -static const struct dri_extension_function GL_ARB_draw_buffers_functions[] = { - { DrawBuffersARB_names, DrawBuffersARB_remap_index, 413 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_ARB_matrix_palette) -static const struct dri_extension_function GL_ARB_matrix_palette_functions[] = { - { MatrixIndexusvARB_names, MatrixIndexusvARB_remap_index, -1 }, - { MatrixIndexuivARB_names, MatrixIndexuivARB_remap_index, -1 }, - { CurrentPaletteMatrixARB_names, CurrentPaletteMatrixARB_remap_index, -1 }, - { MatrixIndexubvARB_names, MatrixIndexubvARB_remap_index, -1 }, - { MatrixIndexPointerARB_names, MatrixIndexPointerARB_remap_index, -1 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_ARB_multisample) -static const struct dri_extension_function GL_ARB_multisample_functions[] = { - { SampleCoverageARB_names, SampleCoverageARB_remap_index, 412 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_ARB_occlusion_query) -static const struct dri_extension_function GL_ARB_occlusion_query_functions[] = { - { BeginQueryARB_names, BeginQueryARB_remap_index, 703 }, - { GetQueryivARB_names, GetQueryivARB_remap_index, 705 }, - { GetQueryObjectivARB_names, GetQueryObjectivARB_remap_index, 706 }, - { EndQueryARB_names, EndQueryARB_remap_index, 704 }, - { GetQueryObjectuivARB_names, GetQueryObjectuivARB_remap_index, 707 }, - { DeleteQueriesARB_names, DeleteQueriesARB_remap_index, 701 }, - { IsQueryARB_names, IsQueryARB_remap_index, 702 }, - { GenQueriesARB_names, GenQueriesARB_remap_index, 700 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_ARB_point_parameters) -static const struct dri_extension_function GL_ARB_point_parameters_functions[] = { - { PointParameterfEXT_names, PointParameterfEXT_remap_index, 458 }, - { PointParameterfvEXT_names, PointParameterfvEXT_remap_index, 459 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_ARB_shader_objects) -static const struct dri_extension_function GL_ARB_shader_objects_functions[] = { - { UniformMatrix3fvARB_names, UniformMatrix3fvARB_remap_index, 739 }, - { Uniform2fARB_names, Uniform2fARB_remap_index, 723 }, - { Uniform2ivARB_names, Uniform2ivARB_remap_index, 735 }, - { UniformMatrix4fvARB_names, UniformMatrix4fvARB_remap_index, 740 }, - { CreateProgramObjectARB_names, CreateProgramObjectARB_remap_index, 717 }, - { Uniform3iARB_names, Uniform3iARB_remap_index, 728 }, - { CreateShaderObjectARB_names, CreateShaderObjectARB_remap_index, 714 }, - { AttachObjectARB_names, AttachObjectARB_remap_index, 718 }, - { UniformMatrix2fvARB_names, UniformMatrix2fvARB_remap_index, 738 }, - { GetAttachedObjectsARB_names, GetAttachedObjectsARB_remap_index, 744 }, - { Uniform3fvARB_names, Uniform3fvARB_remap_index, 732 }, - { GetHandleARB_names, GetHandleARB_remap_index, 712 }, - { GetActiveUniformARB_names, GetActiveUniformARB_remap_index, 746 }, - { GetUniformivARB_names, GetUniformivARB_remap_index, 748 }, - { Uniform2fvARB_names, Uniform2fvARB_remap_index, 731 }, - { DeleteObjectARB_names, DeleteObjectARB_remap_index, 711 }, - { UseProgramObjectARB_names, UseProgramObjectARB_remap_index, 720 }, - { Uniform3ivARB_names, Uniform3ivARB_remap_index, 736 }, - { CompileShaderARB_names, CompileShaderARB_remap_index, 716 }, - { Uniform4fARB_names, Uniform4fARB_remap_index, 725 }, - { LinkProgramARB_names, LinkProgramARB_remap_index, 719 }, - { ShaderSourceARB_names, ShaderSourceARB_remap_index, 715 }, - { Uniform4ivARB_names, Uniform4ivARB_remap_index, 737 }, - { Uniform1ivARB_names, Uniform1ivARB_remap_index, 734 }, - { ValidateProgramARB_names, ValidateProgramARB_remap_index, 721 }, - { Uniform1iARB_names, Uniform1iARB_remap_index, 726 }, - { Uniform4fvARB_names, Uniform4fvARB_remap_index, 733 }, - { GetUniformfvARB_names, GetUniformfvARB_remap_index, 747 }, - { DetachObjectARB_names, DetachObjectARB_remap_index, 713 }, - { Uniform4iARB_names, Uniform4iARB_remap_index, 729 }, - { Uniform2iARB_names, Uniform2iARB_remap_index, 727 }, - { GetObjectParameterivARB_names, GetObjectParameterivARB_remap_index, 742 }, - { GetUniformLocationARB_names, GetUniformLocationARB_remap_index, 745 }, - { GetShaderSourceARB_names, GetShaderSourceARB_remap_index, 749 }, - { Uniform1fARB_names, Uniform1fARB_remap_index, 722 }, - { Uniform1fvARB_names, Uniform1fvARB_remap_index, 730 }, - { Uniform3fARB_names, Uniform3fARB_remap_index, 724 }, - { GetObjectParameterfvARB_names, GetObjectParameterfvARB_remap_index, 741 }, - { GetInfoLogARB_names, GetInfoLogARB_remap_index, 743 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_ARB_texture_compression) -static const struct dri_extension_function GL_ARB_texture_compression_functions[] = { - { CompressedTexSubImage2DARB_names, CompressedTexSubImage2DARB_remap_index, 558 }, - { CompressedTexImage3DARB_names, CompressedTexImage3DARB_remap_index, 554 }, - { CompressedTexImage1DARB_names, CompressedTexImage1DARB_remap_index, 556 }, - { CompressedTexSubImage1DARB_names, CompressedTexSubImage1DARB_remap_index, 559 }, - { CompressedTexSubImage3DARB_names, CompressedTexSubImage3DARB_remap_index, 557 }, - { CompressedTexImage2DARB_names, CompressedTexImage2DARB_remap_index, 555 }, - { GetCompressedTexImageARB_names, GetCompressedTexImageARB_remap_index, 560 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_ARB_transpose_matrix) -static const struct dri_extension_function GL_ARB_transpose_matrix_functions[] = { - { MultTransposeMatrixdARB_names, MultTransposeMatrixdARB_remap_index, 411 }, - { LoadTransposeMatrixdARB_names, LoadTransposeMatrixdARB_remap_index, 409 }, - { MultTransposeMatrixfARB_names, MultTransposeMatrixfARB_remap_index, 410 }, - { LoadTransposeMatrixfARB_names, LoadTransposeMatrixfARB_remap_index, 408 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_ARB_vertex_blend) -static const struct dri_extension_function GL_ARB_vertex_blend_functions[] = { - { WeightubvARB_names, WeightubvARB_remap_index, -1 }, - { WeightivARB_names, WeightivARB_remap_index, -1 }, - { WeightPointerARB_names, WeightPointerARB_remap_index, -1 }, - { WeightfvARB_names, WeightfvARB_remap_index, -1 }, - { WeightbvARB_names, WeightbvARB_remap_index, -1 }, - { WeightusvARB_names, WeightusvARB_remap_index, -1 }, - { VertexBlendARB_names, VertexBlendARB_remap_index, -1 }, - { WeightsvARB_names, WeightsvARB_remap_index, -1 }, - { WeightdvARB_names, WeightdvARB_remap_index, -1 }, - { WeightuivARB_names, WeightuivARB_remap_index, -1 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_ARB_vertex_buffer_object) -static const struct dri_extension_function GL_ARB_vertex_buffer_object_functions[] = { - { GetBufferSubDataARB_names, GetBufferSubDataARB_remap_index, 695 }, - { BufferSubDataARB_names, BufferSubDataARB_remap_index, 690 }, - { BufferDataARB_names, BufferDataARB_remap_index, 689 }, - { GetBufferPointervARB_names, GetBufferPointervARB_remap_index, 694 }, - { GetBufferParameterivARB_names, GetBufferParameterivARB_remap_index, 693 }, - { MapBufferARB_names, MapBufferARB_remap_index, 697 }, - { IsBufferARB_names, IsBufferARB_remap_index, 696 }, - { DeleteBuffersARB_names, DeleteBuffersARB_remap_index, 691 }, - { UnmapBufferARB_names, UnmapBufferARB_remap_index, 698 }, - { BindBufferARB_names, BindBufferARB_remap_index, 688 }, - { GenBuffersARB_names, GenBuffersARB_remap_index, 692 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_ARB_vertex_program) -static const struct dri_extension_function GL_ARB_vertex_program_functions[] = { - { ProgramEnvParameter4dvARB_names, ProgramEnvParameter4dvARB_remap_index, 669 }, - { VertexAttrib2fARB_names, VertexAttrib2fARB_remap_index, 611 }, - { VertexAttrib3fARB_names, VertexAttrib3fARB_remap_index, 617 }, - { VertexAttrib1svARB_names, VertexAttrib1svARB_remap_index, 608 }, - { VertexAttrib4NusvARB_names, VertexAttrib4NusvARB_remap_index, 662 }, - { DisableVertexAttribArrayARB_names, DisableVertexAttribArrayARB_remap_index, 666 }, - { ProgramLocalParameter4dARB_names, ProgramLocalParameter4dARB_remap_index, 672 }, - { VertexAttrib1fARB_names, VertexAttrib1fARB_remap_index, 605 }, - { VertexAttrib4NbvARB_names, VertexAttrib4NbvARB_remap_index, 659 }, - { VertexAttrib1sARB_names, VertexAttrib1sARB_remap_index, 607 }, - { GetProgramLocalParameterfvARB_names, GetProgramLocalParameterfvARB_remap_index, 679 }, - { VertexAttrib3dvARB_names, VertexAttrib3dvARB_remap_index, 616 }, - { ProgramEnvParameter4fvARB_names, ProgramEnvParameter4fvARB_remap_index, 671 }, - { GetVertexAttribivARB_names, GetVertexAttribivARB_remap_index, 590 }, - { VertexAttrib4ivARB_names, VertexAttrib4ivARB_remap_index, 655 }, - { VertexAttrib4bvARB_names, VertexAttrib4bvARB_remap_index, 654 }, - { VertexAttrib3dARB_names, VertexAttrib3dARB_remap_index, 615 }, - { VertexAttrib4fARB_names, VertexAttrib4fARB_remap_index, 623 }, - { VertexAttrib4fvARB_names, VertexAttrib4fvARB_remap_index, 624 }, - { ProgramLocalParameter4dvARB_names, ProgramLocalParameter4dvARB_remap_index, 673 }, - { VertexAttrib4usvARB_names, VertexAttrib4usvARB_remap_index, 657 }, - { VertexAttrib2dARB_names, VertexAttrib2dARB_remap_index, 609 }, - { VertexAttrib1dvARB_names, VertexAttrib1dvARB_remap_index, 604 }, - { GetVertexAttribfvARB_names, GetVertexAttribfvARB_remap_index, 589 }, - { VertexAttrib4ubvARB_names, VertexAttrib4ubvARB_remap_index, 656 }, - { ProgramEnvParameter4fARB_names, ProgramEnvParameter4fARB_remap_index, 670 }, - { VertexAttrib4sARB_names, VertexAttrib4sARB_remap_index, 625 }, - { VertexAttrib2dvARB_names, VertexAttrib2dvARB_remap_index, 610 }, - { VertexAttrib2fvARB_names, VertexAttrib2fvARB_remap_index, 612 }, - { VertexAttrib4NivARB_names, VertexAttrib4NivARB_remap_index, 661 }, - { GetProgramStringARB_names, GetProgramStringARB_remap_index, 681 }, - { VertexAttrib4NuivARB_names, VertexAttrib4NuivARB_remap_index, 663 }, - { IsProgramNV_names, IsProgramNV_remap_index, 592 }, - { ProgramEnvParameter4dARB_names, ProgramEnvParameter4dARB_remap_index, 668 }, - { VertexAttrib1dARB_names, VertexAttrib1dARB_remap_index, 603 }, - { VertexAttrib3svARB_names, VertexAttrib3svARB_remap_index, 620 }, - { GetVertexAttribdvARB_names, GetVertexAttribdvARB_remap_index, 588 }, - { VertexAttrib4dvARB_names, VertexAttrib4dvARB_remap_index, 622 }, - { VertexAttribPointerARB_names, VertexAttribPointerARB_remap_index, 664 }, - { VertexAttrib4NsvARB_names, VertexAttrib4NsvARB_remap_index, 660 }, - { VertexAttrib3fvARB_names, VertexAttrib3fvARB_remap_index, 618 }, - { VertexAttrib4NubARB_names, VertexAttrib4NubARB_remap_index, 627 }, - { GetProgramEnvParameterfvARB_names, GetProgramEnvParameterfvARB_remap_index, 677 }, - { ProgramLocalParameter4fvARB_names, ProgramLocalParameter4fvARB_remap_index, 675 }, - { DeleteProgramsNV_names, DeleteProgramsNV_remap_index, 580 }, - { GetVertexAttribPointervNV_names, GetVertexAttribPointervNV_remap_index, 591 }, - { VertexAttrib4dARB_names, VertexAttrib4dARB_remap_index, 621 }, - { GetProgramLocalParameterdvARB_names, GetProgramLocalParameterdvARB_remap_index, 678 }, - { GetProgramivARB_names, GetProgramivARB_remap_index, 680 }, - { VertexAttrib3sARB_names, VertexAttrib3sARB_remap_index, 619 }, - { ProgramStringARB_names, ProgramStringARB_remap_index, 667 }, - { ProgramLocalParameter4fARB_names, ProgramLocalParameter4fARB_remap_index, 674 }, - { EnableVertexAttribArrayARB_names, EnableVertexAttribArrayARB_remap_index, 665 }, - { VertexAttrib4uivARB_names, VertexAttrib4uivARB_remap_index, 658 }, - { BindProgramNV_names, BindProgramNV_remap_index, 579 }, - { VertexAttrib4svARB_names, VertexAttrib4svARB_remap_index, 626 }, - { VertexAttrib2svARB_names, VertexAttrib2svARB_remap_index, 614 }, - { VertexAttrib4NubvARB_names, VertexAttrib4NubvARB_remap_index, 628 }, - { GetProgramEnvParameterdvARB_names, GetProgramEnvParameterdvARB_remap_index, 676 }, - { VertexAttrib2sARB_names, VertexAttrib2sARB_remap_index, 613 }, - { VertexAttrib1fvARB_names, VertexAttrib1fvARB_remap_index, 606 }, - { GenProgramsNV_names, GenProgramsNV_remap_index, 582 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_ARB_vertex_shader) -static const struct dri_extension_function GL_ARB_vertex_shader_functions[] = { - { GetActiveAttribARB_names, GetActiveAttribARB_remap_index, 751 }, - { GetAttribLocationARB_names, GetAttribLocationARB_remap_index, 752 }, - { BindAttribLocationARB_names, BindAttribLocationARB_remap_index, 750 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_ARB_window_pos) -static const struct dri_extension_function GL_ARB_window_pos_functions[] = { - { WindowPos3fMESA_names, WindowPos3fMESA_remap_index, 523 }, - { WindowPos2dvMESA_names, WindowPos2dvMESA_remap_index, 514 }, - { WindowPos2svMESA_names, WindowPos2svMESA_remap_index, 520 }, - { WindowPos3dMESA_names, WindowPos3dMESA_remap_index, 521 }, - { WindowPos2fvMESA_names, WindowPos2fvMESA_remap_index, 516 }, - { WindowPos2dMESA_names, WindowPos2dMESA_remap_index, 513 }, - { WindowPos3dvMESA_names, WindowPos3dvMESA_remap_index, 522 }, - { WindowPos3fvMESA_names, WindowPos3fvMESA_remap_index, 524 }, - { WindowPos2iMESA_names, WindowPos2iMESA_remap_index, 517 }, - { WindowPos3sMESA_names, WindowPos3sMESA_remap_index, 527 }, - { WindowPos2ivMESA_names, WindowPos2ivMESA_remap_index, 518 }, - { WindowPos2sMESA_names, WindowPos2sMESA_remap_index, 519 }, - { WindowPos3iMESA_names, WindowPos3iMESA_remap_index, 525 }, - { WindowPos3ivMESA_names, WindowPos3ivMESA_remap_index, 526 }, - { WindowPos3svMESA_names, WindowPos3svMESA_remap_index, 528 }, - { WindowPos2fMESA_names, WindowPos2fMESA_remap_index, 515 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_ATI_blend_equation_separate) -static const struct dri_extension_function GL_ATI_blend_equation_separate_functions[] = { - { BlendEquationSeparateEXT_names, BlendEquationSeparateEXT_remap_index, 710 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_ATI_draw_buffers) -static const struct dri_extension_function GL_ATI_draw_buffers_functions[] = { - { DrawBuffersARB_names, DrawBuffersARB_remap_index, 413 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_ATI_fragment_shader) -static const struct dri_extension_function GL_ATI_fragment_shader_functions[] = { - { ColorFragmentOp3ATI_names, ColorFragmentOp3ATI_remap_index, 791 }, - { ColorFragmentOp2ATI_names, ColorFragmentOp2ATI_remap_index, 790 }, - { DeleteFragmentShaderATI_names, DeleteFragmentShaderATI_remap_index, 784 }, - { SetFragmentShaderConstantATI_names, SetFragmentShaderConstantATI_remap_index, 795 }, - { SampleMapATI_names, SampleMapATI_remap_index, 788 }, - { AlphaFragmentOp2ATI_names, AlphaFragmentOp2ATI_remap_index, 793 }, - { AlphaFragmentOp1ATI_names, AlphaFragmentOp1ATI_remap_index, 792 }, - { ColorFragmentOp1ATI_names, ColorFragmentOp1ATI_remap_index, 789 }, - { AlphaFragmentOp3ATI_names, AlphaFragmentOp3ATI_remap_index, 794 }, - { PassTexCoordATI_names, PassTexCoordATI_remap_index, 787 }, - { BeginFragmentShaderATI_names, BeginFragmentShaderATI_remap_index, 785 }, - { BindFragmentShaderATI_names, BindFragmentShaderATI_remap_index, 783 }, - { GenFragmentShadersATI_names, GenFragmentShadersATI_remap_index, 782 }, - { EndFragmentShaderATI_names, EndFragmentShaderATI_remap_index, 786 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_EXT_blend_color) -static const struct dri_extension_function GL_EXT_blend_color_functions[] = { - { BlendColor_names, -1, 336 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_EXT_blend_equation_separate) -static const struct dri_extension_function GL_EXT_blend_equation_separate_functions[] = { - { BlendEquationSeparateEXT_names, BlendEquationSeparateEXT_remap_index, 710 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_EXT_blend_func_separate) -static const struct dri_extension_function GL_EXT_blend_func_separate_functions[] = { - { BlendFuncSeparateEXT_names, BlendFuncSeparateEXT_remap_index, 537 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_EXT_blend_minmax) -static const struct dri_extension_function GL_EXT_blend_minmax_functions[] = { - { BlendEquation_names, -1, 337 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_EXT_color_subtable) -static const struct dri_extension_function GL_EXT_color_subtable_functions[] = { - { ColorSubTable_names, -1, 346 }, - { CopyColorSubTable_names, -1, 347 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_EXT_compiled_vertex_array) -static const struct dri_extension_function GL_EXT_compiled_vertex_array_functions[] = { - { UnlockArraysEXT_names, UnlockArraysEXT_remap_index, 541 }, - { LockArraysEXT_names, LockArraysEXT_remap_index, 540 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_EXT_convolution) -static const struct dri_extension_function GL_EXT_convolution_functions[] = { - { ConvolutionFilter1D_names, -1, 348 }, - { CopyConvolutionFilter1D_names, -1, 354 }, - { ConvolutionFilter2D_names, -1, 349 }, - { ConvolutionParameteriv_names, -1, 353 }, - { ConvolutionParameterfv_names, -1, 351 }, - { GetSeparableFilterEXT_names, GetSeparableFilterEXT_remap_index, 426 }, - { GetConvolutionFilterEXT_names, GetConvolutionFilterEXT_remap_index, 423 }, - { GetConvolutionParameterfvEXT_names, GetConvolutionParameterfvEXT_remap_index, 424 }, - { SeparableFilter2D_names, -1, 360 }, - { ConvolutionParameteri_names, -1, 352 }, - { ConvolutionParameterf_names, -1, 350 }, - { GetConvolutionParameterivEXT_names, GetConvolutionParameterivEXT_remap_index, 425 }, - { CopyConvolutionFilter2D_names, -1, 355 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_EXT_coordinate_frame) -static const struct dri_extension_function GL_EXT_coordinate_frame_functions[] = { - { Binormal3fEXT_names, Binormal3fEXT_remap_index, -1 }, - { TangentPointerEXT_names, TangentPointerEXT_remap_index, -1 }, - { Binormal3ivEXT_names, Binormal3ivEXT_remap_index, -1 }, - { Tangent3sEXT_names, Tangent3sEXT_remap_index, -1 }, - { Tangent3fvEXT_names, Tangent3fvEXT_remap_index, -1 }, - { Tangent3dvEXT_names, Tangent3dvEXT_remap_index, -1 }, - { Binormal3bvEXT_names, Binormal3bvEXT_remap_index, -1 }, - { Binormal3dEXT_names, Binormal3dEXT_remap_index, -1 }, - { Tangent3fEXT_names, Tangent3fEXT_remap_index, -1 }, - { Binormal3sEXT_names, Binormal3sEXT_remap_index, -1 }, - { Tangent3ivEXT_names, Tangent3ivEXT_remap_index, -1 }, - { Tangent3dEXT_names, Tangent3dEXT_remap_index, -1 }, - { Binormal3svEXT_names, Binormal3svEXT_remap_index, -1 }, - { Binormal3dvEXT_names, Binormal3dvEXT_remap_index, -1 }, - { Tangent3iEXT_names, Tangent3iEXT_remap_index, -1 }, - { Tangent3bvEXT_names, Tangent3bvEXT_remap_index, -1 }, - { Binormal3fvEXT_names, Binormal3fvEXT_remap_index, -1 }, - { Tangent3bEXT_names, Tangent3bEXT_remap_index, -1 }, - { BinormalPointerEXT_names, BinormalPointerEXT_remap_index, -1 }, - { Tangent3svEXT_names, Tangent3svEXT_remap_index, -1 }, - { Binormal3bEXT_names, Binormal3bEXT_remap_index, -1 }, - { Binormal3iEXT_names, Binormal3iEXT_remap_index, -1 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_EXT_copy_texture) -static const struct dri_extension_function GL_EXT_copy_texture_functions[] = { - { CopyTexSubImage3D_names, -1, 373 }, - { CopyTexImage2D_names, -1, 324 }, - { CopyTexImage1D_names, -1, 323 }, - { CopyTexSubImage2D_names, -1, 326 }, - { CopyTexSubImage1D_names, -1, 325 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_EXT_cull_vertex) -static const struct dri_extension_function GL_EXT_cull_vertex_functions[] = { - { CullParameterdvEXT_names, CullParameterdvEXT_remap_index, 542 }, - { CullParameterfvEXT_names, CullParameterfvEXT_remap_index, 543 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_EXT_depth_bounds_test) -static const struct dri_extension_function GL_EXT_depth_bounds_test_functions[] = { - { DepthBoundsEXT_names, DepthBoundsEXT_remap_index, 699 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_EXT_draw_range_elements) -static const struct dri_extension_function GL_EXT_draw_range_elements_functions[] = { - { DrawRangeElements_names, -1, 338 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_EXT_fog_coord) -static const struct dri_extension_function GL_EXT_fog_coord_functions[] = { - { FogCoorddEXT_names, FogCoorddEXT_remap_index, 547 }, - { FogCoordfEXT_names, FogCoordfEXT_remap_index, 545 }, - { FogCoordPointerEXT_names, FogCoordPointerEXT_remap_index, 549 }, - { FogCoordfvEXT_names, FogCoordfvEXT_remap_index, 546 }, - { FogCoorddvEXT_names, FogCoorddvEXT_remap_index, 548 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_EXT_framebuffer_object) -static const struct dri_extension_function GL_EXT_framebuffer_object_functions[] = { - { GenerateMipmapEXT_names, GenerateMipmapEXT_remap_index, 812 }, - { IsRenderbufferEXT_names, IsRenderbufferEXT_remap_index, 796 }, - { RenderbufferStorageEXT_names, RenderbufferStorageEXT_remap_index, 800 }, - { CheckFramebufferStatusEXT_names, CheckFramebufferStatusEXT_remap_index, 806 }, - { DeleteRenderbuffersEXT_names, DeleteRenderbuffersEXT_remap_index, 798 }, - { FramebufferTexture3DEXT_names, FramebufferTexture3DEXT_remap_index, 809 }, - { FramebufferRenderbufferEXT_names, FramebufferRenderbufferEXT_remap_index, 810 }, - { FramebufferTexture1DEXT_names, FramebufferTexture1DEXT_remap_index, 807 }, - { BindFramebufferEXT_names, BindFramebufferEXT_remap_index, 803 }, - { GenRenderbuffersEXT_names, GenRenderbuffersEXT_remap_index, 799 }, - { IsFramebufferEXT_names, IsFramebufferEXT_remap_index, 802 }, - { FramebufferTexture2DEXT_names, FramebufferTexture2DEXT_remap_index, 808 }, - { GetFramebufferAttachmentParameterivEXT_names, GetFramebufferAttachmentParameterivEXT_remap_index, 811 }, - { DeleteFramebuffersEXT_names, DeleteFramebuffersEXT_remap_index, 804 }, - { GenFramebuffersEXT_names, GenFramebuffersEXT_remap_index, 805 }, - { BindRenderbufferEXT_names, BindRenderbufferEXT_remap_index, 797 }, - { GetRenderbufferParameterivEXT_names, GetRenderbufferParameterivEXT_remap_index, 801 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_EXT_histogram) -static const struct dri_extension_function GL_EXT_histogram_functions[] = { - { Histogram_names, -1, 367 }, - { GetHistogramParameterivEXT_names, GetHistogramParameterivEXT_remap_index, 419 }, - { ResetHistogram_names, -1, 369 }, - { GetMinmaxEXT_names, GetMinmaxEXT_remap_index, 420 }, - { GetHistogramParameterfvEXT_names, GetHistogramParameterfvEXT_remap_index, 418 }, - { GetHistogramEXT_names, GetHistogramEXT_remap_index, 417 }, - { GetMinmaxParameterfvEXT_names, GetMinmaxParameterfvEXT_remap_index, 421 }, - { ResetMinmax_names, -1, 370 }, - { GetMinmaxParameterivEXT_names, GetMinmaxParameterivEXT_remap_index, 422 }, - { Minmax_names, -1, 368 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_EXT_index_func) -static const struct dri_extension_function GL_EXT_index_func_functions[] = { - { IndexFuncEXT_names, IndexFuncEXT_remap_index, 539 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_EXT_index_material) -static const struct dri_extension_function GL_EXT_index_material_functions[] = { - { IndexMaterialEXT_names, IndexMaterialEXT_remap_index, 538 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_EXT_light_texture) -static const struct dri_extension_function GL_EXT_light_texture_functions[] = { - { ApplyTextureEXT_names, ApplyTextureEXT_remap_index, -1 }, - { TextureMaterialEXT_names, TextureMaterialEXT_remap_index, -1 }, - { TextureLightEXT_names, TextureLightEXT_remap_index, -1 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_EXT_multi_draw_arrays) -static const struct dri_extension_function GL_EXT_multi_draw_arrays_functions[] = { - { MultiDrawElementsEXT_names, MultiDrawElementsEXT_remap_index, 645 }, - { MultiDrawArraysEXT_names, MultiDrawArraysEXT_remap_index, 644 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_EXT_multisample) -static const struct dri_extension_function GL_EXT_multisample_functions[] = { - { SampleMaskSGIS_names, SampleMaskSGIS_remap_index, 446 }, - { SamplePatternSGIS_names, SamplePatternSGIS_remap_index, 447 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_EXT_paletted_texture) -static const struct dri_extension_function GL_EXT_paletted_texture_functions[] = { - { GetColorTableParameterivEXT_names, GetColorTableParameterivEXT_remap_index, 551 }, - { GetColorTableEXT_names, GetColorTableEXT_remap_index, 550 }, - { ColorTable_names, -1, 339 }, - { GetColorTableParameterfvEXT_names, GetColorTableParameterfvEXT_remap_index, 552 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_EXT_pixel_transform) -static const struct dri_extension_function GL_EXT_pixel_transform_functions[] = { - { PixelTransformParameterfvEXT_names, PixelTransformParameterfvEXT_remap_index, -1 }, - { PixelTransformParameteriEXT_names, PixelTransformParameteriEXT_remap_index, -1 }, - { PixelTransformParameterfEXT_names, PixelTransformParameterfEXT_remap_index, -1 }, - { PixelTransformParameterivEXT_names, PixelTransformParameterivEXT_remap_index, -1 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_EXT_point_parameters) -static const struct dri_extension_function GL_EXT_point_parameters_functions[] = { - { PointParameterfEXT_names, PointParameterfEXT_remap_index, 458 }, - { PointParameterfvEXT_names, PointParameterfvEXT_remap_index, 459 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_EXT_polygon_offset) -static const struct dri_extension_function GL_EXT_polygon_offset_functions[] = { - { PolygonOffsetEXT_names, PolygonOffsetEXT_remap_index, 414 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_EXT_secondary_color) -static const struct dri_extension_function GL_EXT_secondary_color_functions[] = { - { SecondaryColor3iEXT_names, SecondaryColor3iEXT_remap_index, 567 }, - { SecondaryColor3bEXT_names, SecondaryColor3bEXT_remap_index, 561 }, - { SecondaryColor3bvEXT_names, SecondaryColor3bvEXT_remap_index, 562 }, - { SecondaryColor3sEXT_names, SecondaryColor3sEXT_remap_index, 569 }, - { SecondaryColor3dEXT_names, SecondaryColor3dEXT_remap_index, 563 }, - { SecondaryColorPointerEXT_names, SecondaryColorPointerEXT_remap_index, 577 }, - { SecondaryColor3uiEXT_names, SecondaryColor3uiEXT_remap_index, 573 }, - { SecondaryColor3usvEXT_names, SecondaryColor3usvEXT_remap_index, 576 }, - { SecondaryColor3ivEXT_names, SecondaryColor3ivEXT_remap_index, 568 }, - { SecondaryColor3fvEXT_names, SecondaryColor3fvEXT_remap_index, 566 }, - { SecondaryColor3ubvEXT_names, SecondaryColor3ubvEXT_remap_index, 572 }, - { SecondaryColor3uivEXT_names, SecondaryColor3uivEXT_remap_index, 574 }, - { SecondaryColor3dvEXT_names, SecondaryColor3dvEXT_remap_index, 564 }, - { SecondaryColor3usEXT_names, SecondaryColor3usEXT_remap_index, 575 }, - { SecondaryColor3ubEXT_names, SecondaryColor3ubEXT_remap_index, 571 }, - { SecondaryColor3fEXT_names, SecondaryColor3fEXT_remap_index, 565 }, - { SecondaryColor3svEXT_names, SecondaryColor3svEXT_remap_index, 570 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_EXT_stencil_two_side) -static const struct dri_extension_function GL_EXT_stencil_two_side_functions[] = { - { ActiveStencilFaceEXT_names, ActiveStencilFaceEXT_remap_index, 646 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_EXT_subtexture) -static const struct dri_extension_function GL_EXT_subtexture_functions[] = { - { TexSubImage1D_names, -1, 332 }, - { TexSubImage2D_names, -1, 333 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_EXT_texture3D) -static const struct dri_extension_function GL_EXT_texture3D_functions[] = { - { TexImage3D_names, -1, 371 }, - { TexSubImage3D_names, -1, 372 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_EXT_texture_object) -static const struct dri_extension_function GL_EXT_texture_object_functions[] = { - { PrioritizeTextures_names, -1, 331 }, - { DeleteTextures_names, -1, 327 }, - { GenTexturesEXT_names, GenTexturesEXT_remap_index, 440 }, - { AreTexturesResidentEXT_names, AreTexturesResidentEXT_remap_index, 439 }, - { BindTexture_names, -1, 307 }, - { IsTextureEXT_names, IsTextureEXT_remap_index, 441 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_EXT_texture_perturb_normal) -static const struct dri_extension_function GL_EXT_texture_perturb_normal_functions[] = { - { TextureNormalEXT_names, TextureNormalEXT_remap_index, -1 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_EXT_vertex_array) -static const struct dri_extension_function GL_EXT_vertex_array_functions[] = { - { IndexPointerEXT_names, IndexPointerEXT_remap_index, 450 }, - { NormalPointerEXT_names, NormalPointerEXT_remap_index, 451 }, - { VertexPointerEXT_names, VertexPointerEXT_remap_index, 453 }, - { TexCoordPointerEXT_names, TexCoordPointerEXT_remap_index, 452 }, - { EdgeFlagPointerEXT_names, EdgeFlagPointerEXT_remap_index, 449 }, - { ArrayElement_names, -1, 306 }, - { ColorPointerEXT_names, ColorPointerEXT_remap_index, 448 }, - { GetPointerv_names, -1, 329 }, - { DrawArrays_names, -1, 310 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_EXT_vertex_weighting) -static const struct dri_extension_function GL_EXT_vertex_weighting_functions[] = { - { VertexWeightfvEXT_names, VertexWeightfvEXT_remap_index, 495 }, - { VertexWeightfEXT_names, VertexWeightfEXT_remap_index, 494 }, - { VertexWeightPointerEXT_names, VertexWeightPointerEXT_remap_index, 496 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_HP_image_transform) -static const struct dri_extension_function GL_HP_image_transform_functions[] = { - { GetImageTransformParameterfvHP_names, GetImageTransformParameterfvHP_remap_index, -1 }, - { ImageTransformParameterfHP_names, ImageTransformParameterfHP_remap_index, -1 }, - { ImageTransformParameterfvHP_names, ImageTransformParameterfvHP_remap_index, -1 }, - { ImageTransformParameteriHP_names, ImageTransformParameteriHP_remap_index, -1 }, - { GetImageTransformParameterivHP_names, GetImageTransformParameterivHP_remap_index, -1 }, - { ImageTransformParameterivHP_names, ImageTransformParameterivHP_remap_index, -1 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_IBM_multimode_draw_arrays) -static const struct dri_extension_function GL_IBM_multimode_draw_arrays_functions[] = { - { MultiModeDrawArraysIBM_names, MultiModeDrawArraysIBM_remap_index, 708 }, - { MultiModeDrawElementsIBM_names, MultiModeDrawElementsIBM_remap_index, 709 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_IBM_vertex_array_lists) -static const struct dri_extension_function GL_IBM_vertex_array_lists_functions[] = { - { SecondaryColorPointerListIBM_names, SecondaryColorPointerListIBM_remap_index, -1 }, - { NormalPointerListIBM_names, NormalPointerListIBM_remap_index, -1 }, - { FogCoordPointerListIBM_names, FogCoordPointerListIBM_remap_index, -1 }, - { VertexPointerListIBM_names, VertexPointerListIBM_remap_index, -1 }, - { ColorPointerListIBM_names, ColorPointerListIBM_remap_index, -1 }, - { TexCoordPointerListIBM_names, TexCoordPointerListIBM_remap_index, -1 }, - { IndexPointerListIBM_names, IndexPointerListIBM_remap_index, -1 }, - { EdgeFlagPointerListIBM_names, EdgeFlagPointerListIBM_remap_index, -1 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_INGR_blend_func_separate) -static const struct dri_extension_function GL_INGR_blend_func_separate_functions[] = { - { BlendFuncSeparateEXT_names, BlendFuncSeparateEXT_remap_index, 537 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_INTEL_parallel_arrays) -static const struct dri_extension_function GL_INTEL_parallel_arrays_functions[] = { - { VertexPointervINTEL_names, VertexPointervINTEL_remap_index, -1 }, - { ColorPointervINTEL_names, ColorPointervINTEL_remap_index, -1 }, - { NormalPointervINTEL_names, NormalPointervINTEL_remap_index, -1 }, - { TexCoordPointervINTEL_names, TexCoordPointervINTEL_remap_index, -1 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_MESA_resize_buffers) -static const struct dri_extension_function GL_MESA_resize_buffers_functions[] = { - { ResizeBuffersMESA_names, ResizeBuffersMESA_remap_index, 512 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_MESA_window_pos) -static const struct dri_extension_function GL_MESA_window_pos_functions[] = { - { WindowPos3fMESA_names, WindowPos3fMESA_remap_index, 523 }, - { WindowPos2dvMESA_names, WindowPos2dvMESA_remap_index, 514 }, - { WindowPos4svMESA_names, WindowPos4svMESA_remap_index, 536 }, - { WindowPos2svMESA_names, WindowPos2svMESA_remap_index, 520 }, - { WindowPos3dMESA_names, WindowPos3dMESA_remap_index, 521 }, - { WindowPos2fvMESA_names, WindowPos2fvMESA_remap_index, 516 }, - { WindowPos4dMESA_names, WindowPos4dMESA_remap_index, 529 }, - { WindowPos2dMESA_names, WindowPos2dMESA_remap_index, 513 }, - { WindowPos4ivMESA_names, WindowPos4ivMESA_remap_index, 534 }, - { WindowPos4fMESA_names, WindowPos4fMESA_remap_index, 531 }, - { WindowPos3dvMESA_names, WindowPos3dvMESA_remap_index, 522 }, - { WindowPos3fvMESA_names, WindowPos3fvMESA_remap_index, 524 }, - { WindowPos4dvMESA_names, WindowPos4dvMESA_remap_index, 530 }, - { WindowPos2iMESA_names, WindowPos2iMESA_remap_index, 517 }, - { WindowPos3sMESA_names, WindowPos3sMESA_remap_index, 527 }, - { WindowPos4sMESA_names, WindowPos4sMESA_remap_index, 535 }, - { WindowPos2ivMESA_names, WindowPos2ivMESA_remap_index, 518 }, - { WindowPos2sMESA_names, WindowPos2sMESA_remap_index, 519 }, - { WindowPos3iMESA_names, WindowPos3iMESA_remap_index, 525 }, - { WindowPos3ivMESA_names, WindowPos3ivMESA_remap_index, 526 }, - { WindowPos4iMESA_names, WindowPos4iMESA_remap_index, 533 }, - { WindowPos4fvMESA_names, WindowPos4fvMESA_remap_index, 532 }, - { WindowPos3svMESA_names, WindowPos3svMESA_remap_index, 528 }, - { WindowPos2fMESA_names, WindowPos2fMESA_remap_index, 515 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_NV_evaluators) -static const struct dri_extension_function GL_NV_evaluators_functions[] = { - { GetMapAttribParameterivNV_names, GetMapAttribParameterivNV_remap_index, -1 }, - { MapControlPointsNV_names, MapControlPointsNV_remap_index, -1 }, - { MapParameterfvNV_names, MapParameterfvNV_remap_index, -1 }, - { EvalMapsNV_names, EvalMapsNV_remap_index, -1 }, - { GetMapAttribParameterfvNV_names, GetMapAttribParameterfvNV_remap_index, -1 }, - { MapParameterivNV_names, MapParameterivNV_remap_index, -1 }, - { GetMapParameterivNV_names, GetMapParameterivNV_remap_index, -1 }, - { GetMapParameterfvNV_names, GetMapParameterfvNV_remap_index, -1 }, - { GetMapControlPointsNV_names, GetMapControlPointsNV_remap_index, -1 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_NV_fence) -static const struct dri_extension_function GL_NV_fence_functions[] = { - { GenFencesNV_names, GenFencesNV_remap_index, 648 }, - { TestFenceNV_names, TestFenceNV_remap_index, 650 }, - { IsFenceNV_names, IsFenceNV_remap_index, 649 }, - { DeleteFencesNV_names, DeleteFencesNV_remap_index, 647 }, - { SetFenceNV_names, SetFenceNV_remap_index, 653 }, - { GetFenceivNV_names, GetFenceivNV_remap_index, 651 }, - { FinishFenceNV_names, FinishFenceNV_remap_index, 652 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_NV_fragment_program) -static const struct dri_extension_function GL_NV_fragment_program_functions[] = { - { GetProgramNamedParameterdvNV_names, GetProgramNamedParameterdvNV_remap_index, 687 }, - { GetProgramNamedParameterfvNV_names, GetProgramNamedParameterfvNV_remap_index, 686 }, - { ProgramNamedParameter4fNV_names, ProgramNamedParameter4fNV_remap_index, 682 }, - { ProgramNamedParameter4fvNV_names, ProgramNamedParameter4fvNV_remap_index, 684 }, - { ProgramNamedParameter4dvNV_names, ProgramNamedParameter4dvNV_remap_index, 685 }, - { ProgramNamedParameter4dNV_names, ProgramNamedParameter4dNV_remap_index, 683 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_NV_point_sprite) -static const struct dri_extension_function GL_NV_point_sprite_functions[] = { - { PointParameteriNV_names, PointParameteriNV_remap_index, 642 }, - { PointParameterivNV_names, PointParameterivNV_remap_index, 643 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_NV_register_combiners) -static const struct dri_extension_function GL_NV_register_combiners_functions[] = { - { CombinerParameterfvNV_names, CombinerParameterfvNV_remap_index, 499 }, - { GetCombinerOutputParameterfvNV_names, GetCombinerOutputParameterfvNV_remap_index, 508 }, - { FinalCombinerInputNV_names, FinalCombinerInputNV_remap_index, 505 }, - { GetCombinerInputParameterfvNV_names, GetCombinerInputParameterfvNV_remap_index, 506 }, - { GetCombinerOutputParameterivNV_names, GetCombinerOutputParameterivNV_remap_index, 509 }, - { CombinerOutputNV_names, CombinerOutputNV_remap_index, 504 }, - { CombinerParameteriNV_names, CombinerParameteriNV_remap_index, 502 }, - { GetFinalCombinerInputParameterivNV_names, GetFinalCombinerInputParameterivNV_remap_index, 511 }, - { CombinerInputNV_names, CombinerInputNV_remap_index, 503 }, - { CombinerParameterfNV_names, CombinerParameterfNV_remap_index, 500 }, - { GetFinalCombinerInputParameterfvNV_names, GetFinalCombinerInputParameterfvNV_remap_index, 510 }, - { GetCombinerInputParameterivNV_names, GetCombinerInputParameterivNV_remap_index, 507 }, - { CombinerParameterivNV_names, CombinerParameterivNV_remap_index, 501 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_NV_register_combiners2) -static const struct dri_extension_function GL_NV_register_combiners2_functions[] = { - { CombinerStageParameterfvNV_names, CombinerStageParameterfvNV_remap_index, -1 }, - { GetCombinerStageParameterfvNV_names, GetCombinerStageParameterfvNV_remap_index, -1 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_NV_vertex_array_range) -static const struct dri_extension_function GL_NV_vertex_array_range_functions[] = { - { FlushVertexArrayRangeNV_names, FlushVertexArrayRangeNV_remap_index, 497 }, - { VertexArrayRangeNV_names, VertexArrayRangeNV_remap_index, 498 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_NV_vertex_program) -static const struct dri_extension_function GL_NV_vertex_program_functions[] = { - { ProgramParameter4fNV_names, ProgramParameter4fNV_remap_index, 596 }, - { VertexAttrib4ubvNV_names, VertexAttrib4ubvNV_remap_index, 781 }, - { VertexAttrib4svNV_names, VertexAttrib4svNV_remap_index, 779 }, - { VertexAttribs1dvNV_names, VertexAttribs1dvNV_remap_index, 629 }, - { ProgramParameter4dvNV_names, ProgramParameter4dvNV_remap_index, 595 }, - { VertexAttrib4fNV_names, VertexAttrib4fNV_remap_index, 776 }, - { VertexAttrib2dNV_names, VertexAttrib2dNV_remap_index, 762 }, - { VertexAttrib4ubNV_names, VertexAttrib4ubNV_remap_index, 780 }, - { VertexAttribs3dvNV_names, VertexAttribs3dvNV_remap_index, 635 }, - { VertexAttribs4fvNV_names, VertexAttribs4fvNV_remap_index, 639 }, - { VertexAttrib2sNV_names, VertexAttrib2sNV_remap_index, 766 }, - { VertexAttribs3fvNV_names, VertexAttribs3fvNV_remap_index, 636 }, - { ProgramParameter4dNV_names, ProgramParameter4dNV_remap_index, 594 }, - { LoadProgramNV_names, LoadProgramNV_remap_index, 593 }, - { VertexAttrib4fvNV_names, VertexAttrib4fvNV_remap_index, 777 }, - { VertexAttrib3fNV_names, VertexAttrib3fNV_remap_index, 770 }, - { VertexAttribs2dvNV_names, VertexAttribs2dvNV_remap_index, 632 }, - { GetProgramParameterfvNV_names, GetProgramParameterfvNV_remap_index, 584 }, - { VertexAttrib3dNV_names, VertexAttrib3dNV_remap_index, 768 }, - { VertexAttrib2fvNV_names, VertexAttrib2fvNV_remap_index, 765 }, - { VertexAttrib2dvNV_names, VertexAttrib2dvNV_remap_index, 763 }, - { VertexAttrib1dvNV_names, VertexAttrib1dvNV_remap_index, 757 }, - { ProgramParameter4fvNV_names, ProgramParameter4fvNV_remap_index, 597 }, - { VertexAttrib1svNV_names, VertexAttrib1svNV_remap_index, 761 }, - { VertexAttribs2svNV_names, VertexAttribs2svNV_remap_index, 634 }, - { GetVertexAttribivNV_names, GetVertexAttribivNV_remap_index, 755 }, - { GetVertexAttribfvNV_names, GetVertexAttribfvNV_remap_index, 754 }, - { VertexAttrib2svNV_names, VertexAttrib2svNV_remap_index, 767 }, - { VertexAttribs1fvNV_names, VertexAttribs1fvNV_remap_index, 630 }, - { IsProgramNV_names, IsProgramNV_remap_index, 592 }, - { VertexAttrib4sNV_names, VertexAttrib4sNV_remap_index, 778 }, - { VertexAttrib2fNV_names, VertexAttrib2fNV_remap_index, 764 }, - { RequestResidentProgramsNV_names, RequestResidentProgramsNV_remap_index, 600 }, - { ExecuteProgramNV_names, ExecuteProgramNV_remap_index, 581 }, - { VertexAttribPointerNV_names, VertexAttribPointerNV_remap_index, 602 }, - { TrackMatrixNV_names, TrackMatrixNV_remap_index, 601 }, - { GetProgramParameterdvNV_names, GetProgramParameterdvNV_remap_index, 583 }, - { VertexAttrib3sNV_names, VertexAttrib3sNV_remap_index, 772 }, - { GetTrackMatrixivNV_names, GetTrackMatrixivNV_remap_index, 587 }, - { VertexAttrib3svNV_names, VertexAttrib3svNV_remap_index, 773 }, - { ProgramParameters4fvNV_names, ProgramParameters4fvNV_remap_index, 599 }, - { GetProgramivNV_names, GetProgramivNV_remap_index, 585 }, - { GetVertexAttribdvNV_names, GetVertexAttribdvNV_remap_index, 753 }, - { VertexAttrib3fvNV_names, VertexAttrib3fvNV_remap_index, 771 }, - { VertexAttribs2fvNV_names, VertexAttribs2fvNV_remap_index, 633 }, - { VertexAttrib1fvNV_names, VertexAttrib1fvNV_remap_index, 759 }, - { DeleteProgramsNV_names, DeleteProgramsNV_remap_index, 580 }, - { GetVertexAttribPointervNV_names, GetVertexAttribPointervNV_remap_index, 591 }, - { GetProgramStringNV_names, GetProgramStringNV_remap_index, 586 }, - { VertexAttribs4dvNV_names, VertexAttribs4dvNV_remap_index, 638 }, - { ProgramParameters4dvNV_names, ProgramParameters4dvNV_remap_index, 598 }, - { VertexAttrib1fNV_names, VertexAttrib1fNV_remap_index, 758 }, - { VertexAttrib4dNV_names, VertexAttrib4dNV_remap_index, 774 }, - { VertexAttribs4ubvNV_names, VertexAttribs4ubvNV_remap_index, 641 }, - { VertexAttribs3svNV_names, VertexAttribs3svNV_remap_index, 637 }, - { VertexAttrib1sNV_names, VertexAttrib1sNV_remap_index, 760 }, - { BindProgramNV_names, BindProgramNV_remap_index, 579 }, - { AreProgramsResidentNV_names, AreProgramsResidentNV_remap_index, 578 }, - { VertexAttrib3dvNV_names, VertexAttrib3dvNV_remap_index, 769 }, - { VertexAttrib1dNV_names, VertexAttrib1dNV_remap_index, 756 }, - { VertexAttribs4svNV_names, VertexAttribs4svNV_remap_index, 640 }, - { VertexAttribs1svNV_names, VertexAttribs1svNV_remap_index, 631 }, - { GenProgramsNV_names, GenProgramsNV_remap_index, 582 }, - { VertexAttrib4dvNV_names, VertexAttrib4dvNV_remap_index, 775 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_PGI_misc_hints) -static const struct dri_extension_function GL_PGI_misc_hints_functions[] = { - { HintPGI_names, HintPGI_remap_index, 544 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_SGIS_detail_texture) -static const struct dri_extension_function GL_SGIS_detail_texture_functions[] = { - { GetDetailTexFuncSGIS_names, GetDetailTexFuncSGIS_remap_index, 443 }, - { DetailTexFuncSGIS_names, DetailTexFuncSGIS_remap_index, 442 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_SGIS_fog_function) -static const struct dri_extension_function GL_SGIS_fog_function_functions[] = { - { FogFuncSGIS_names, FogFuncSGIS_remap_index, -1 }, - { GetFogFuncSGIS_names, GetFogFuncSGIS_remap_index, -1 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_SGIS_multisample) -static const struct dri_extension_function GL_SGIS_multisample_functions[] = { - { SampleMaskSGIS_names, SampleMaskSGIS_remap_index, 446 }, - { SamplePatternSGIS_names, SamplePatternSGIS_remap_index, 447 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_SGIS_pixel_texture) -static const struct dri_extension_function GL_SGIS_pixel_texture_functions[] = { - { PixelTexGenParameterfvSGIS_names, PixelTexGenParameterfvSGIS_remap_index, 434 }, - { GetPixelTexGenParameterivSGIS_names, GetPixelTexGenParameterivSGIS_remap_index, 435 }, - { PixelTexGenParameteriSGIS_names, PixelTexGenParameteriSGIS_remap_index, 431 }, - { PixelTexGenParameterivSGIS_names, PixelTexGenParameterivSGIS_remap_index, 432 }, - { PixelTexGenParameterfSGIS_names, PixelTexGenParameterfSGIS_remap_index, 433 }, - { GetPixelTexGenParameterfvSGIS_names, GetPixelTexGenParameterfvSGIS_remap_index, 436 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_SGIS_point_parameters) -static const struct dri_extension_function GL_SGIS_point_parameters_functions[] = { - { PointParameterfEXT_names, PointParameterfEXT_remap_index, 458 }, - { PointParameterfvEXT_names, PointParameterfvEXT_remap_index, 459 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_SGIS_sharpen_texture) -static const struct dri_extension_function GL_SGIS_sharpen_texture_functions[] = { - { GetSharpenTexFuncSGIS_names, GetSharpenTexFuncSGIS_remap_index, 445 }, - { SharpenTexFuncSGIS_names, SharpenTexFuncSGIS_remap_index, 444 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_SGIS_texture4D) -static const struct dri_extension_function GL_SGIS_texture4D_functions[] = { - { TexImage4DSGIS_names, TexImage4DSGIS_remap_index, 437 }, - { TexSubImage4DSGIS_names, TexSubImage4DSGIS_remap_index, 438 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_SGIS_texture_color_mask) -static const struct dri_extension_function GL_SGIS_texture_color_mask_functions[] = { - { TextureColorMaskSGIS_names, TextureColorMaskSGIS_remap_index, -1 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_SGIS_texture_filter4) -static const struct dri_extension_function GL_SGIS_texture_filter4_functions[] = { - { GetTexFilterFuncSGIS_names, GetTexFilterFuncSGIS_remap_index, 415 }, - { TexFilterFuncSGIS_names, TexFilterFuncSGIS_remap_index, 416 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_SGIX_async) -static const struct dri_extension_function GL_SGIX_async_functions[] = { - { AsyncMarkerSGIX_names, AsyncMarkerSGIX_remap_index, -1 }, - { FinishAsyncSGIX_names, FinishAsyncSGIX_remap_index, -1 }, - { PollAsyncSGIX_names, PollAsyncSGIX_remap_index, -1 }, - { DeleteAsyncMarkersSGIX_names, DeleteAsyncMarkersSGIX_remap_index, -1 }, - { IsAsyncMarkerSGIX_names, IsAsyncMarkerSGIX_remap_index, -1 }, - { GenAsyncMarkersSGIX_names, GenAsyncMarkersSGIX_remap_index, -1 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_SGIX_flush_raster) -static const struct dri_extension_function GL_SGIX_flush_raster_functions[] = { - { FlushRasterSGIX_names, FlushRasterSGIX_remap_index, 469 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_SGIX_fragment_lighting) -static const struct dri_extension_function GL_SGIX_fragment_lighting_functions[] = { - { FragmentMaterialfvSGIX_names, FragmentMaterialfvSGIX_remap_index, 486 }, - { FragmentLightModelivSGIX_names, FragmentLightModelivSGIX_remap_index, 484 }, - { FragmentLightiSGIX_names, FragmentLightiSGIX_remap_index, 479 }, - { GetFragmentMaterialfvSGIX_names, GetFragmentMaterialfvSGIX_remap_index, 491 }, - { FragmentMaterialfSGIX_names, FragmentMaterialfSGIX_remap_index, 485 }, - { GetFragmentLightivSGIX_names, GetFragmentLightivSGIX_remap_index, 490 }, - { FragmentLightModeliSGIX_names, FragmentLightModeliSGIX_remap_index, 483 }, - { FragmentLightivSGIX_names, FragmentLightivSGIX_remap_index, 480 }, - { GetFragmentMaterialivSGIX_names, GetFragmentMaterialivSGIX_remap_index, 492 }, - { FragmentLightModelfSGIX_names, FragmentLightModelfSGIX_remap_index, 481 }, - { FragmentColorMaterialSGIX_names, FragmentColorMaterialSGIX_remap_index, 476 }, - { FragmentMaterialiSGIX_names, FragmentMaterialiSGIX_remap_index, 487 }, - { LightEnviSGIX_names, LightEnviSGIX_remap_index, 493 }, - { FragmentLightModelfvSGIX_names, FragmentLightModelfvSGIX_remap_index, 482 }, - { FragmentLightfvSGIX_names, FragmentLightfvSGIX_remap_index, 478 }, - { FragmentLightfSGIX_names, FragmentLightfSGIX_remap_index, 477 }, - { GetFragmentLightfvSGIX_names, GetFragmentLightfvSGIX_remap_index, 489 }, - { FragmentMaterialivSGIX_names, FragmentMaterialivSGIX_remap_index, 488 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_SGIX_framezoom) -static const struct dri_extension_function GL_SGIX_framezoom_functions[] = { - { FrameZoomSGIX_names, FrameZoomSGIX_remap_index, 466 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_SGIX_igloo_interface) -static const struct dri_extension_function GL_SGIX_igloo_interface_functions[] = { - { IglooInterfaceSGIX_names, IglooInterfaceSGIX_remap_index, -1 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_SGIX_instruments) -static const struct dri_extension_function GL_SGIX_instruments_functions[] = { - { ReadInstrumentsSGIX_names, ReadInstrumentsSGIX_remap_index, 463 }, - { GetInstrumentsSGIX_names, GetInstrumentsSGIX_remap_index, 460 }, - { StartInstrumentsSGIX_names, StartInstrumentsSGIX_remap_index, 464 }, - { StopInstrumentsSGIX_names, StopInstrumentsSGIX_remap_index, 465 }, - { InstrumentsBufferSGIX_names, InstrumentsBufferSGIX_remap_index, 461 }, - { PollInstrumentsSGIX_names, PollInstrumentsSGIX_remap_index, 462 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_SGIX_list_priority) -static const struct dri_extension_function GL_SGIX_list_priority_functions[] = { - { ListParameterfSGIX_names, ListParameterfSGIX_remap_index, 472 }, - { GetListParameterivSGIX_names, GetListParameterivSGIX_remap_index, 471 }, - { GetListParameterfvSGIX_names, GetListParameterfvSGIX_remap_index, 470 }, - { ListParameteriSGIX_names, ListParameteriSGIX_remap_index, 474 }, - { ListParameterfvSGIX_names, ListParameterfvSGIX_remap_index, 473 }, - { ListParameterivSGIX_names, ListParameterivSGIX_remap_index, 475 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_SGIX_pixel_texture) -static const struct dri_extension_function GL_SGIX_pixel_texture_functions[] = { - { PixelTexGenSGIX_names, PixelTexGenSGIX_remap_index, 430 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_SGIX_polynomial_ffd) -static const struct dri_extension_function GL_SGIX_polynomial_ffd_functions[] = { - { LoadIdentityDeformationMapSGIX_names, LoadIdentityDeformationMapSGIX_remap_index, -1 }, - { DeformationMap3dSGIX_names, DeformationMap3dSGIX_remap_index, -1 }, - { DeformSGIX_names, DeformSGIX_remap_index, -1 }, - { DeformationMap3fSGIX_names, DeformationMap3fSGIX_remap_index, -1 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_SGIX_reference_plane) -static const struct dri_extension_function GL_SGIX_reference_plane_functions[] = { - { ReferencePlaneSGIX_names, ReferencePlaneSGIX_remap_index, 468 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_SGIX_sprite) -static const struct dri_extension_function GL_SGIX_sprite_functions[] = { - { SpriteParameterfvSGIX_names, SpriteParameterfvSGIX_remap_index, 455 }, - { SpriteParameteriSGIX_names, SpriteParameteriSGIX_remap_index, 456 }, - { SpriteParameterfSGIX_names, SpriteParameterfSGIX_remap_index, 454 }, - { SpriteParameterivSGIX_names, SpriteParameterivSGIX_remap_index, 457 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_SGIX_tag_sample_buffer) -static const struct dri_extension_function GL_SGIX_tag_sample_buffer_functions[] = { - { TagSampleBufferSGIX_names, TagSampleBufferSGIX_remap_index, 467 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_SGI_color_table) -static const struct dri_extension_function GL_SGI_color_table_functions[] = { - { GetColorTableParameterfvSGI_names, GetColorTableParameterfvSGI_remap_index, 428 }, - { ColorTableParameteriv_names, -1, 341 }, - { ColorTable_names, -1, 339 }, - { CopyColorTable_names, -1, 342 }, - { ColorTableParameterfv_names, -1, 340 }, - { GetColorTableParameterivSGI_names, GetColorTableParameterivSGI_remap_index, 429 }, - { GetColorTableSGI_names, GetColorTableSGI_remap_index, 427 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_SUNX_constant_data) -static const struct dri_extension_function GL_SUNX_constant_data_functions[] = { - { FinishTextureSUNX_names, FinishTextureSUNX_remap_index, -1 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_SUN_global_alpha) -static const struct dri_extension_function GL_SUN_global_alpha_functions[] = { - { GlobalAlphaFactorubSUN_names, GlobalAlphaFactorubSUN_remap_index, -1 }, - { GlobalAlphaFactoriSUN_names, GlobalAlphaFactoriSUN_remap_index, -1 }, - { GlobalAlphaFactordSUN_names, GlobalAlphaFactordSUN_remap_index, -1 }, - { GlobalAlphaFactoruiSUN_names, GlobalAlphaFactoruiSUN_remap_index, -1 }, - { GlobalAlphaFactorbSUN_names, GlobalAlphaFactorbSUN_remap_index, -1 }, - { GlobalAlphaFactorfSUN_names, GlobalAlphaFactorfSUN_remap_index, -1 }, - { GlobalAlphaFactorusSUN_names, GlobalAlphaFactorusSUN_remap_index, -1 }, - { GlobalAlphaFactorsSUN_names, GlobalAlphaFactorsSUN_remap_index, -1 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_SUN_mesh_array) -static const struct dri_extension_function GL_SUN_mesh_array_functions[] = { - { DrawMeshArraysSUN_names, DrawMeshArraysSUN_remap_index, -1 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_SUN_triangle_list) -static const struct dri_extension_function GL_SUN_triangle_list_functions[] = { - { ReplacementCodeubSUN_names, ReplacementCodeubSUN_remap_index, -1 }, - { ReplacementCodeubvSUN_names, ReplacementCodeubvSUN_remap_index, -1 }, - { ReplacementCodeuivSUN_names, ReplacementCodeuivSUN_remap_index, -1 }, - { ReplacementCodeusvSUN_names, ReplacementCodeusvSUN_remap_index, -1 }, - { ReplacementCodePointerSUN_names, ReplacementCodePointerSUN_remap_index, -1 }, - { ReplacementCodeusSUN_names, ReplacementCodeusSUN_remap_index, -1 }, - { ReplacementCodeuiSUN_names, ReplacementCodeuiSUN_remap_index, -1 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_SUN_vertex) -static const struct dri_extension_function GL_SUN_vertex_functions[] = { - { ReplacementCodeuiColor3fVertex3fvSUN_names, ReplacementCodeuiColor3fVertex3fvSUN_remap_index, -1 }, - { TexCoord4fColor4fNormal3fVertex4fvSUN_names, TexCoord4fColor4fNormal3fVertex4fvSUN_remap_index, -1 }, - { TexCoord2fColor4ubVertex3fvSUN_names, TexCoord2fColor4ubVertex3fvSUN_remap_index, -1 }, - { ReplacementCodeuiVertex3fvSUN_names, ReplacementCodeuiVertex3fvSUN_remap_index, -1 }, - { ReplacementCodeuiTexCoord2fVertex3fvSUN_names, ReplacementCodeuiTexCoord2fVertex3fvSUN_remap_index, -1 }, - { ReplacementCodeuiNormal3fVertex3fSUN_names, ReplacementCodeuiNormal3fVertex3fSUN_remap_index, -1 }, - { Color4ubVertex3fvSUN_names, Color4ubVertex3fvSUN_remap_index, -1 }, - { Color4ubVertex3fSUN_names, Color4ubVertex3fSUN_remap_index, -1 }, - { TexCoord2fVertex3fSUN_names, TexCoord2fVertex3fSUN_remap_index, -1 }, - { TexCoord2fColor4fNormal3fVertex3fSUN_names, TexCoord2fColor4fNormal3fVertex3fSUN_remap_index, -1 }, - { TexCoord2fNormal3fVertex3fvSUN_names, TexCoord2fNormal3fVertex3fvSUN_remap_index, -1 }, - { ReplacementCodeuiTexCoord2fNormal3fVertex3fSUN_names, ReplacementCodeuiTexCoord2fNormal3fVertex3fSUN_remap_index, -1 }, - { ReplacementCodeuiTexCoord2fVertex3fSUN_names, ReplacementCodeuiTexCoord2fVertex3fSUN_remap_index, -1 }, - { Color3fVertex3fSUN_names, Color3fVertex3fSUN_remap_index, -1 }, - { ReplacementCodeuiNormal3fVertex3fvSUN_names, ReplacementCodeuiNormal3fVertex3fvSUN_remap_index, -1 }, - { Color3fVertex3fvSUN_names, Color3fVertex3fvSUN_remap_index, -1 }, - { Color4fNormal3fVertex3fvSUN_names, Color4fNormal3fVertex3fvSUN_remap_index, -1 }, - { ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN_names, ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN_remap_index, -1 }, - { ReplacementCodeuiColor4fNormal3fVertex3fvSUN_names, ReplacementCodeuiColor4fNormal3fVertex3fvSUN_remap_index, -1 }, - { ReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN_names, ReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN_remap_index, -1 }, - { TexCoord2fColor3fVertex3fSUN_names, TexCoord2fColor3fVertex3fSUN_remap_index, -1 }, - { TexCoord4fColor4fNormal3fVertex4fSUN_names, TexCoord4fColor4fNormal3fVertex4fSUN_remap_index, -1 }, - { Color4ubVertex2fvSUN_names, Color4ubVertex2fvSUN_remap_index, -1 }, - { Normal3fVertex3fSUN_names, Normal3fVertex3fSUN_remap_index, -1 }, - { ReplacementCodeuiColor4fNormal3fVertex3fSUN_names, ReplacementCodeuiColor4fNormal3fVertex3fSUN_remap_index, -1 }, - { TexCoord2fNormal3fVertex3fSUN_names, TexCoord2fNormal3fVertex3fSUN_remap_index, -1 }, - { TexCoord2fVertex3fvSUN_names, TexCoord2fVertex3fvSUN_remap_index, -1 }, - { Color4ubVertex2fSUN_names, Color4ubVertex2fSUN_remap_index, -1 }, - { ReplacementCodeuiColor4ubVertex3fSUN_names, ReplacementCodeuiColor4ubVertex3fSUN_remap_index, -1 }, - { TexCoord2fColor4ubVertex3fSUN_names, TexCoord2fColor4ubVertex3fSUN_remap_index, -1 }, - { Normal3fVertex3fvSUN_names, Normal3fVertex3fvSUN_remap_index, -1 }, - { Color4fNormal3fVertex3fSUN_names, Color4fNormal3fVertex3fSUN_remap_index, -1 }, - { TexCoord2fColor4fNormal3fVertex3fvSUN_names, TexCoord2fColor4fNormal3fVertex3fvSUN_remap_index, -1 }, - { ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN_names, ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN_remap_index, -1 }, - { ReplacementCodeuiColor4ubVertex3fvSUN_names, ReplacementCodeuiColor4ubVertex3fvSUN_remap_index, -1 }, - { ReplacementCodeuiColor3fVertex3fSUN_names, ReplacementCodeuiColor3fVertex3fSUN_remap_index, -1 }, - { TexCoord4fVertex4fSUN_names, TexCoord4fVertex4fSUN_remap_index, -1 }, - { TexCoord2fColor3fVertex3fvSUN_names, TexCoord2fColor3fVertex3fvSUN_remap_index, -1 }, - { TexCoord4fVertex4fvSUN_names, TexCoord4fVertex4fvSUN_remap_index, -1 }, - { ReplacementCodeuiVertex3fSUN_names, ReplacementCodeuiVertex3fSUN_remap_index, -1 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_VERSION_1_3) -static const struct dri_extension_function GL_VERSION_1_3_functions[] = { - { SampleCoverageARB_names, SampleCoverageARB_remap_index, 412 }, - { MultiTexCoord3sARB_names, -1, 398 }, - { ActiveTextureARB_names, -1, 374 }, - { CompressedTexSubImage2DARB_names, CompressedTexSubImage2DARB_remap_index, 558 }, - { CompressedTexImage3DARB_names, CompressedTexImage3DARB_remap_index, 554 }, - { MultiTexCoord1fvARB_names, -1, 379 }, - { MultTransposeMatrixdARB_names, MultTransposeMatrixdARB_remap_index, 411 }, - { CompressedTexImage1DARB_names, CompressedTexImage1DARB_remap_index, 556 }, - { MultiTexCoord3dARB_names, -1, 392 }, - { MultiTexCoord2iARB_names, -1, 388 }, - { MultiTexCoord2svARB_names, -1, 391 }, - { MultiTexCoord2fARB_names, -1, 386 }, - { LoadTransposeMatrixdARB_names, LoadTransposeMatrixdARB_remap_index, 409 }, - { MultiTexCoord3fvARB_names, -1, 395 }, - { MultiTexCoord4sARB_names, -1, 406 }, - { MultiTexCoord2dvARB_names, -1, 385 }, - { MultiTexCoord1svARB_names, -1, 383 }, - { MultiTexCoord3svARB_names, -1, 399 }, - { MultiTexCoord4iARB_names, -1, 404 }, - { MultiTexCoord3iARB_names, -1, 396 }, - { MultiTexCoord1dARB_names, -1, 376 }, - { MultiTexCoord3dvARB_names, -1, 393 }, - { MultiTexCoord3ivARB_names, -1, 397 }, - { MultiTexCoord2sARB_names, -1, 390 }, - { MultiTexCoord4ivARB_names, -1, 405 }, - { CompressedTexSubImage1DARB_names, CompressedTexSubImage1DARB_remap_index, 559 }, - { ClientActiveTextureARB_names, -1, 375 }, - { CompressedTexSubImage3DARB_names, CompressedTexSubImage3DARB_remap_index, 557 }, - { MultiTexCoord2dARB_names, -1, 384 }, - { MultiTexCoord4dvARB_names, -1, 401 }, - { MultiTexCoord4fvARB_names, -1, 403 }, - { MultiTexCoord3fARB_names, -1, 394 }, - { MultTransposeMatrixfARB_names, MultTransposeMatrixfARB_remap_index, 410 }, - { CompressedTexImage2DARB_names, CompressedTexImage2DARB_remap_index, 555 }, - { MultiTexCoord4dARB_names, -1, 400 }, - { MultiTexCoord1sARB_names, -1, 382 }, - { MultiTexCoord1dvARB_names, -1, 377 }, - { MultiTexCoord1ivARB_names, -1, 381 }, - { MultiTexCoord2ivARB_names, -1, 389 }, - { MultiTexCoord1iARB_names, -1, 380 }, - { GetCompressedTexImageARB_names, GetCompressedTexImageARB_remap_index, 560 }, - { MultiTexCoord4svARB_names, -1, 407 }, - { MultiTexCoord1fARB_names, -1, 378 }, - { MultiTexCoord4fARB_names, -1, 402 }, - { LoadTransposeMatrixfARB_names, LoadTransposeMatrixfARB_remap_index, 408 }, - { MultiTexCoord2fvARB_names, -1, 387 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_VERSION_1_4) -static const struct dri_extension_function GL_VERSION_1_4_functions[] = { - { PointParameteriNV_names, PointParameteriNV_remap_index, 642 }, - { SecondaryColor3iEXT_names, SecondaryColor3iEXT_remap_index, 567 }, - { WindowPos3fMESA_names, WindowPos3fMESA_remap_index, 523 }, - { WindowPos2dvMESA_names, WindowPos2dvMESA_remap_index, 514 }, - { SecondaryColor3bEXT_names, SecondaryColor3bEXT_remap_index, 561 }, - { PointParameterfEXT_names, PointParameterfEXT_remap_index, 458 }, - { FogCoorddEXT_names, FogCoorddEXT_remap_index, 547 }, - { FogCoordfEXT_names, FogCoordfEXT_remap_index, 545 }, - { WindowPos2svMESA_names, WindowPos2svMESA_remap_index, 520 }, - { WindowPos3dMESA_names, WindowPos3dMESA_remap_index, 521 }, - { PointParameterfvEXT_names, PointParameterfvEXT_remap_index, 459 }, - { WindowPos2fvMESA_names, WindowPos2fvMESA_remap_index, 516 }, - { SecondaryColor3bvEXT_names, SecondaryColor3bvEXT_remap_index, 562 }, - { SecondaryColor3sEXT_names, SecondaryColor3sEXT_remap_index, 569 }, - { SecondaryColor3dEXT_names, SecondaryColor3dEXT_remap_index, 563 }, - { WindowPos2dMESA_names, WindowPos2dMESA_remap_index, 513 }, - { SecondaryColorPointerEXT_names, SecondaryColorPointerEXT_remap_index, 577 }, - { SecondaryColor3uiEXT_names, SecondaryColor3uiEXT_remap_index, 573 }, - { SecondaryColor3usvEXT_names, SecondaryColor3usvEXT_remap_index, 576 }, - { WindowPos3dvMESA_names, WindowPos3dvMESA_remap_index, 522 }, - { PointParameterivNV_names, PointParameterivNV_remap_index, 643 }, - { WindowPos3fvMESA_names, WindowPos3fvMESA_remap_index, 524 }, - { SecondaryColor3ivEXT_names, SecondaryColor3ivEXT_remap_index, 568 }, - { WindowPos2iMESA_names, WindowPos2iMESA_remap_index, 517 }, - { SecondaryColor3fvEXT_names, SecondaryColor3fvEXT_remap_index, 566 }, - { WindowPos3sMESA_names, WindowPos3sMESA_remap_index, 527 }, - { WindowPos2ivMESA_names, WindowPos2ivMESA_remap_index, 518 }, - { MultiDrawElementsEXT_names, MultiDrawElementsEXT_remap_index, 645 }, - { WindowPos2sMESA_names, WindowPos2sMESA_remap_index, 519 }, - { FogCoordPointerEXT_names, FogCoordPointerEXT_remap_index, 549 }, - { SecondaryColor3ubvEXT_names, SecondaryColor3ubvEXT_remap_index, 572 }, - { SecondaryColor3uivEXT_names, SecondaryColor3uivEXT_remap_index, 574 }, - { WindowPos3iMESA_names, WindowPos3iMESA_remap_index, 525 }, - { SecondaryColor3dvEXT_names, SecondaryColor3dvEXT_remap_index, 564 }, - { MultiDrawArraysEXT_names, MultiDrawArraysEXT_remap_index, 644 }, - { SecondaryColor3usEXT_names, SecondaryColor3usEXT_remap_index, 575 }, - { FogCoordfvEXT_names, FogCoordfvEXT_remap_index, 546 }, - { SecondaryColor3ubEXT_names, SecondaryColor3ubEXT_remap_index, 571 }, - { BlendFuncSeparateEXT_names, BlendFuncSeparateEXT_remap_index, 537 }, - { SecondaryColor3fEXT_names, SecondaryColor3fEXT_remap_index, 565 }, - { WindowPos3ivMESA_names, WindowPos3ivMESA_remap_index, 526 }, - { SecondaryColor3svEXT_names, SecondaryColor3svEXT_remap_index, 570 }, - { FogCoorddvEXT_names, FogCoorddvEXT_remap_index, 548 }, - { WindowPos3svMESA_names, WindowPos3svMESA_remap_index, 528 }, - { WindowPos2fMESA_names, WindowPos2fMESA_remap_index, 515 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_VERSION_1_5) -static const struct dri_extension_function GL_VERSION_1_5_functions[] = { - { BeginQueryARB_names, BeginQueryARB_remap_index, 703 }, - { GetBufferSubDataARB_names, GetBufferSubDataARB_remap_index, 695 }, - { BufferSubDataARB_names, BufferSubDataARB_remap_index, 690 }, - { GetQueryivARB_names, GetQueryivARB_remap_index, 705 }, - { GetQueryObjectivARB_names, GetQueryObjectivARB_remap_index, 706 }, - { BufferDataARB_names, BufferDataARB_remap_index, 689 }, - { EndQueryARB_names, EndQueryARB_remap_index, 704 }, - { GetBufferPointervARB_names, GetBufferPointervARB_remap_index, 694 }, - { GetQueryObjectuivARB_names, GetQueryObjectuivARB_remap_index, 707 }, - { GetBufferParameterivARB_names, GetBufferParameterivARB_remap_index, 693 }, - { DeleteQueriesARB_names, DeleteQueriesARB_remap_index, 701 }, - { IsQueryARB_names, IsQueryARB_remap_index, 702 }, - { MapBufferARB_names, MapBufferARB_remap_index, 697 }, - { GenQueriesARB_names, GenQueriesARB_remap_index, 700 }, - { IsBufferARB_names, IsBufferARB_remap_index, 696 }, - { DeleteBuffersARB_names, DeleteBuffersARB_remap_index, 691 }, - { UnmapBufferARB_names, UnmapBufferARB_remap_index, 698 }, - { BindBufferARB_names, BindBufferARB_remap_index, 688 }, - { GenBuffersARB_names, GenBuffersARB_remap_index, 692 }, - { NULL, 0, 0 } -}; -#endif - -#if defined(need_GL_VERSION_2_0) -static const struct dri_extension_function GL_VERSION_2_0_functions[] = { - { StencilMaskSeparate_names, StencilMaskSeparate_remap_index, 815 }, - { StencilOpSeparate_names, StencilOpSeparate_remap_index, 814 }, - { StencilFuncSeparate_names, StencilFuncSeparate_remap_index, 813 }, - { NULL, 0, 0 } -}; -#endif - diff --git a/nx-X11/extras/Mesa/src/mesa/drivers/dri/common/glcontextmodes.c.NX.original b/nx-X11/extras/Mesa/src/mesa/drivers/dri/common/glcontextmodes.c.NX.original deleted file mode 100644 index 066c5ffba..000000000 --- a/nx-X11/extras/Mesa/src/mesa/drivers/dri/common/glcontextmodes.c.NX.original +++ /dev/null @@ -1,497 +0,0 @@ -/* - * (C) Copyright IBM Corporation 2003 - * 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 - * VA LINUX SYSTEM, 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. - */ - -/** - * \file glcontextmodes.c - * Utility routines for working with \c __GLcontextModes structures. At - * some point most or all of these functions will be moved to the Mesa - * code base. - * - * \author Ian Romanick - */ - -#if defined(IN_MINI_GLX) -# include -# include -# include -# include "GL/internal/dri_interface.h" -# include "imports.h" -# define __glXMemset memset -#else -# include -# include -# include "GL/glxint.h" - -# ifdef XFree86Server -void *memset( void * ptr, int val, size_t size); -# include "GL/glx_ansic.h" -extern void * __glXMalloc( size_t size ); -extern void __glXFree( void * ptr ); -# define _mesa_malloc(b) __glXMalloc(b) -# define _mesa_free(m) __glXFree(m) -# else -# include -# define __glXMemset memset -# define _mesa_malloc(b) Xmalloc(b) -# define _mesa_free(m) Xfree(m) -# endif /* XFree86Server */ -#endif /* !defined(IN_MINI_GLX) */ - -#include "glcontextmodes.h" - -#if !defined(IN_MINI_GLX) -#define NUM_VISUAL_TYPES 6 - -/** - * Convert an X visual type to a GLX visual type. - * - * \param visualType X visual type (i.e., \c TrueColor, \c StaticGray, etc.) - * to be converted. - * \return If \c visualType is a valid X visual type, a GLX visual type will - * be returned. Otherwise \c GLX_NONE will be returned. - */ -GLint -_gl_convert_from_x_visual_type( int visualType ) -{ - static const int glx_visual_types[ NUM_VISUAL_TYPES ] = { - GLX_STATIC_GRAY, GLX_GRAY_SCALE, - GLX_STATIC_COLOR, GLX_PSEUDO_COLOR, - GLX_TRUE_COLOR, GLX_DIRECT_COLOR - }; - - return ( (unsigned) visualType < NUM_VISUAL_TYPES ) - ? glx_visual_types[ visualType ] : GLX_NONE; -} - - -/** - * Convert a GLX visual type to an X visual type. - * - * \param visualType GLX visual type (i.e., \c GLX_TRUE_COLOR, - * \c GLX_STATIC_GRAY, etc.) to be converted. - * \return If \c visualType is a valid GLX visual type, an X visual type will - * be returned. Otherwise -1 will be returned. - */ -GLint -_gl_convert_to_x_visual_type( int visualType ) -{ - static const int x_visual_types[ NUM_VISUAL_TYPES ] = { - TrueColor, DirectColor, - PseudoColor, StaticColor, - GrayScale, StaticGray - }; - - return ( (unsigned) (visualType - GLX_TRUE_COLOR) <= NUM_VISUAL_TYPES ) - ? x_visual_types[ visualType - GLX_TRUE_COLOR ] : -1; -} - - -/** - * Copy a GLX visual config structure to a GL context mode structure. All - * of the fields in \c config are copied to \c mode. Additional fields in - * \c mode that can be derrived from the fields of \c config (i.e., - * \c haveDepthBuffer) are also filled in. The remaining fields in \c mode - * that cannot be derrived are set to default values. - * - * \param mode Destination GL context mode. - * \param config Source GLX visual config. - * - * \note - * The \c fbconfigID and \c visualID fields of the \c __GLcontextModes - * structure will be set to the \c vid of the \c __GLXvisualConfig structure. - */ -void -_gl_copy_visual_to_context_mode( __GLcontextModes * mode, - const __GLXvisualConfig * config ) -{ - __GLcontextModes * const next = mode->next; - - (void) __glXMemset( mode, 0, sizeof( __GLcontextModes ) ); - mode->next = next; - - mode->visualID = config->vid; - mode->visualType = _gl_convert_from_x_visual_type( config->class ); - mode->xRenderable = GL_TRUE; - mode->fbconfigID = config->vid; - mode->drawableType = GLX_WINDOW_BIT | GLX_PIXMAP_BIT; - - mode->rgbMode = (config->rgba != 0); - mode->renderType = (mode->rgbMode) ? GLX_RGBA_BIT : GLX_COLOR_INDEX_BIT; - - mode->colorIndexMode = !(mode->rgbMode); - mode->doubleBufferMode = (config->doubleBuffer != 0); - mode->stereoMode = (config->stereo != 0); - - mode->haveAccumBuffer = ((config->accumRedSize + - config->accumGreenSize + - config->accumBlueSize + - config->accumAlphaSize) > 0); - mode->haveDepthBuffer = (config->depthSize > 0); - mode->haveStencilBuffer = (config->stencilSize > 0); - - mode->redBits = config->redSize; - mode->greenBits = config->greenSize; - mode->blueBits = config->blueSize; - mode->alphaBits = config->alphaSize; - mode->redMask = config->redMask; - mode->greenMask = config->greenMask; - mode->blueMask = config->blueMask; - mode->alphaMask = config->alphaMask; - mode->rgbBits = mode->rgbMode ? config->bufferSize : 0; - mode->indexBits = mode->colorIndexMode ? config->bufferSize : 0; - - mode->accumRedBits = config->accumRedSize; - mode->accumGreenBits = config->accumGreenSize; - mode->accumBlueBits = config->accumBlueSize; - mode->accumAlphaBits = config->accumAlphaSize; - mode->depthBits = config->depthSize; - mode->stencilBits = config->stencilSize; - - mode->numAuxBuffers = config->auxBuffers; - mode->level = config->level; - - mode->visualRating = config->visualRating; - mode->transparentPixel = config->transparentPixel; - mode->transparentRed = config->transparentRed; - mode->transparentGreen = config->transparentGreen; - mode->transparentBlue = config->transparentBlue; - mode->transparentAlpha = config->transparentAlpha; - mode->transparentIndex = config->transparentIndex; - - mode->swapMethod = GLX_SWAP_UNDEFINED_OML; -} - - -/** - * Get data from a GL context mode. - * - * \param mode GL context mode whose data is to be returned. - * \param attribute Attribute of \c mode that is to be returned. - * \param value_return Location to store the data member of \c mode. - * \return If \c attribute is a valid attribute of \c mode, zero is - * returned. Otherwise \c GLX_BAD_ATTRIBUTE is returned. - */ -int -_gl_get_context_mode_data(const __GLcontextModes *mode, int attribute, - int *value_return) -{ - switch (attribute) { - case GLX_USE_GL: - *value_return = GL_TRUE; - return 0; - case GLX_BUFFER_SIZE: - *value_return = mode->rgbBits; - return 0; - case GLX_RGBA: - *value_return = mode->rgbMode; - return 0; - case GLX_RED_SIZE: - *value_return = mode->redBits; - return 0; - case GLX_GREEN_SIZE: - *value_return = mode->greenBits; - return 0; - case GLX_BLUE_SIZE: - *value_return = mode->blueBits; - return 0; - case GLX_ALPHA_SIZE: - *value_return = mode->alphaBits; - return 0; - case GLX_DOUBLEBUFFER: - *value_return = mode->doubleBufferMode; - return 0; - case GLX_STEREO: - *value_return = mode->stereoMode; - return 0; - case GLX_AUX_BUFFERS: - *value_return = mode->numAuxBuffers; - return 0; - case GLX_DEPTH_SIZE: - *value_return = mode->depthBits; - return 0; - case GLX_STENCIL_SIZE: - *value_return = mode->stencilBits; - return 0; - case GLX_ACCUM_RED_SIZE: - *value_return = mode->accumRedBits; - return 0; - case GLX_ACCUM_GREEN_SIZE: - *value_return = mode->accumGreenBits; - return 0; - case GLX_ACCUM_BLUE_SIZE: - *value_return = mode->accumBlueBits; - return 0; - case GLX_ACCUM_ALPHA_SIZE: - *value_return = mode->accumAlphaBits; - return 0; - case GLX_LEVEL: - *value_return = mode->level; - return 0; - case GLX_TRANSPARENT_TYPE_EXT: - *value_return = mode->transparentPixel; - return 0; - case GLX_TRANSPARENT_RED_VALUE: - *value_return = mode->transparentRed; - return 0; - case GLX_TRANSPARENT_GREEN_VALUE: - *value_return = mode->transparentGreen; - return 0; - case GLX_TRANSPARENT_BLUE_VALUE: - *value_return = mode->transparentBlue; - return 0; - case GLX_TRANSPARENT_ALPHA_VALUE: - *value_return = mode->transparentAlpha; - return 0; - case GLX_TRANSPARENT_INDEX_VALUE: - *value_return = mode->transparentIndex; - return 0; - case GLX_X_VISUAL_TYPE: - *value_return = mode->visualType; - return 0; - case GLX_CONFIG_CAVEAT: - *value_return = mode->visualRating; - return 0; - case GLX_VISUAL_ID: - *value_return = mode->visualID; - return 0; - case GLX_DRAWABLE_TYPE: - *value_return = mode->drawableType; - return 0; - case GLX_RENDER_TYPE: - *value_return = mode->renderType; - return 0; - case GLX_X_RENDERABLE: - *value_return = mode->xRenderable; - return 0; - case GLX_FBCONFIG_ID: - *value_return = mode->fbconfigID; - return 0; - case GLX_MAX_PBUFFER_WIDTH: - *value_return = mode->maxPbufferWidth; - return 0; - case GLX_MAX_PBUFFER_HEIGHT: - *value_return = mode->maxPbufferHeight; - return 0; - case GLX_MAX_PBUFFER_PIXELS: - *value_return = mode->maxPbufferPixels; - return 0; - case GLX_OPTIMAL_PBUFFER_WIDTH_SGIX: - *value_return = mode->optimalPbufferWidth; - return 0; - case GLX_OPTIMAL_PBUFFER_HEIGHT_SGIX: - *value_return = mode->optimalPbufferHeight; - return 0; - case GLX_SWAP_METHOD_OML: - *value_return = mode->swapMethod; - return 0; - case GLX_SAMPLE_BUFFERS_SGIS: - *value_return = mode->sampleBuffers; - return 0; - case GLX_SAMPLES_SGIS: - *value_return = mode->samples; - return 0; - - /* Applications are NOT allowed to query GLX_VISUAL_SELECT_GROUP_SGIX. - * It is ONLY for communication between the GLX client and the GLX - * server. - */ - case GLX_VISUAL_SELECT_GROUP_SGIX: - default: - return GLX_BAD_ATTRIBUTE; - } -} -#endif /* !defined(IN_MINI_GLX) */ - - -/** - * Allocate a linked list of \c __GLcontextModes structures. The fields of - * each structure will be initialized to "reasonable" default values. In - * most cases this is the default value defined by table 3.4 of the GLX - * 1.3 specification. This means that most values are either initialized to - * zero or \c GLX_DONT_CARE (which is -1). As support for additional - * extensions is added, the new values will be initialized to appropriate - * values from the extension specification. - * - * \param count Number of structures to allocate. - * \param minimum_size Minimum size of a structure to allocate. This allows - * for differences in the version of the - * \c __GLcontextModes stucture used in libGL and in a - * DRI-based driver. - * \returns A pointer to the first element in a linked list of \c count - * stuctures on success, or \c NULL on failure. - * - * \warning Use of \c minimum_size does \b not guarantee binary compatibility. - * The fundamental assumption is that if the \c minimum_size - * specified by the driver and the size of the \c __GLcontextModes - * structure in libGL is the same, then the meaning of each byte in - * the structure is the same in both places. \b Be \b careful! - * Basically this means that fields have to be added in libGL and - * then propagated to drivers. Drivers should \b never arbitrarilly - * extend the \c __GLcontextModes data-structure. - */ -__GLcontextModes * -_gl_context_modes_create( unsigned count, size_t minimum_size ) -{ - const size_t size = (minimum_size > sizeof( __GLcontextModes )) - ? minimum_size : sizeof( __GLcontextModes ); - __GLcontextModes * base = NULL; - __GLcontextModes ** next; - unsigned i; - - next = & base; - for ( i = 0 ; i < count ; i++ ) { - *next = (__GLcontextModes *) _mesa_malloc( size ); - if ( *next == NULL ) { - _gl_context_modes_destroy( base ); - base = NULL; - break; - } - - (void) __glXMemset( *next, 0, size ); - (*next)->visualID = GLX_DONT_CARE; - (*next)->visualType = GLX_DONT_CARE; - (*next)->visualRating = GLX_NONE; - (*next)->transparentPixel = GLX_NONE; - (*next)->transparentRed = GLX_DONT_CARE; - (*next)->transparentGreen = GLX_DONT_CARE; - (*next)->transparentBlue = GLX_DONT_CARE; - (*next)->transparentAlpha = GLX_DONT_CARE; - (*next)->transparentIndex = GLX_DONT_CARE; - (*next)->xRenderable = GLX_DONT_CARE; - (*next)->fbconfigID = GLX_DONT_CARE; - (*next)->swapMethod = GLX_SWAP_UNDEFINED_OML; - - next = & ((*next)->next); - } - - return base; -} - - -/** - * Destroy a linked list of \c __GLcontextModes structures created by - * \c _gl_context_modes_create. - * - * \param modes Linked list of structures to be destroyed. All structres - * in the list will be freed. - */ -void -_gl_context_modes_destroy( __GLcontextModes * modes ) -{ - while ( modes != NULL ) { - __GLcontextModes * const next = modes->next; - - _mesa_free( modes ); - modes = next; - } -} - - -/** - * Find a context mode matching a Visual ID. - * - * \param modes List list of context-mode structures to be searched. - * \param vid Visual ID to be found. - * \returns A pointer to a context-mode in \c modes if \c vid was found in - * the list, or \c NULL if it was not. - */ - -__GLcontextModes * -_gl_context_modes_find_visual( __GLcontextModes * modes, int vid ) -{ - while ( modes != NULL ) { - if ( modes->visualID == vid ) { - break; - } - - modes = modes->next; - } - - return modes; -} - - -/** - * Determine if two context-modes are the same. This is intended to be used - * by libGL implementations to compare to sets of driver generated FBconfigs. - * - * \param a Context-mode to be compared. - * \param b Context-mode to be compared. - * \returns \c GL_TRUE if the two context-modes are the same. \c GL_FALSE is - * returned otherwise. - */ -GLboolean -_gl_context_modes_are_same( const __GLcontextModes * a, - const __GLcontextModes * b ) -{ - return( (a->rgbMode == b->rgbMode) && - (a->floatMode == b->floatMode) && - (a->colorIndexMode == b->colorIndexMode) && - (a->doubleBufferMode == b->doubleBufferMode) && - (a->stereoMode == b->stereoMode) && - (a->redBits == b->redBits) && - (a->greenBits == b->greenBits) && - (a->blueBits == b->blueBits) && - (a->alphaBits == b->alphaBits) && -#if 0 /* For some reason these don't get set on the client-side in libGL. */ - (a->redMask == b->redMask) && - (a->greenMask == b->greenMask) && - (a->blueMask == b->blueMask) && - (a->alphaMask == b->alphaMask) && -#endif - (a->rgbBits == b->rgbBits) && - (a->indexBits == b->indexBits) && - (a->accumRedBits == b->accumRedBits) && - (a->accumGreenBits == b->accumGreenBits) && - (a->accumBlueBits == b->accumBlueBits) && - (a->accumAlphaBits == b->accumAlphaBits) && - (a->depthBits == b->depthBits) && - (a->stencilBits == b->stencilBits) && - (a->numAuxBuffers == b->numAuxBuffers) && - (a->level == b->level) && - (a->pixmapMode == b->pixmapMode) && - (a->visualRating == b->visualRating) && - - (a->transparentPixel == b->transparentPixel) && - - ((a->transparentPixel != GLX_TRANSPARENT_RGB) || - ((a->transparentRed == b->transparentRed) && - (a->transparentGreen == b->transparentGreen) && - (a->transparentBlue == b->transparentBlue) && - (a->transparentAlpha == b->transparentAlpha))) && - - ((a->transparentPixel != GLX_TRANSPARENT_INDEX) || - (a->transparentIndex == b->transparentIndex)) && - - (a->sampleBuffers == b->sampleBuffers) && - (a->samples == b->samples) && - ((a->drawableType & b->drawableType) != 0) && - (a->renderType == b->renderType) && - (a->maxPbufferWidth == b->maxPbufferWidth) && - (a->maxPbufferHeight == b->maxPbufferHeight) && - (a->maxPbufferPixels == b->maxPbufferPixels) && - (a->optimalPbufferWidth == b->optimalPbufferWidth) && - (a->optimalPbufferHeight == b->optimalPbufferHeight) && - (a->swapMethod == b->swapMethod) ); -} diff --git a/nx-X11/extras/Mesa/src/mesa/drivers/dri/common/glcontextmodes.c.X.original b/nx-X11/extras/Mesa/src/mesa/drivers/dri/common/glcontextmodes.c.X.original deleted file mode 100644 index 5e9e352f2..000000000 --- a/nx-X11/extras/Mesa/src/mesa/drivers/dri/common/glcontextmodes.c.X.original +++ /dev/null @@ -1,496 +0,0 @@ -/* - * (C) Copyright IBM Corporation 2003 - * 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 - * VA LINUX SYSTEM, 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. - */ - -/** - * \file glcontextmodes.c - * Utility routines for working with \c __GLcontextModes structures. At - * some point most or all of these functions will be moved to the Mesa - * code base. - * - * \author Ian Romanick - */ - -#if defined(IN_MINI_GLX) -# include -# include -# include -# include "GL/internal/dri_interface.h" -# include "imports.h" -# define __glXMemset memset -#else -# include -# include -# include "GL/glxint.h" - -# ifdef XFree86Server -# include "GL/glx_ansic.h" -extern void * __glXMalloc( size_t size ); -extern void __glXFree( void * ptr ); -# define _mesa_malloc(b) __glXMalloc(b) -# define _mesa_free(m) __glXFree(m) -# else -# include -# define __glXMemset memset -# define _mesa_malloc(b) Xmalloc(b) -# define _mesa_free(m) Xfree(m) -# endif /* XFree86Server */ -#endif /* !defined(IN_MINI_GLX) */ - -#include "glcontextmodes.h" - -#if !defined(IN_MINI_GLX) -#define NUM_VISUAL_TYPES 6 - -/** - * Convert an X visual type to a GLX visual type. - * - * \param visualType X visual type (i.e., \c TrueColor, \c StaticGray, etc.) - * to be converted. - * \return If \c visualType is a valid X visual type, a GLX visual type will - * be returned. Otherwise \c GLX_NONE will be returned. - */ -GLint -_gl_convert_from_x_visual_type( int visualType ) -{ - static const int glx_visual_types[ NUM_VISUAL_TYPES ] = { - GLX_STATIC_GRAY, GLX_GRAY_SCALE, - GLX_STATIC_COLOR, GLX_PSEUDO_COLOR, - GLX_TRUE_COLOR, GLX_DIRECT_COLOR - }; - - return ( (unsigned) visualType < NUM_VISUAL_TYPES ) - ? glx_visual_types[ visualType ] : GLX_NONE; -} - - -/** - * Convert a GLX visual type to an X visual type. - * - * \param visualType GLX visual type (i.e., \c GLX_TRUE_COLOR, - * \c GLX_STATIC_GRAY, etc.) to be converted. - * \return If \c visualType is a valid GLX visual type, an X visual type will - * be returned. Otherwise -1 will be returned. - */ -GLint -_gl_convert_to_x_visual_type( int visualType ) -{ - static const int x_visual_types[ NUM_VISUAL_TYPES ] = { - TrueColor, DirectColor, - PseudoColor, StaticColor, - GrayScale, StaticGray - }; - - return ( (unsigned) (visualType - GLX_TRUE_COLOR) <= NUM_VISUAL_TYPES ) - ? x_visual_types[ visualType - GLX_TRUE_COLOR ] : -1; -} - - -/** - * Copy a GLX visual config structure to a GL context mode structure. All - * of the fields in \c config are copied to \c mode. Additional fields in - * \c mode that can be derrived from the fields of \c config (i.e., - * \c haveDepthBuffer) are also filled in. The remaining fields in \c mode - * that cannot be derrived are set to default values. - * - * \param mode Destination GL context mode. - * \param config Source GLX visual config. - * - * \note - * The \c fbconfigID and \c visualID fields of the \c __GLcontextModes - * structure will be set to the \c vid of the \c __GLXvisualConfig structure. - */ -void -_gl_copy_visual_to_context_mode( __GLcontextModes * mode, - const __GLXvisualConfig * config ) -{ - __GLcontextModes * const next = mode->next; - - (void) __glXMemset( mode, 0, sizeof( __GLcontextModes ) ); - mode->next = next; - - mode->visualID = config->vid; - mode->visualType = _gl_convert_from_x_visual_type( config->class ); - mode->xRenderable = GL_TRUE; - mode->fbconfigID = config->vid; - mode->drawableType = GLX_WINDOW_BIT | GLX_PIXMAP_BIT; - - mode->rgbMode = (config->rgba != 0); - mode->renderType = (mode->rgbMode) ? GLX_RGBA_BIT : GLX_COLOR_INDEX_BIT; - - mode->colorIndexMode = !(mode->rgbMode); - mode->doubleBufferMode = (config->doubleBuffer != 0); - mode->stereoMode = (config->stereo != 0); - - mode->haveAccumBuffer = ((config->accumRedSize + - config->accumGreenSize + - config->accumBlueSize + - config->accumAlphaSize) > 0); - mode->haveDepthBuffer = (config->depthSize > 0); - mode->haveStencilBuffer = (config->stencilSize > 0); - - mode->redBits = config->redSize; - mode->greenBits = config->greenSize; - mode->blueBits = config->blueSize; - mode->alphaBits = config->alphaSize; - mode->redMask = config->redMask; - mode->greenMask = config->greenMask; - mode->blueMask = config->blueMask; - mode->alphaMask = config->alphaMask; - mode->rgbBits = mode->rgbMode ? config->bufferSize : 0; - mode->indexBits = mode->colorIndexMode ? config->bufferSize : 0; - - mode->accumRedBits = config->accumRedSize; - mode->accumGreenBits = config->accumGreenSize; - mode->accumBlueBits = config->accumBlueSize; - mode->accumAlphaBits = config->accumAlphaSize; - mode->depthBits = config->depthSize; - mode->stencilBits = config->stencilSize; - - mode->numAuxBuffers = config->auxBuffers; - mode->level = config->level; - - mode->visualRating = config->visualRating; - mode->transparentPixel = config->transparentPixel; - mode->transparentRed = config->transparentRed; - mode->transparentGreen = config->transparentGreen; - mode->transparentBlue = config->transparentBlue; - mode->transparentAlpha = config->transparentAlpha; - mode->transparentIndex = config->transparentIndex; - - mode->swapMethod = GLX_SWAP_UNDEFINED_OML; -} - - -/** - * Get data from a GL context mode. - * - * \param mode GL context mode whose data is to be returned. - * \param attribute Attribute of \c mode that is to be returned. - * \param value_return Location to store the data member of \c mode. - * \return If \c attribute is a valid attribute of \c mode, zero is - * returned. Otherwise \c GLX_BAD_ATTRIBUTE is returned. - */ -int -_gl_get_context_mode_data(const __GLcontextModes *mode, int attribute, - int *value_return) -{ - switch (attribute) { - case GLX_USE_GL: - *value_return = GL_TRUE; - return 0; - case GLX_BUFFER_SIZE: - *value_return = mode->rgbBits; - return 0; - case GLX_RGBA: - *value_return = mode->rgbMode; - return 0; - case GLX_RED_SIZE: - *value_return = mode->redBits; - return 0; - case GLX_GREEN_SIZE: - *value_return = mode->greenBits; - return 0; - case GLX_BLUE_SIZE: - *value_return = mode->blueBits; - return 0; - case GLX_ALPHA_SIZE: - *value_return = mode->alphaBits; - return 0; - case GLX_DOUBLEBUFFER: - *value_return = mode->doubleBufferMode; - return 0; - case GLX_STEREO: - *value_return = mode->stereoMode; - return 0; - case GLX_AUX_BUFFERS: - *value_return = mode->numAuxBuffers; - return 0; - case GLX_DEPTH_SIZE: - *value_return = mode->depthBits; - return 0; - case GLX_STENCIL_SIZE: - *value_return = mode->stencilBits; - return 0; - case GLX_ACCUM_RED_SIZE: - *value_return = mode->accumRedBits; - return 0; - case GLX_ACCUM_GREEN_SIZE: - *value_return = mode->accumGreenBits; - return 0; - case GLX_ACCUM_BLUE_SIZE: - *value_return = mode->accumBlueBits; - return 0; - case GLX_ACCUM_ALPHA_SIZE: - *value_return = mode->accumAlphaBits; - return 0; - case GLX_LEVEL: - *value_return = mode->level; - return 0; - case GLX_TRANSPARENT_TYPE_EXT: - *value_return = mode->transparentPixel; - return 0; - case GLX_TRANSPARENT_RED_VALUE: - *value_return = mode->transparentRed; - return 0; - case GLX_TRANSPARENT_GREEN_VALUE: - *value_return = mode->transparentGreen; - return 0; - case GLX_TRANSPARENT_BLUE_VALUE: - *value_return = mode->transparentBlue; - return 0; - case GLX_TRANSPARENT_ALPHA_VALUE: - *value_return = mode->transparentAlpha; - return 0; - case GLX_TRANSPARENT_INDEX_VALUE: - *value_return = mode->transparentIndex; - return 0; - case GLX_X_VISUAL_TYPE: - *value_return = mode->visualType; - return 0; - case GLX_CONFIG_CAVEAT: - *value_return = mode->visualRating; - return 0; - case GLX_VISUAL_ID: - *value_return = mode->visualID; - return 0; - case GLX_DRAWABLE_TYPE: - *value_return = mode->drawableType; - return 0; - case GLX_RENDER_TYPE: - *value_return = mode->renderType; - return 0; - case GLX_X_RENDERABLE: - *value_return = mode->xRenderable; - return 0; - case GLX_FBCONFIG_ID: - *value_return = mode->fbconfigID; - return 0; - case GLX_MAX_PBUFFER_WIDTH: - *value_return = mode->maxPbufferWidth; - return 0; - case GLX_MAX_PBUFFER_HEIGHT: - *value_return = mode->maxPbufferHeight; - return 0; - case GLX_MAX_PBUFFER_PIXELS: - *value_return = mode->maxPbufferPixels; - return 0; - case GLX_OPTIMAL_PBUFFER_WIDTH_SGIX: - *value_return = mode->optimalPbufferWidth; - return 0; - case GLX_OPTIMAL_PBUFFER_HEIGHT_SGIX: - *value_return = mode->optimalPbufferHeight; - return 0; - case GLX_SWAP_METHOD_OML: - *value_return = mode->swapMethod; - return 0; - case GLX_SAMPLE_BUFFERS_SGIS: - *value_return = mode->sampleBuffers; - return 0; - case GLX_SAMPLES_SGIS: - *value_return = mode->samples; - return 0; - - /* Applications are NOT allowed to query GLX_VISUAL_SELECT_GROUP_SGIX. - * It is ONLY for communication between the GLX client and the GLX - * server. - */ - case GLX_VISUAL_SELECT_GROUP_SGIX: - default: - return GLX_BAD_ATTRIBUTE; - } -} -#endif /* !defined(IN_MINI_GLX) */ - - -/** - * Allocate a linked list of \c __GLcontextModes structures. The fields of - * each structure will be initialized to "reasonable" default values. In - * most cases this is the default value defined by table 3.4 of the GLX - * 1.3 specification. This means that most values are either initialized to - * zero or \c GLX_DONT_CARE (which is -1). As support for additional - * extensions is added, the new values will be initialized to appropriate - * values from the extension specification. - * - * \param count Number of structures to allocate. - * \param minimum_size Minimum size of a structure to allocate. This allows - * for differences in the version of the - * \c __GLcontextModes stucture used in libGL and in a - * DRI-based driver. - * \returns A pointer to the first element in a linked list of \c count - * stuctures on success, or \c NULL on failure. - * - * \warning Use of \c minimum_size does \b not guarantee binary compatibility. - * The fundamental assumption is that if the \c minimum_size - * specified by the driver and the size of the \c __GLcontextModes - * structure in libGL is the same, then the meaning of each byte in - * the structure is the same in both places. \b Be \b careful! - * Basically this means that fields have to be added in libGL and - * then propagated to drivers. Drivers should \b never arbitrarilly - * extend the \c __GLcontextModes data-structure. - */ -__GLcontextModes * -_gl_context_modes_create( unsigned count, size_t minimum_size ) -{ - const size_t size = (minimum_size > sizeof( __GLcontextModes )) - ? minimum_size : sizeof( __GLcontextModes ); - __GLcontextModes * base = NULL; - __GLcontextModes ** next; - unsigned i; - - next = & base; - for ( i = 0 ; i < count ; i++ ) { - *next = (__GLcontextModes *) _mesa_malloc( size ); - if ( *next == NULL ) { - _gl_context_modes_destroy( base ); - base = NULL; - break; - } - - (void) __glXMemset( *next, 0, size ); - (*next)->visualID = GLX_DONT_CARE; - (*next)->visualType = GLX_DONT_CARE; - (*next)->visualRating = GLX_NONE; - (*next)->transparentPixel = GLX_NONE; - (*next)->transparentRed = GLX_DONT_CARE; - (*next)->transparentGreen = GLX_DONT_CARE; - (*next)->transparentBlue = GLX_DONT_CARE; - (*next)->transparentAlpha = GLX_DONT_CARE; - (*next)->transparentIndex = GLX_DONT_CARE; - (*next)->xRenderable = GLX_DONT_CARE; - (*next)->fbconfigID = GLX_DONT_CARE; - (*next)->swapMethod = GLX_SWAP_UNDEFINED_OML; - - next = & ((*next)->next); - } - - return base; -} - - -/** - * Destroy a linked list of \c __GLcontextModes structures created by - * \c _gl_context_modes_create. - * - * \param modes Linked list of structures to be destroyed. All structres - * in the list will be freed. - */ -void -_gl_context_modes_destroy( __GLcontextModes * modes ) -{ - while ( modes != NULL ) { - __GLcontextModes * const next = modes->next; - - _mesa_free( modes ); - modes = next; - } -} - - -/** - * Find a context mode matching a Visual ID. - * - * \param modes List list of context-mode structures to be searched. - * \param vid Visual ID to be found. - * \returns A pointer to a context-mode in \c modes if \c vid was found in - * the list, or \c NULL if it was not. - */ - -__GLcontextModes * -_gl_context_modes_find_visual( __GLcontextModes * modes, int vid ) -{ - while ( modes != NULL ) { - if ( modes->visualID == vid ) { - break; - } - - modes = modes->next; - } - - return modes; -} - - -/** - * Determine if two context-modes are the same. This is intended to be used - * by libGL implementations to compare to sets of driver generated FBconfigs. - * - * \param a Context-mode to be compared. - * \param b Context-mode to be compared. - * \returns \c GL_TRUE if the two context-modes are the same. \c GL_FALSE is - * returned otherwise. - */ -GLboolean -_gl_context_modes_are_same( const __GLcontextModes * a, - const __GLcontextModes * b ) -{ - return( (a->rgbMode == b->rgbMode) && - (a->floatMode == b->floatMode) && - (a->colorIndexMode == b->colorIndexMode) && - (a->doubleBufferMode == b->doubleBufferMode) && - (a->stereoMode == b->stereoMode) && - (a->redBits == b->redBits) && - (a->greenBits == b->greenBits) && - (a->blueBits == b->blueBits) && - (a->alphaBits == b->alphaBits) && -#if 0 /* For some reason these don't get set on the client-side in libGL. */ - (a->redMask == b->redMask) && - (a->greenMask == b->greenMask) && - (a->blueMask == b->blueMask) && - (a->alphaMask == b->alphaMask) && -#endif - (a->rgbBits == b->rgbBits) && - (a->indexBits == b->indexBits) && - (a->accumRedBits == b->accumRedBits) && - (a->accumGreenBits == b->accumGreenBits) && - (a->accumBlueBits == b->accumBlueBits) && - (a->accumAlphaBits == b->accumAlphaBits) && - (a->depthBits == b->depthBits) && - (a->stencilBits == b->stencilBits) && - (a->numAuxBuffers == b->numAuxBuffers) && - (a->level == b->level) && - (a->pixmapMode == b->pixmapMode) && - (a->visualRating == b->visualRating) && - - (a->transparentPixel == b->transparentPixel) && - - ((a->transparentPixel != GLX_TRANSPARENT_RGB) || - ((a->transparentRed == b->transparentRed) && - (a->transparentGreen == b->transparentGreen) && - (a->transparentBlue == b->transparentBlue) && - (a->transparentAlpha == b->transparentAlpha))) && - - ((a->transparentPixel != GLX_TRANSPARENT_INDEX) || - (a->transparentIndex == b->transparentIndex)) && - - (a->sampleBuffers == b->sampleBuffers) && - (a->samples == b->samples) && - ((a->drawableType & b->drawableType) != 0) && - (a->renderType == b->renderType) && - (a->maxPbufferWidth == b->maxPbufferWidth) && - (a->maxPbufferHeight == b->maxPbufferHeight) && - (a->maxPbufferPixels == b->maxPbufferPixels) && - (a->optimalPbufferWidth == b->optimalPbufferWidth) && - (a->optimalPbufferHeight == b->optimalPbufferHeight) && - (a->swapMethod == b->swapMethod) ); -} diff --git a/nx-X11/extras/Mesa/src/mesa/drivers/dri/common/memops.h b/nx-X11/extras/Mesa/src/mesa/drivers/dri/common/memops.h deleted file mode 100644 index 4952d788e..000000000 --- a/nx-X11/extras/Mesa/src/mesa/drivers/dri/common/memops.h +++ /dev/null @@ -1,17 +0,0 @@ -#ifndef DRIMEMSETIO_H -#define DRIMEMSETIO_H -/* -* memset an area in I/O space -* We need to be careful about this on some archs -*/ -static __inline__ void drimemsetio(void* address, int c, int size) -{ -#if defined(__powerpc__) || defined(__ia64__) - int i; - for(i=0;i - */ - - -#ifndef MMIO_H -#define MMIO_H - -#include "glheader.h" - -#if defined( __powerpc__ ) - -static __inline__ u_int32_t -read_MMIO_LE32( volatile void * base, unsigned long offset ) -{ - u_int32_t val; - - __asm__ __volatile__( "lwbrx %0, %1, %2 ; eieio" - : "=r" (val) - : "b" (base), "r" (offset) ); - return val; -} - -#else - -static __inline__ u_int32_t -read_MMIO_LE32( volatile void * base, unsigned long offset ) -{ - volatile u_int32_t * p = (volatile u_int32_t *) (((volatile char *) base) + offset); - return LE32_TO_CPU( p[0] ); -} - -#endif - -#endif /* MMIO_H */ diff --git a/nx-X11/extras/Mesa/src/mesa/drivers/dri/common/mmx.h b/nx-X11/extras/Mesa/src/mesa/drivers/dri/common/mmx.h deleted file mode 100644 index 49ce7e3e3..000000000 --- a/nx-X11/extras/Mesa/src/mesa/drivers/dri/common/mmx.h +++ /dev/null @@ -1,560 +0,0 @@ -/* mmx.h - - MultiMedia eXtensions GCC interface library for IA32. - - To use this library, simply include this header file - and compile with GCC. You MUST have inlining enabled - in order for mmx_ok() to work; this can be done by - simply using -O on the GCC command line. - - Compiling with -DMMX_TRACE will cause detailed trace - output to be sent to stderr for each mmx operation. - This adds lots of code, and obviously slows execution to - a crawl, but can be very useful for debugging. - - THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY - EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT - LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY - AND FITNESS FOR ANY PARTICULAR PURPOSE. - - 1997-98 by H. Dietz and R. Fisher - - History: - 97-98* R.Fisher Early versions - 980501 R.Fisher Original Release - 980611* H.Dietz Rewrite, correctly implementing inlines, and - R.Fisher including direct register accesses. - 980616 R.Fisher Release of 980611 as 980616. - 980714 R.Fisher Minor corrections to Makefile, etc. - 980715 R.Fisher mmx_ok() now prevents optimizer from using - clobbered values. - mmx_ok() now checks if cpuid instruction is - available before trying to use it. - 980726* R.Fisher mm_support() searches for AMD 3DNow, Cyrix - Extended MMX, and standard MMX. It returns a - value which is positive if any of these are - supported, and can be masked with constants to - see which. mmx_ok() is now a call to this - 980726* R.Fisher Added i2r support for shift functions - 980919 R.Fisher Fixed AMD extended feature recognition bug. - 980921 R.Fisher Added definition/check for _MMX_H. - Added "float s[2]" to mmx_t for use with - 3DNow and EMMX. So same mmx_t can be used. - 981013 R.Fisher Fixed cpuid function 1 bug (looked at wrong reg) - Fixed psllq_i2r error in mmxtest.c - - * Unreleased (internal or interim) versions - - Notes: - It appears that the latest gas has the pand problem fixed, therefore - I'll undefine BROKEN_PAND by default. - String compares may be quicker than the multiple test/jumps in vendor - test sequence in mmx_ok(), but I'm not concerned with that right now. - - Acknowledgments: - Jussi Laako for pointing out the errors ultimately found to be - connected to the failure to notify the optimizer of clobbered values. - Roger Hardiman for reminding us that CPUID isn't everywhere, and that - someone may actually try to use this on a machine without CPUID. - Also for suggesting code for checking this. - Robert Dale for pointing out the AMD recognition bug. - Jimmy Mayfield and Carl Witty for pointing out the Intel recognition - bug. - Carl Witty for pointing out the psllq_i2r test bug. -*/ - -#ifndef _MMX_H -#define _MMX_H - -//#define MMX_TRACE - -/* Warning: at this writing, the version of GAS packaged - with most Linux distributions does not handle the - parallel AND operation mnemonic correctly. If the - symbol BROKEN_PAND is defined, a slower alternative - coding will be used. If execution of mmxtest results - in an illegal instruction fault, define this symbol. -*/ -#undef BROKEN_PAND - - -/* The type of an value that fits in an MMX register - (note that long long constant values MUST be suffixed - by LL and unsigned long long values by ULL, lest - they be truncated by the compiler) -*/ -typedef union { - long long q; /* Quadword (64-bit) value */ - unsigned long long uq; /* Unsigned Quadword */ - int d[2]; /* 2 Doubleword (32-bit) values */ - unsigned int ud[2]; /* 2 Unsigned Doubleword */ - short w[4]; /* 4 Word (16-bit) values */ - unsigned short uw[4]; /* 4 Unsigned Word */ - char b[8]; /* 8 Byte (8-bit) values */ - unsigned char ub[8]; /* 8 Unsigned Byte */ - float s[2]; /* Single-precision (32-bit) value */ -} mmx_t; - -/* Helper functions for the instruction macros that follow... - (note that memory-to-register, m2r, instructions are nearly - as efficient as register-to-register, r2r, instructions; - however, memory-to-memory instructions are really simulated - as a convenience, and are only 1/3 as efficient) -*/ -#ifdef MMX_TRACE - -/* Include the stuff for printing a trace to stderr... -*/ - -#include - -#define mmx_i2r(op, imm, reg) \ - { \ - mmx_t mmx_trace; \ - mmx_trace = (imm); \ - fprintf(stderr, #op "_i2r(" #imm "=0x%016llx, ", mmx_trace.q); \ - __asm__ __volatile__ ("movq %%" #reg ", %0" \ - : "=X" (mmx_trace) \ - : /* nothing */ ); \ - fprintf(stderr, #reg "=0x%016llx) => ", mmx_trace.q); \ - __asm__ __volatile__ (#op " %0, %%" #reg \ - : /* nothing */ \ - : "X" (imm)); \ - __asm__ __volatile__ ("movq %%" #reg ", %0" \ - : "=X" (mmx_trace) \ - : /* nothing */ ); \ - fprintf(stderr, #reg "=0x%016llx\n", mmx_trace.q); \ - } - -#define mmx_m2r(op, mem, reg) \ - { \ - mmx_t mmx_trace; \ - mmx_trace = (mem); \ - fprintf(stderr, #op "_m2r(" #mem "=0x%016llx, ", mmx_trace.q); \ - __asm__ __volatile__ ("movq %%" #reg ", %0" \ - : "=X" (mmx_trace) \ - : /* nothing */ ); \ - fprintf(stderr, #reg "=0x%016llx) => ", mmx_trace.q); \ - __asm__ __volatile__ (#op " %0, %%" #reg \ - : /* nothing */ \ - : "X" (mem)); \ - __asm__ __volatile__ ("movq %%" #reg ", %0" \ - : "=X" (mmx_trace) \ - : /* nothing */ ); \ - fprintf(stderr, #reg "=0x%016llx\n", mmx_trace.q); \ - } - -#define mmx_r2m(op, reg, mem) \ - { \ - mmx_t mmx_trace; \ - __asm__ __volatile__ ("movq %%" #reg ", %0" \ - : "=X" (mmx_trace) \ - : /* nothing */ ); \ - fprintf(stderr, #op "_r2m(" #reg "=0x%016llx, ", mmx_trace.q); \ - mmx_trace = (mem); \ - fprintf(stderr, #mem "=0x%016llx) => ", mmx_trace.q); \ - __asm__ __volatile__ (#op " %%" #reg ", %0" \ - : "=X" (mem) \ - : /* nothing */ ); \ - mmx_trace = (mem); \ - fprintf(stderr, #mem "=0x%016llx\n", mmx_trace.q); \ - } - -#define mmx_r2r(op, regs, regd) \ - { \ - mmx_t mmx_trace; \ - __asm__ __volatile__ ("movq %%" #regs ", %0" \ - : "=X" (mmx_trace) \ - : /* nothing */ ); \ - fprintf(stderr, #op "_r2r(" #regs "=0x%016llx, ", mmx_trace.q); \ - __asm__ __volatile__ ("movq %%" #regd ", %0" \ - : "=X" (mmx_trace) \ - : /* nothing */ ); \ - fprintf(stderr, #regd "=0x%016llx) => ", mmx_trace.q); \ - __asm__ __volatile__ (#op " %" #regs ", %" #regd); \ - __asm__ __volatile__ ("movq %%" #regd ", %0" \ - : "=X" (mmx_trace) \ - : /* nothing */ ); \ - fprintf(stderr, #regd "=0x%016llx\n", mmx_trace.q); \ - } - -#define mmx_m2m(op, mems, memd) \ - { \ - mmx_t mmx_trace; \ - mmx_trace = (mems); \ - fprintf(stderr, #op "_m2m(" #mems "=0x%016llx, ", mmx_trace.q); \ - mmx_trace = (memd); \ - fprintf(stderr, #memd "=0x%016llx) => ", mmx_trace.q); \ - __asm__ __volatile__ ("movq %0, %%mm0\n\t" \ - #op " %1, %%mm0\n\t" \ - "movq %%mm0, %0" \ - : "=X" (memd) \ - : "X" (mems)); \ - mmx_trace = (memd); \ - fprintf(stderr, #memd "=0x%016llx\n", mmx_trace.q); \ - } - -#else - -/* These macros are a lot simpler without the tracing... -*/ - -#define mmx_i2r(op, imm, reg) \ - __asm__ __volatile__ (#op " $" #imm ", %%" #reg \ - : /* nothing */ \ - : /* nothing */); - -#define mmx_m2r(op, mem, reg) \ - __asm__ __volatile__ (#op " %0, %%" #reg \ - : /* nothing */ \ - : "X" (mem)) - -#define mmx_r2m(op, reg, mem) \ - __asm__ __volatile__ (#op " %%" #reg ", %0" \ - : "=X" (mem) \ - : /* nothing */ ) - -#define mmx_r2r(op, regs, regd) \ - __asm__ __volatile__ (#op " %" #regs ", %" #regd) - -#define mmx_m2m(op, mems, memd) \ - __asm__ __volatile__ ("movq %0, %%mm0\n\t" \ - #op " %1, %%mm0\n\t" \ - "movq %%mm0, %0" \ - : "=X" (memd) \ - : "X" (mems)) - -#endif - - -/* 1x64 MOVe Quadword - (this is both a load and a store... - in fact, it is the only way to store) -*/ -#define movq_m2r(var, reg) mmx_m2r(movq, var, reg) -#define movq_r2m(reg, var) mmx_r2m(movq, reg, var) -#define movq_r2r(regs, regd) mmx_r2r(movq, regs, regd) -#define movq(vars, vard) \ - __asm__ __volatile__ ("movq %1, %%mm0\n\t" \ - "movq %%mm0, %0" \ - : "=X" (vard) \ - : "X" (vars)) - - -/* 1x32 MOVe Doubleword - (like movq, this is both load and store... - but is most useful for moving things between - mmx registers and ordinary registers) -*/ -#define movd_m2r(var, reg) mmx_m2r(movd, var, reg) -#define movd_r2m(reg, var) mmx_r2m(movd, reg, var) -#define movd_r2r(regs, regd) mmx_r2r(movd, regs, regd) -#define movd(vars, vard) \ - __asm__ __volatile__ ("movd %1, %%mm0\n\t" \ - "movd %%mm0, %0" \ - : "=X" (vard) \ - : "X" (vars)) - - -/* 2x32, 4x16, and 8x8 Parallel ADDs -*/ -#define paddd_m2r(var, reg) mmx_m2r(paddd, var, reg) -#define paddd_r2r(regs, regd) mmx_r2r(paddd, regs, regd) -#define paddd(vars, vard) mmx_m2m(paddd, vars, vard) - -#define paddw_m2r(var, reg) mmx_m2r(paddw, var, reg) -#define paddw_r2r(regs, regd) mmx_r2r(paddw, regs, regd) -#define paddw(vars, vard) mmx_m2m(paddw, vars, vard) - -#define paddb_m2r(var, reg) mmx_m2r(paddb, var, reg) -#define paddb_r2r(regs, regd) mmx_r2r(paddb, regs, regd) -#define paddb(vars, vard) mmx_m2m(paddb, vars, vard) - - -/* 4x16 and 8x8 Parallel ADDs using Saturation arithmetic -*/ -#define paddsw_m2r(var, reg) mmx_m2r(paddsw, var, reg) -#define paddsw_r2r(regs, regd) mmx_r2r(paddsw, regs, regd) -#define paddsw(vars, vard) mmx_m2m(paddsw, vars, vard) - -#define paddsb_m2r(var, reg) mmx_m2r(paddsb, var, reg) -#define paddsb_r2r(regs, regd) mmx_r2r(paddsb, regs, regd) -#define paddsb(vars, vard) mmx_m2m(paddsb, vars, vard) - - -/* 4x16 and 8x8 Parallel ADDs using Unsigned Saturation arithmetic -*/ -#define paddusw_m2r(var, reg) mmx_m2r(paddusw, var, reg) -#define paddusw_r2r(regs, regd) mmx_r2r(paddusw, regs, regd) -#define paddusw(vars, vard) mmx_m2m(paddusw, vars, vard) - -#define paddusb_m2r(var, reg) mmx_m2r(paddusb, var, reg) -#define paddusb_r2r(regs, regd) mmx_r2r(paddusb, regs, regd) -#define paddusb(vars, vard) mmx_m2m(paddusb, vars, vard) - - -/* 2x32, 4x16, and 8x8 Parallel SUBs -*/ -#define psubd_m2r(var, reg) mmx_m2r(psubd, var, reg) -#define psubd_r2r(regs, regd) mmx_r2r(psubd, regs, regd) -#define psubd(vars, vard) mmx_m2m(psubd, vars, vard) - -#define psubw_m2r(var, reg) mmx_m2r(psubw, var, reg) -#define psubw_r2r(regs, regd) mmx_r2r(psubw, regs, regd) -#define psubw(vars, vard) mmx_m2m(psubw, vars, vard) - -#define psubb_m2r(var, reg) mmx_m2r(psubb, var, reg) -#define psubb_r2r(regs, regd) mmx_r2r(psubb, regs, regd) -#define psubb(vars, vard) mmx_m2m(psubb, vars, vard) - - -/* 4x16 and 8x8 Parallel SUBs using Saturation arithmetic -*/ -#define psubsw_m2r(var, reg) mmx_m2r(psubsw, var, reg) -#define psubsw_r2r(regs, regd) mmx_r2r(psubsw, regs, regd) -#define psubsw(vars, vard) mmx_m2m(psubsw, vars, vard) - -#define psubsb_m2r(var, reg) mmx_m2r(psubsb, var, reg) -#define psubsb_r2r(regs, regd) mmx_r2r(psubsb, regs, regd) -#define psubsb(vars, vard) mmx_m2m(psubsb, vars, vard) - - -/* 4x16 and 8x8 Parallel SUBs using Unsigned Saturation arithmetic -*/ -#define psubusw_m2r(var, reg) mmx_m2r(psubusw, var, reg) -#define psubusw_r2r(regs, regd) mmx_r2r(psubusw, regs, regd) -#define psubusw(vars, vard) mmx_m2m(psubusw, vars, vard) - -#define psubusb_m2r(var, reg) mmx_m2r(psubusb, var, reg) -#define psubusb_r2r(regs, regd) mmx_r2r(psubusb, regs, regd) -#define psubusb(vars, vard) mmx_m2m(psubusb, vars, vard) - - -/* 4x16 Parallel MULs giving Low 4x16 portions of results -*/ -#define pmullw_m2r(var, reg) mmx_m2r(pmullw, var, reg) -#define pmullw_r2r(regs, regd) mmx_r2r(pmullw, regs, regd) -#define pmullw(vars, vard) mmx_m2m(pmullw, vars, vard) - - -/* 4x16 Parallel MULs giving High 4x16 portions of results -*/ -#define pmulhw_m2r(var, reg) mmx_m2r(pmulhw, var, reg) -#define pmulhw_r2r(regs, regd) mmx_r2r(pmulhw, regs, regd) -#define pmulhw(vars, vard) mmx_m2m(pmulhw, vars, vard) - - -/* 4x16->2x32 Parallel Mul-ADD - (muls like pmullw, then adds adjacent 16-bit fields - in the multiply result to make the final 2x32 result) -*/ -#define pmaddwd_m2r(var, reg) mmx_m2r(pmaddwd, var, reg) -#define pmaddwd_r2r(regs, regd) mmx_r2r(pmaddwd, regs, regd) -#define pmaddwd(vars, vard) mmx_m2m(pmaddwd, vars, vard) - - -/* 1x64 bitwise AND -*/ -#ifdef BROKEN_PAND -#define pand_m2r(var, reg) \ - { \ - mmx_m2r(pandn, (mmx_t) -1LL, reg); \ - mmx_m2r(pandn, var, reg); \ - } -#define pand_r2r(regs, regd) \ - { \ - mmx_m2r(pandn, (mmx_t) -1LL, regd); \ - mmx_r2r(pandn, regs, regd) \ - } -#define pand(vars, vard) \ - { \ - movq_m2r(vard, mm0); \ - mmx_m2r(pandn, (mmx_t) -1LL, mm0); \ - mmx_m2r(pandn, vars, mm0); \ - movq_r2m(mm0, vard); \ - } -#else -#define pand_m2r(var, reg) mmx_m2r(pand, var, reg) -#define pand_r2r(regs, regd) mmx_r2r(pand, regs, regd) -#define pand(vars, vard) mmx_m2m(pand, vars, vard) -#endif - - -/* 1x64 bitwise AND with Not the destination -*/ -#define pandn_m2r(var, reg) mmx_m2r(pandn, var, reg) -#define pandn_r2r(regs, regd) mmx_r2r(pandn, regs, regd) -#define pandn(vars, vard) mmx_m2m(pandn, vars, vard) - - -/* 1x64 bitwise OR -*/ -#define por_m2r(var, reg) mmx_m2r(por, var, reg) -#define por_r2r(regs, regd) mmx_r2r(por, regs, regd) -#define por(vars, vard) mmx_m2m(por, vars, vard) - - -/* 1x64 bitwise eXclusive OR -*/ -#define pxor_m2r(var, reg) mmx_m2r(pxor, var, reg) -#define pxor_r2r(regs, regd) mmx_r2r(pxor, regs, regd) -#define pxor(vars, vard) mmx_m2m(pxor, vars, vard) - - -/* 2x32, 4x16, and 8x8 Parallel CoMPare for EQuality - (resulting fields are either 0 or -1) -*/ -#define pcmpeqd_m2r(var, reg) mmx_m2r(pcmpeqd, var, reg) -#define pcmpeqd_r2r(regs, regd) mmx_r2r(pcmpeqd, regs, regd) -#define pcmpeqd(vars, vard) mmx_m2m(pcmpeqd, vars, vard) - -#define pcmpeqw_m2r(var, reg) mmx_m2r(pcmpeqw, var, reg) -#define pcmpeqw_r2r(regs, regd) mmx_r2r(pcmpeqw, regs, regd) -#define pcmpeqw(vars, vard) mmx_m2m(pcmpeqw, vars, vard) - -#define pcmpeqb_m2r(var, reg) mmx_m2r(pcmpeqb, var, reg) -#define pcmpeqb_r2r(regs, regd) mmx_r2r(pcmpeqb, regs, regd) -#define pcmpeqb(vars, vard) mmx_m2m(pcmpeqb, vars, vard) - - -/* 2x32, 4x16, and 8x8 Parallel CoMPare for Greater Than - (resulting fields are either 0 or -1) -*/ -#define pcmpgtd_m2r(var, reg) mmx_m2r(pcmpgtd, var, reg) -#define pcmpgtd_r2r(regs, regd) mmx_r2r(pcmpgtd, regs, regd) -#define pcmpgtd(vars, vard) mmx_m2m(pcmpgtd, vars, vard) - -#define pcmpgtw_m2r(var, reg) mmx_m2r(pcmpgtw, var, reg) -#define pcmpgtw_r2r(regs, regd) mmx_r2r(pcmpgtw, regs, regd) -#define pcmpgtw(vars, vard) mmx_m2m(pcmpgtw, vars, vard) - -#define pcmpgtb_m2r(var, reg) mmx_m2r(pcmpgtb, var, reg) -#define pcmpgtb_r2r(regs, regd) mmx_r2r(pcmpgtb, regs, regd) -#define pcmpgtb(vars, vard) mmx_m2m(pcmpgtb, vars, vard) - - -/* 1x64, 2x32, and 4x16 Parallel Shift Left Logical -*/ -#define psllq_i2r(imm, reg) mmx_i2r(psllq, imm, reg) -#define psllq_m2r(var, reg) mmx_m2r(psllq, var, reg) -#define psllq_r2r(regs, regd) mmx_r2r(psllq, regs, regd) -#define psllq(vars, vard) mmx_m2m(psllq, vars, vard) - -#define pslld_i2r(imm, reg) mmx_i2r(pslld, imm, reg) -#define pslld_m2r(var, reg) mmx_m2r(pslld, var, reg) -#define pslld_r2r(regs, regd) mmx_r2r(pslld, regs, regd) -#define pslld(vars, vard) mmx_m2m(pslld, vars, vard) - -#define psllw_i2r(imm, reg) mmx_i2r(psllw, imm, reg) -#define psllw_m2r(var, reg) mmx_m2r(psllw, var, reg) -#define psllw_r2r(regs, regd) mmx_r2r(psllw, regs, regd) -#define psllw(vars, vard) mmx_m2m(psllw, vars, vard) - - -/* 1x64, 2x32, and 4x16 Parallel Shift Right Logical -*/ -#define psrlq_i2r(imm, reg) mmx_i2r(psrlq, imm, reg) -#define psrlq_m2r(var, reg) mmx_m2r(psrlq, var, reg) -#define psrlq_r2r(regs, regd) mmx_r2r(psrlq, regs, regd) -#define psrlq(vars, vard) mmx_m2m(psrlq, vars, vard) - -#define psrld_i2r(imm, reg) mmx_i2r(psrld, imm, reg) -#define psrld_m2r(var, reg) mmx_m2r(psrld, var, reg) -#define psrld_r2r(regs, regd) mmx_r2r(psrld, regs, regd) -#define psrld(vars, vard) mmx_m2m(psrld, vars, vard) - -#define psrlw_i2r(imm, reg) mmx_i2r(psrlw, imm, reg) -#define psrlw_m2r(var, reg) mmx_m2r(psrlw, var, reg) -#define psrlw_r2r(regs, regd) mmx_r2r(psrlw, regs, regd) -#define psrlw(vars, vard) mmx_m2m(psrlw, vars, vard) - - -/* 2x32 and 4x16 Parallel Shift Right Arithmetic -*/ -#define psrad_i2r(imm, reg) mmx_i2r(psrad, imm, reg) -#define psrad_m2r(var, reg) mmx_m2r(psrad, var, reg) -#define psrad_r2r(regs, regd) mmx_r2r(psrad, regs, regd) -#define psrad(vars, vard) mmx_m2m(psrad, vars, vard) - -#define psraw_i2r(imm, reg) mmx_i2r(psraw, imm, reg) -#define psraw_m2r(var, reg) mmx_m2r(psraw, var, reg) -#define psraw_r2r(regs, regd) mmx_r2r(psraw, regs, regd) -#define psraw(vars, vard) mmx_m2m(psraw, vars, vard) - - -/* 2x32->4x16 and 4x16->8x8 PACK and Signed Saturate - (packs source and dest fields into dest in that order) -*/ -#define packssdw_m2r(var, reg) mmx_m2r(packssdw, var, reg) -#define packssdw_r2r(regs, regd) mmx_r2r(packssdw, regs, regd) -#define packssdw(vars, vard) mmx_m2m(packssdw, vars, vard) - -#define packsswb_m2r(var, reg) mmx_m2r(packsswb, var, reg) -#define packsswb_r2r(regs, regd) mmx_r2r(packsswb, regs, regd) -#define packsswb(vars, vard) mmx_m2m(packsswb, vars, vard) - - -/* 4x16->8x8 PACK and Unsigned Saturate - (packs source and dest fields into dest in that order) -*/ -#define packuswb_m2r(var, reg) mmx_m2r(packuswb, var, reg) -#define packuswb_r2r(regs, regd) mmx_r2r(packuswb, regs, regd) -#define packuswb(vars, vard) mmx_m2m(packuswb, vars, vard) - - -/* 2x32->1x64, 4x16->2x32, and 8x8->4x16 UNPaCK Low - (interleaves low half of dest with low half of source - as padding in each result field) -*/ -#define punpckldq_m2r(var, reg) mmx_m2r(punpckldq, var, reg) -#define punpckldq_r2r(regs, regd) mmx_r2r(punpckldq, regs, regd) -#define punpckldq(vars, vard) mmx_m2m(punpckldq, vars, vard) - -#define punpcklwd_m2r(var, reg) mmx_m2r(punpcklwd, var, reg) -#define punpcklwd_r2r(regs, regd) mmx_r2r(punpcklwd, regs, regd) -#define punpcklwd(vars, vard) mmx_m2m(punpcklwd, vars, vard) - -#define punpcklbw_m2r(var, reg) mmx_m2r(punpcklbw, var, reg) -#define punpcklbw_r2r(regs, regd) mmx_r2r(punpcklbw, regs, regd) -#define punpcklbw(vars, vard) mmx_m2m(punpcklbw, vars, vard) - - -/* 2x32->1x64, 4x16->2x32, and 8x8->4x16 UNPaCK High - (interleaves high half of dest with high half of source - as padding in each result field) -*/ -#define punpckhdq_m2r(var, reg) mmx_m2r(punpckhdq, var, reg) -#define punpckhdq_r2r(regs, regd) mmx_r2r(punpckhdq, regs, regd) -#define punpckhdq(vars, vard) mmx_m2m(punpckhdq, vars, vard) - -#define punpckhwd_m2r(var, reg) mmx_m2r(punpckhwd, var, reg) -#define punpckhwd_r2r(regs, regd) mmx_r2r(punpckhwd, regs, regd) -#define punpckhwd(vars, vard) mmx_m2m(punpckhwd, vars, vard) - -#define punpckhbw_m2r(var, reg) mmx_m2r(punpckhbw, var, reg) -#define punpckhbw_r2r(regs, regd) mmx_r2r(punpckhbw, regs, regd) -#define punpckhbw(vars, vard) mmx_m2m(punpckhbw, vars, vard) - - -/* Empty MMx State - (used to clean-up when going from mmx to float use - of the registers that are shared by both; note that - there is no float-to-mmx operation needed, because - only the float tag word info is corruptible) -*/ -#ifdef MMX_TRACE - -#define emms() \ - { \ - fprintf(stderr, "emms()\n"); \ - __asm__ __volatile__ ("emms"); \ - } - -#else - -#define emms() __asm__ __volatile__ ("emms") - -#endif - -#endif - diff --git a/nx-X11/extras/Mesa/src/mesa/drivers/dri/common/spantmp.h b/nx-X11/extras/Mesa/src/mesa/drivers/dri/common/spantmp.h deleted file mode 100644 index f726e8305..000000000 --- a/nx-X11/extras/Mesa/src/mesa/drivers/dri/common/spantmp.h +++ /dev/null @@ -1,328 +0,0 @@ -/* - * Copyright 2000-2001 VA Linux Systems, Inc. - * (C) Copyright IBM Corporation 2002, 2003 - * 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 - * VA LINUX SYSTEM, 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. - * - * Authors: - * Keith Whitwell - * Gareth Hughes - */ - -#include "spantmp_common.h" - -#ifndef DBG -#define DBG 0 -#endif - -#ifndef HW_READ_CLIPLOOP -#define HW_READ_CLIPLOOP() HW_CLIPLOOP() -#endif - -#ifndef HW_WRITE_CLIPLOOP -#define HW_WRITE_CLIPLOOP() HW_CLIPLOOP() -#endif - - -static void TAG(WriteRGBASpan)( GLcontext *ctx, - struct gl_renderbuffer *rb, - GLuint n, GLint x, GLint y, - const void *values, const GLubyte mask[] ) -{ - HW_WRITE_LOCK() - { - const GLubyte (*rgba)[4] = (const GLubyte (*)[4]) values; - GLint x1; - GLint n1; - LOCAL_VARS; - - y = Y_FLIP(y); - - HW_WRITE_CLIPLOOP() - { - GLint i = 0; - CLIPSPAN(x,y,n,x1,n1,i); - - if (DBG) fprintf(stderr, "WriteRGBASpan %d..%d (x1 %d)\n", - (int)i, (int)n1, (int)x1); - - if (mask) - { - for (;n1>0;i++,x1++,n1--) - if (mask[i]) - WRITE_RGBA( x1, y, - rgba[i][0], rgba[i][1], - rgba[i][2], rgba[i][3] ); - } - else - { - for (;n1>0;i++,x1++,n1--) - WRITE_RGBA( x1, y, - rgba[i][0], rgba[i][1], - rgba[i][2], rgba[i][3] ); - } - } - HW_ENDCLIPLOOP(); - } - HW_WRITE_UNLOCK(); -} - -static void TAG(WriteRGBSpan)( GLcontext *ctx, - struct gl_renderbuffer *rb, - GLuint n, GLint x, GLint y, - const void *values, const GLubyte mask[] ) -{ - HW_WRITE_LOCK() - { - const GLubyte (*rgb)[3] = (const GLubyte (*)[3]) values; - GLint x1; - GLint n1; - LOCAL_VARS; - - y = Y_FLIP(y); - - HW_WRITE_CLIPLOOP() - { - GLint i = 0; - CLIPSPAN(x,y,n,x1,n1,i); - - if (DBG) fprintf(stderr, "WriteRGBSpan %d..%d (x1 %d)\n", - (int)i, (int)n1, (int)x1); - - if (mask) - { - for (;n1>0;i++,x1++,n1--) - if (mask[i]) - WRITE_RGBA( x1, y, rgb[i][0], rgb[i][1], rgb[i][2], 255 ); - } - else - { - for (;n1>0;i++,x1++,n1--) - WRITE_RGBA( x1, y, rgb[i][0], rgb[i][1], rgb[i][2], 255 ); - } - } - HW_ENDCLIPLOOP(); - } - HW_WRITE_UNLOCK(); -} - -static void TAG(WriteRGBAPixels)( GLcontext *ctx, - struct gl_renderbuffer *rb, - GLuint n, const GLint x[], const GLint y[], - const void *values, const GLubyte mask[] ) -{ - HW_WRITE_LOCK() - { - const GLubyte (*rgba)[4] = (const GLubyte (*)[4]) values; - GLuint i; - LOCAL_VARS; - - if (DBG) fprintf(stderr, "WriteRGBAPixels\n"); - - HW_WRITE_CLIPLOOP() - { - if (mask) - { - for (i=0;i0;i++,x1++,n1--) - if (mask[i]) - WRITE_PIXEL( x1, y, p ); - } - else - { - for (;n1>0;i++,x1++,n1--) - WRITE_PIXEL( x1, y, p ); - } - } - HW_ENDCLIPLOOP(); - } - HW_WRITE_UNLOCK(); -} - - -static void TAG(WriteMonoRGBAPixels)( GLcontext *ctx, - struct gl_renderbuffer *rb, - GLuint n, - const GLint x[], const GLint y[], - const void *value, - const GLubyte mask[] ) -{ - HW_WRITE_LOCK() - { - const GLubyte *color = (const GLubyte *) value; - GLuint i; - LOCAL_VARS; - INIT_MONO_PIXEL(p, color); - - if (DBG) fprintf(stderr, "WriteMonoRGBAPixels\n"); - - HW_WRITE_CLIPLOOP() - { - if (mask) - { - for (i=0;i0;i++,x1++,n1--) - READ_RGBA( rgba[i], x1, y ); - } - HW_ENDCLIPLOOP(); - } - HW_READ_UNLOCK(); -} - - -static void TAG(ReadRGBAPixels)( GLcontext *ctx, - struct gl_renderbuffer *rb, - GLuint n, const GLint x[], const GLint y[], - void *values ) -{ - HW_READ_LOCK() - { - GLubyte (*rgba)[4] = (GLubyte (*)[4]) values; - const GLubyte *mask = NULL; /* remove someday */ - GLuint i; - LOCAL_VARS; - - if (DBG) fprintf(stderr, "ReadRGBAPixels\n"); - - HW_READ_CLIPLOOP() - { - if (mask) - { - for (i=0;i - * \author Gareth Hughes - * \author Ian Romanick - */ - -#include "colormac.h" -#include "spantmp_common.h" - -#ifndef DBG -#define DBG 0 -#endif - -#ifndef HW_READ_CLIPLOOP -#define HW_READ_CLIPLOOP() HW_CLIPLOOP() -#endif - -#ifndef HW_WRITE_CLIPLOOP -#define HW_WRITE_CLIPLOOP() HW_CLIPLOOP() -#endif - -#if (SPANTMP_PIXEL_FMT == GL_RGB) && (SPANTMP_PIXEL_TYPE == GL_UNSIGNED_SHORT_5_6_5) - -#ifndef GET_SRC_PTR -#define GET_SRC_PTR(_x, _y) (read_buf + (_x) * 2 + (_y) * pitch) -#endif - -#ifndef GET_DST_PTR -#define GET_DST_PTR(_x, _y) ( buf + (_x) * 2 + (_y) * pitch) -#endif - -#define INIT_MONO_PIXEL(p, color) \ - p = PACK_COLOR_565( color[0], color[1], color[2] ) - -#define WRITE_RGBA( _x, _y, r, g, b, a ) \ - do { \ - GLshort * _p = (GLshort *) GET_DST_PTR(_x, _y); \ - _p[0] = ((((int)r & 0xf8) << 8) | (((int)g & 0xfc) << 3) | \ - (((int)b & 0xf8) >> 3)); \ - } while(0) - -#define WRITE_PIXEL( _x, _y, p ) \ - do { \ - GLushort * _p = (GLushort *) GET_DST_PTR(_x, _y); \ - _p[0] = p; \ - } while(0) - -#define READ_RGBA( rgba, _x, _y ) \ - do { \ - GLushort p = *(volatile GLshort *) GET_SRC_PTR(_x, _y); \ - rgba[0] = ((p >> 8) & 0xf8) * 255 / 0xf8; \ - rgba[1] = ((p >> 3) & 0xfc) * 255 / 0xfc; \ - rgba[2] = ((p << 3) & 0xf8) * 255 / 0xf8; \ - rgba[3] = 0xff; \ - } while (0) - -#elif (SPANTMP_PIXEL_FMT == GL_BGRA) && (SPANTMP_PIXEL_TYPE == GL_UNSIGNED_INT_8_8_8_8_REV) - -#ifndef GET_SRC_PTR -#define GET_SRC_PTR(_x, _y) (read_buf + (_x) * 4 + (_y) * pitch) -#endif - -#ifndef GET_DST_PTR -#define GET_DST_PTR(_x, _y) ( buf + (_x) * 4 + (_y) * pitch) -#endif - -# define INIT_MONO_PIXEL(p, color) \ - p = PACK_COLOR_8888(color[3], color[0], color[1], color[2]) - -# define WRITE_RGBA(_x, _y, r, g, b, a) \ - do { \ - GLuint * _p = (GLuint *) GET_DST_PTR(_x, _y); \ - _p[0] = ((r << 16) | (g << 8) | (b << 0) | (a << 24)); \ - } while(0) - -#define WRITE_PIXEL(_x, _y, p) \ - do { \ - GLuint * _p = (GLuint *) GET_DST_PTR(_x, _y); \ - _p[0] = p; \ - } while(0) - -# if defined( USE_X86_ASM ) -# define READ_RGBA(rgba, _x, _y) \ - do { \ - GLuint p = *(volatile GLuint *) GET_SRC_PTR(_x, _y); \ - __asm__ __volatile__( "bswap %0; rorl $8, %0" \ - : "=r" (p) : "r" (p) ); \ - ((GLuint *)rgba)[0] = p; \ - } while (0) -# elif defined( MESA_BIG_ENDIAN ) - /* On PowerPC with GCC 3.4.2 the shift madness below becomes a single - * rotlwi instruction. It also produces good code on SPARC. - */ -# define READ_RGBA( rgba, _x, _y ) \ - do { \ - GLuint p = *(volatile GLuint *) GET_SRC_PTR(_x, _y); \ - GLuint t = p; \ - *((uint32_t *) rgba) = (t >> 24) | (p << 8); \ - } while (0) -# else -# define READ_RGBA( rgba, _x, _y ) \ - do { \ - GLuint p = *(volatile GLuint *) GET_SRC_PTR(_x, _y); \ - rgba[0] = (p >> 16) & 0xff; \ - rgba[1] = (p >> 8) & 0xff; \ - rgba[2] = (p >> 0) & 0xff; \ - rgba[3] = (p >> 24) & 0xff; \ - } while (0) -# endif - -#else -#error SPANTMP_PIXEL_FMT must be set to a valid value! -#endif - -#if defined( USE_MMX_ASM ) || defined( USE_SSE_ASM ) -#include "x86/read_rgba_span_x86.h" -#include "x86/common_x86_asm.h" -#endif - -static void TAG(WriteRGBASpan)( GLcontext *ctx, - struct gl_renderbuffer *rb, - GLuint n, GLint x, GLint y, - const void *values, const GLubyte mask[] ) -{ - HW_WRITE_LOCK() - { - const GLubyte (*rgba)[4] = (const GLubyte (*)[4]) values; - GLint x1; - GLint n1; - LOCAL_VARS; - - y = Y_FLIP(y); - - HW_WRITE_CLIPLOOP() - { - GLint i = 0; - CLIPSPAN(x,y,n,x1,n1,i); - - if (DBG) fprintf(stderr, "WriteRGBASpan %d..%d (x1 %d)\n", - (int)i, (int)n1, (int)x1); - - if (mask) - { - for (;n1>0;i++,x1++,n1--) - if (mask[i]) - WRITE_RGBA( x1, y, - rgba[i][0], rgba[i][1], - rgba[i][2], rgba[i][3] ); - } - else - { - for (;n1>0;i++,x1++,n1--) - WRITE_RGBA( x1, y, - rgba[i][0], rgba[i][1], - rgba[i][2], rgba[i][3] ); - } - } - HW_ENDCLIPLOOP(); - } - HW_WRITE_UNLOCK(); -} - -static void TAG(WriteRGBSpan)( GLcontext *ctx, - struct gl_renderbuffer *rb, - GLuint n, GLint x, GLint y, - const void *values, const GLubyte mask[] ) -{ - HW_WRITE_LOCK() - { - const GLubyte (*rgb)[3] = (const GLubyte (*)[3]) values; - GLint x1; - GLint n1; - LOCAL_VARS; - - y = Y_FLIP(y); - - HW_WRITE_CLIPLOOP() - { - GLint i = 0; - CLIPSPAN(x,y,n,x1,n1,i); - - if (DBG) fprintf(stderr, "WriteRGBSpan %d..%d (x1 %d)\n", - (int)i, (int)n1, (int)x1); - - if (mask) - { - for (;n1>0;i++,x1++,n1--) - if (mask[i]) - WRITE_RGBA( x1, y, rgb[i][0], rgb[i][1], rgb[i][2], 255 ); - } - else - { - for (;n1>0;i++,x1++,n1--) - WRITE_RGBA( x1, y, rgb[i][0], rgb[i][1], rgb[i][2], 255 ); - } - } - HW_ENDCLIPLOOP(); - } - HW_WRITE_UNLOCK(); -} - -static void TAG(WriteRGBAPixels)( GLcontext *ctx, - struct gl_renderbuffer *rb, - GLuint n, const GLint x[], const GLint y[], - const void *values, const GLubyte mask[] ) -{ - HW_WRITE_LOCK() - { - const GLubyte (*rgba)[4] = (const GLubyte (*)[4]) values; - GLint i; - LOCAL_VARS; - - if (DBG) fprintf(stderr, "WriteRGBAPixels\n"); - - HW_WRITE_CLIPLOOP() - { - if (mask) - { - for (i=0;i0;i++,x1++,n1--) - if (mask[i]) - WRITE_PIXEL( x1, y, p ); - } - else - { - for (;n1>0;i++,x1++,n1--) - WRITE_PIXEL( x1, y, p ); - } - } - HW_ENDCLIPLOOP(); - } - HW_WRITE_UNLOCK(); -} - - -static void TAG(WriteMonoRGBAPixels)( GLcontext *ctx, - struct gl_renderbuffer *rb, - GLuint n, - const GLint x[], const GLint y[], - const void *value, - const GLubyte mask[] ) -{ - HW_WRITE_LOCK() - { - const GLubyte *color = (const GLubyte *) value; - GLint i; - LOCAL_VARS; - INIT_MONO_PIXEL(p, color); - - if (DBG) fprintf(stderr, "WriteMonoRGBAPixels\n"); - - HW_WRITE_CLIPLOOP() - { - if (mask) - { - for (i=0;i0;i++,x1++,n1--) - READ_RGBA( rgba[i], x1, y ); - } - HW_ENDCLIPLOOP(); - } - HW_READ_UNLOCK(); -} - - -#if defined(USE_MMX_ASM) && \ - (((SPANTMP_PIXEL_FMT == GL_BGRA) && \ - (SPANTMP_PIXEL_TYPE == GL_UNSIGNED_INT_8_8_8_8_REV)) || \ - ((SPANTMP_PIXEL_FMT == GL_RGB) && \ - (SPANTMP_PIXEL_TYPE == GL_UNSIGNED_SHORT_5_6_5))) -static void TAG2(ReadRGBASpan,_MMX)( GLcontext *ctx, - struct gl_renderbuffer *rb, - GLuint n, GLint x, GLint y, void *values) -{ -#ifndef USE_INNER_EMMS - /* The EMMS instruction is directly in-lined here because using GCC's - * built-in _mm_empty function was found to utterly destroy performance. - */ - __asm__ __volatile__( "emms" ); -#endif - - HW_READ_LOCK() - { - GLubyte (*rgba)[4] = (GLubyte (*)[4]) values; - GLint x1,n1; - LOCAL_VARS; - - y = Y_FLIP(y); - - if (DBG) fprintf(stderr, "ReadRGBASpan\n"); - - HW_READ_CLIPLOOP() - { - GLint i = 0; - CLIPSPAN(x,y,n,x1,n1,i); - - { - const char * src = GET_SRC_PTR( x1, y ); -#if (SPANTMP_PIXEL_FMT == GL_RGB) && \ - (SPANTMP_PIXEL_TYPE == GL_UNSIGNED_SHORT_5_6_5) - _generic_read_RGBA_span_RGB565_MMX( src, rgba[i], n1 ); -#else - _generic_read_RGBA_span_BGRA8888_REV_MMX( src, rgba[i], n1 ); -#endif - } - } - HW_ENDCLIPLOOP(); - } - HW_READ_UNLOCK(); -#ifndef USE_INNER_EMMS - __asm__ __volatile__( "emms" ); -#endif -} -#endif - - -#if defined(USE_SSE_ASM) && \ - (SPANTMP_PIXEL_FMT == GL_BGRA) && \ - (SPANTMP_PIXEL_TYPE == GL_UNSIGNED_INT_8_8_8_8_REV) -static void TAG2(ReadRGBASpan,_SSE2)( GLcontext *ctx, - struct gl_renderbuffer *rb, - GLuint n, GLint x, GLint y, - void *values) -{ - HW_READ_LOCK() - { - GLubyte (*rgba)[4] = (GLubyte (*)[4]) values; - GLint x1,n1; - LOCAL_VARS; - - y = Y_FLIP(y); - - if (DBG) fprintf(stderr, "ReadRGBASpan\n"); - - HW_READ_CLIPLOOP() - { - GLint i = 0; - CLIPSPAN(x,y,n,x1,n1,i); - - { - const char * src = GET_SRC_PTR( x1, y ); - _generic_read_RGBA_span_BGRA8888_REV_SSE2( src, rgba[i], n1 ); - } - } - HW_ENDCLIPLOOP(); - } - HW_READ_UNLOCK(); -} -#endif - -#if defined(USE_SSE_ASM) && \ - (SPANTMP_PIXEL_FMT == GL_BGRA) && \ - (SPANTMP_PIXEL_TYPE == GL_UNSIGNED_INT_8_8_8_8_REV) -static void TAG2(ReadRGBASpan,_SSE)( GLcontext *ctx, - struct gl_renderbuffer *rb, - GLuint n, GLint x, GLint y, - void *values) -{ -#ifndef USE_INNER_EMMS - /* The EMMS instruction is directly in-lined here because using GCC's - * built-in _mm_empty function was found to utterly destroy performance. - */ - __asm__ __volatile__( "emms" ); -#endif - - HW_READ_LOCK() - { - GLubyte (*rgba)[4] = (GLubyte (*)[4]) values; - GLint x1,n1; - LOCAL_VARS; - - y = Y_FLIP(y); - - if (DBG) fprintf(stderr, "ReadRGBASpan\n"); - - HW_READ_CLIPLOOP() - { - GLint i = 0; - CLIPSPAN(x,y,n,x1,n1,i); - - { - const char * src = GET_SRC_PTR( x1, y ); - _generic_read_RGBA_span_BGRA8888_REV_SSE( src, rgba[i], n1 ); - } - } - HW_ENDCLIPLOOP(); - } - HW_READ_UNLOCK(); -#ifndef USE_INNER_EMMS - __asm__ __volatile__( "emms" ); -#endif -} -#endif - - -static void TAG(ReadRGBAPixels)( GLcontext *ctx, - struct gl_renderbuffer *rb, - GLuint n, const GLint x[], const GLint y[], - void *values ) -{ - HW_READ_LOCK() - { - GLubyte (*rgba)[4] = (GLubyte (*)[4]) values; - GLubyte *mask = NULL; /* remove someday */ - GLint i; - LOCAL_VARS; - - if (DBG) fprintf(stderr, "ReadRGBAPixels\n"); - - HW_READ_CLIPLOOP() - { - if (mask) - { - for (i=0;iPutRow = TAG(WriteRGBASpan); - rb->PutRowRGB = TAG(WriteRGBSpan); - rb->PutMonoRow = TAG(WriteMonoRGBASpan); - rb->PutValues = TAG(WriteRGBAPixels); - rb->PutMonoValues = TAG(WriteMonoRGBAPixels); - rb->GetValues = TAG(ReadRGBAPixels); - -#if defined(USE_SSE_ASM) && \ - (SPANTMP_PIXEL_FMT == GL_BGRA) && \ - (SPANTMP_PIXEL_TYPE == GL_UNSIGNED_INT_8_8_8_8_REV) - if ( cpu_has_xmm2 ) { - if (DBG) fprintf( stderr, "Using %s version of GetRow\n", "SSE2" ); - rb->GetRow = TAG2(ReadRGBASpan, _SSE2); - } - else -#endif -#if defined(USE_SSE_ASM) && \ - (SPANTMP_PIXEL_FMT == GL_BGRA) && \ - (SPANTMP_PIXEL_TYPE == GL_UNSIGNED_INT_8_8_8_8_REV) - if ( cpu_has_xmm ) { - if (DBG) fprintf( stderr, "Using %s version of GetRow\n", "SSE" ); - rb->GetRow = TAG2(ReadRGBASpan, _SSE); - } - else -#endif -#if defined(USE_MMX_ASM) && \ - (((SPANTMP_PIXEL_FMT == GL_BGRA) && \ - (SPANTMP_PIXEL_TYPE == GL_UNSIGNED_INT_8_8_8_8_REV)) || \ - ((SPANTMP_PIXEL_FMT == GL_RGB) && \ - (SPANTMP_PIXEL_TYPE == GL_UNSIGNED_SHORT_5_6_5))) - if ( cpu_has_mmx ) { - if (DBG) fprintf( stderr, "Using %s version of GetRow\n", "MMX" ); - rb->GetRow = TAG2(ReadRGBASpan, _MMX); - } - else -#endif - { - if (DBG) fprintf( stderr, "Using %s version of GetRow\n", "C" ); - rb->GetRow = TAG(ReadRGBASpan); - } - -} - - -#undef INIT_MONO_PIXEL -#undef WRITE_PIXEL -#undef WRITE_RGBA -#undef READ_RGBA -#undef TAG -#undef TAG2 -#undef GET_SRC_PTR -#undef GET_DST_PTR -#undef SPANTMP_PIXEL_FMT -#undef SPANTMP_PIXEL_TYPE diff --git a/nx-X11/extras/Mesa/src/mesa/drivers/dri/common/spantmp_common.h b/nx-X11/extras/Mesa/src/mesa/drivers/dri/common/spantmp_common.h deleted file mode 100644 index a4509a569..000000000 --- a/nx-X11/extras/Mesa/src/mesa/drivers/dri/common/spantmp_common.h +++ /dev/null @@ -1,81 +0,0 @@ -/* - * Copyright 2000-2001 VA Linux Systems, 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 - * VA LINUX SYSTEM, 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. - */ - -/** - * \file spantmp_common.h - * - * common macros for span read / write functions to be used in the depth, - * stencil and pixel span templates. - */ - -#ifndef HW_WRITE_LOCK -#define HW_WRITE_LOCK() HW_LOCK() -#endif - -#ifndef HW_WRITE_UNLOCK -#define HW_WRITE_UNLOCK() HW_UNLOCK() -#endif - -#ifndef HW_READ_LOCK -#define HW_READ_LOCK() HW_LOCK() -#endif - -#ifndef HW_READ_UNLOCK -#define HW_READ_UNLOCK() HW_UNLOCK() -#endif - -#ifndef HW_CLIPLOOP -#define HW_CLIPLOOP() \ - do { \ - int _nc = dPriv->numClipRects; \ - while ( _nc-- ) { \ - int minx = dPriv->pClipRects[_nc].x1 - dPriv->x; \ - int miny = dPriv->pClipRects[_nc].y1 - dPriv->y; \ - int maxx = dPriv->pClipRects[_nc].x2 - dPriv->x; \ - int maxy = dPriv->pClipRects[_nc].y2 - dPriv->y; -#endif - -#ifndef HW_ENDCLIPLOOP -#define HW_ENDCLIPLOOP() \ - } \ - } while (0) -#endif - -#ifndef CLIPPIXEL -#define CLIPPIXEL( _x, _y ) \ - ((_x >= minx) && (_x < maxx) && (_y >= miny) && (_y < maxy)) -#endif - -#ifndef CLIPSPAN -#define CLIPSPAN( _x, _y, _n, _x1, _n1, _i ) \ - if ( _y < miny || _y >= maxy /*|| _x + n < minx || _x >=maxx*/ ) { \ - _n1 = 0, _x1 = x; \ - } else { \ - _n1 = _n; \ - _x1 = _x; \ - if ( _x1 < minx ) _i += (minx-_x1), n1 -= (minx-_x1), _x1 = minx; \ - if ( _x1 + _n1 >= maxx ) n1 -= (_x1 + n1 - maxx); \ - } -#endif diff --git a/nx-X11/extras/Mesa/src/mesa/drivers/dri/common/stenciltmp.h b/nx-X11/extras/Mesa/src/mesa/drivers/dri/common/stenciltmp.h deleted file mode 100644 index dccab0660..000000000 --- a/nx-X11/extras/Mesa/src/mesa/drivers/dri/common/stenciltmp.h +++ /dev/null @@ -1,182 +0,0 @@ -/* $XFree86: xc/lib/GL/mesa/src/drv/common/stenciltmp.h,v 1.3 2001/03/21 16:14:20 dawes Exp $ */ - -#include "spantmp_common.h" - -#ifndef DBG -#define DBG 0 -#endif - -static void TAG(WriteStencilSpan)( GLcontext *ctx, - struct gl_renderbuffer *rb, - GLuint n, GLint x, GLint y, - const void *values, const GLubyte mask[] ) -{ - HW_WRITE_LOCK() - { - const GLubyte *stencil = (const GLubyte *) values; - GLint x1; - GLint n1; - LOCAL_STENCIL_VARS; - - y = Y_FLIP(y); - - HW_CLIPLOOP() - { - GLint i = 0; - CLIPSPAN(x,y,n,x1,n1,i); - - if (DBG) fprintf(stderr, "WriteStencilSpan %d..%d (x1 %d)\n", - (int)i, (int)n1, (int)x1); - - if (mask) - { - for (;n1>0;i++,x1++,n1--) - if (mask[i]) - WRITE_STENCIL( x1, y, stencil[i] ); - } - else - { - for (;n1>0;i++,x1++,n1--) - WRITE_STENCIL( x1, y, stencil[i] ); - } - } - HW_ENDCLIPLOOP(); - } - HW_WRITE_UNLOCK(); -} - - -static void TAG(WriteMonoStencilSpan)( GLcontext *ctx, - struct gl_renderbuffer *rb, - GLuint n, GLint x, GLint y, - const void *value, - const GLubyte mask[] ) -{ - HW_WRITE_LOCK() - { - const GLubyte stencil = *((const GLubyte *) value); - GLint x1; - GLint n1; - LOCAL_STENCIL_VARS; - - y = Y_FLIP(y); - - HW_CLIPLOOP() - { - GLint i = 0; - CLIPSPAN(x,y,n,x1,n1,i); - - if (DBG) fprintf(stderr, "WriteStencilSpan %d..%d (x1 %d)\n", - (int)i, (int)n1, (int)x1); - - if (mask) - { - for (;n1>0;i++,x1++,n1--) - if (mask[i]) - WRITE_STENCIL( x1, y, stencil ); - } - else - { - for (;n1>0;i++,x1++,n1--) - WRITE_STENCIL( x1, y, stencil ); - } - } - HW_ENDCLIPLOOP(); - } - HW_WRITE_UNLOCK(); -} - - - -static void TAG(WriteStencilPixels)( GLcontext *ctx, - struct gl_renderbuffer *rb, - GLuint n, - const GLint x[], const GLint y[], - const void *values, const GLubyte mask[] ) -{ - HW_WRITE_LOCK() - { - const GLubyte *stencil = (const GLubyte *) values; - GLuint i; - LOCAL_STENCIL_VARS; - - if (DBG) fprintf(stderr, "WriteStencilPixels\n"); - - HW_CLIPLOOP() - { - for (i=0;i0;i++,n1--) - READ_STENCIL( stencil[i], (x+i), y ); - } - HW_ENDCLIPLOOP(); - } - HW_READ_UNLOCK(); -} - -static void TAG(ReadStencilPixels)( GLcontext *ctx, - struct gl_renderbuffer *rb, - GLuint n, const GLint x[], const GLint y[], - void *values ) -{ - HW_READ_LOCK() - { - GLubyte *stencil = (GLubyte *) values; - GLuint i; - LOCAL_STENCIL_VARS; - - if (DBG) fprintf(stderr, "ReadStencilPixels\n"); - - HW_CLIPLOOP() - { - for (i=0;i - * Keith Whitwell - * Kevin E. Martin - * Gareth Hughes - */ -/* $XFree86:$ */ - -/** \file texmem.c - * Implements all of the device-independent texture memory management. - * - * Currently, only a simple LRU texture memory management policy is - * implemented. In the (hopefully very near) future, better policies will be - * implemented. The idea is that the DRI should be able to run in one of two - * modes. In the default mode the DRI will dynamically attempt to discover - * the best texture management policy for the running application. In the - * other mode, the user (via some sort of as yet TBD mechanism) will select - * a texture management policy that is known to work well with the - * application. - */ - -#include "texmem.h" -#include "simple_list.h" -#include "imports.h" -#include "macros.h" -#include "texformat.h" - -#include - - - -static unsigned dummy_swap_counter; - - -/** - * Calculate \f$\log_2\f$ of a value. This is a particularly poor - * implementation of this function. However, since system performance is in - * no way dependent on this function, the slowness of the implementation is - * irrelevent. - * - * \param n Value whose \f$\log_2\f$ is to be calculated - */ - -static GLuint -driLog2( GLuint n ) -{ - GLuint log2; - - for ( log2 = 1 ; n > 1 ; log2++ ) { - n >>= 1; - } - - return log2; -} - - - - -/** - * Determine if a texture is resident in textureable memory. Depending on - * the driver, this may or may not be on-card memory. It could be AGP memory - * or anyother type of memory from which the hardware can directly read - * texels. - * - * This function is intended to be used as the \c IsTextureResident function - * in the device's \c dd_function_table. - * - * \param ctx GL context pointer (currently unused) - * \param texObj Texture object to be tested - */ - -GLboolean -driIsTextureResident( GLcontext * ctx, - struct gl_texture_object * texObj ) -{ - driTextureObject * t; - - - t = (driTextureObject *) texObj->DriverData; - return( (t != NULL) && (t->memBlock != NULL) ); -} - - - - -/** - * (Re)initialize the global circular LRU list. The last element - * in the array (\a heap->nrRegions) is the sentinal. Keeping it - * at the end of the array allows the other elements of the array - * to be addressed rationally when looking up objects at a particular - * location in texture memory. - * - * \param heap Texture heap to be reset - */ - -static void resetGlobalLRU( driTexHeap * heap ) -{ - drmTextureRegionPtr list = heap->global_regions; - unsigned sz = 1U << heap->logGranularity; - unsigned i; - - for (i = 0 ; (i+1) * sz <= heap->size ; i++) { - list[i].prev = i-1; - list[i].next = i+1; - list[i].age = 0; - } - - i--; - list[0].prev = heap->nrRegions; - list[i].prev = i-1; - list[i].next = heap->nrRegions; - list[heap->nrRegions].prev = i; - list[heap->nrRegions].next = 0; - heap->global_age[0] = 0; -} - -/** - * Print out debugging information about the local texture LRU. - * - * \param heap Texture heap to be printed - * \param callername Name of calling function - */ -static void printLocalLRU( driTexHeap * heap, const char *callername ) -{ - driTextureObject *t; - unsigned sz = 1U << heap->logGranularity; - - fprintf( stderr, "%s in %s:\nLocal LRU, heap %d:\n", - __FUNCTION__, callername, heap->heapId ); - - foreach ( t, &heap->texture_objects ) { - if (!t->memBlock) - continue; - if (!t->tObj) { - fprintf( stderr, "Placeholder (%p) %d at 0x%x sz 0x%x\n", - (void *)t, - t->memBlock->ofs / sz, - t->memBlock->ofs, - t->memBlock->size ); - } else { - fprintf( stderr, "Texture (%p) at 0x%x sz 0x%x\n", - (void *)t, - t->memBlock->ofs, - t->memBlock->size ); - } - } - foreach ( t, heap->swapped_objects ) { - if (!t->tObj) { - fprintf( stderr, "Swapped Placeholder (%p)\n", (void *)t ); - } else { - fprintf( stderr, "Swapped Texture (%p)\n", (void *)t ); - } - } - - fprintf( stderr, "\n" ); -} - -/** - * Print out debugging information about the global texture LRU. - * - * \param heap Texture heap to be printed - * \param callername Name of calling function - */ -static void printGlobalLRU( driTexHeap * heap, const char *callername ) -{ - drmTextureRegionPtr list = heap->global_regions; - unsigned int i, j; - - fprintf( stderr, "%s in %s:\nGlobal LRU, heap %d list %p:\n", - __FUNCTION__, callername, heap->heapId, (void *)list ); - - for ( i = 0, j = heap->nrRegions ; i < heap->nrRegions ; i++ ) { - fprintf( stderr, "list[%d] age %d next %d prev %d in_use %d\n", - j, list[j].age, list[j].next, list[j].prev, list[j].in_use ); - j = list[j].next; - if ( j == heap->nrRegions ) break; - } - - if ( j != heap->nrRegions ) { - fprintf( stderr, "Loop detected in global LRU\n" ); - for ( i = 0 ; i < heap->nrRegions ; i++ ) { - fprintf( stderr, "list[%d] age %d next %d prev %d in_use %d\n", - i, list[i].age, list[i].next, list[i].prev, list[i].in_use ); - } - } - - fprintf( stderr, "\n" ); -} - - -/** - * Called by the client whenever it touches a local texture. - * - * \param t Texture object that the client has accessed - */ - -void driUpdateTextureLRU( driTextureObject * t ) -{ - driTexHeap * heap; - drmTextureRegionPtr list; - unsigned shift; - unsigned start; - unsigned end; - unsigned i; - - - heap = t->heap; - if ( heap != NULL ) { - shift = heap->logGranularity; - start = t->memBlock->ofs >> shift; - end = (t->memBlock->ofs + t->memBlock->size - 1) >> shift; - - - heap->local_age = ++heap->global_age[0]; - list = heap->global_regions; - - - /* Update the context's local LRU - */ - - move_to_head( & heap->texture_objects, t ); - - - for (i = start ; i <= end ; i++) { - list[i].age = heap->local_age; - - /* remove_from_list(i) - */ - list[(unsigned)list[i].next].prev = list[i].prev; - list[(unsigned)list[i].prev].next = list[i].next; - - /* insert_at_head(list, i) - */ - list[i].prev = heap->nrRegions; - list[i].next = list[heap->nrRegions].next; - list[(unsigned)list[heap->nrRegions].next].prev = i; - list[heap->nrRegions].next = i; - } - - if ( 0 ) { - printGlobalLRU( heap, __FUNCTION__ ); - printLocalLRU( heap, __FUNCTION__ ); - } - } -} - - - - -/** - * Keep track of swapped out texture objects. - * - * \param t Texture object to be "swapped" out of its texture heap - */ - -void driSwapOutTextureObject( driTextureObject * t ) -{ - unsigned face; - - - if ( t->memBlock != NULL ) { - assert( t->heap != NULL ); - mmFreeMem( t->memBlock ); - t->memBlock = NULL; - - if (t->timestamp > t->heap->timestamp) - t->heap->timestamp = t->timestamp; - - t->heap->texture_swaps[0]++; - move_to_tail( t->heap->swapped_objects, t ); - t->heap = NULL; - } - else { - assert( t->heap == NULL ); - } - - - for ( face = 0 ; face < 6 ; face++ ) { - t->dirty_images[face] = ~0; - } -} - - - - -/** - * Destroy hardware state associated with texture \a t. Calls the - * \a destroy_texture_object method associated with the heap from which - * \a t was allocated. - * - * \param t Texture object to be destroyed - */ - -void driDestroyTextureObject( driTextureObject * t ) -{ - driTexHeap * heap; - - - if ( 0 ) { - fprintf( stderr, "[%s:%d] freeing %p (tObj = %p, DriverData = %p)\n", - __FILE__, __LINE__, - (void *)t, - (void *)((t != NULL) ? t->tObj : NULL), - (void *)((t != NULL && t->tObj != NULL) ? t->tObj->DriverData : NULL )); - } - - if ( t != NULL ) { - if ( t->memBlock ) { - heap = t->heap; - assert( heap != NULL ); - - heap->texture_swaps[0]++; - - mmFreeMem( t->memBlock ); - t->memBlock = NULL; - - if (t->timestamp > t->heap->timestamp) - t->heap->timestamp = t->timestamp; - - heap->destroy_texture_object( heap->driverContext, t ); - t->heap = NULL; - } - - if ( t->tObj != NULL ) { - assert( t->tObj->DriverData == t ); - t->tObj->DriverData = NULL; - } - - remove_from_list( t ); - FREE( t ); - } - - if ( 0 ) { - fprintf( stderr, "[%s:%d] done freeing %p\n", __FILE__, __LINE__, (void *)t ); - } -} - - - - -/** - * Update the local heap's representation of texture memory based on - * data in the SAREA. This is done each time it is detected that some other - * direct rendering client has held the lock. This pertains to both our local - * textures and the textures belonging to other clients. Keep track of other - * client's textures by pushing a placeholder texture onto the LRU list -- - * these are denoted by \a tObj being \a NULL. - * - * \param heap Heap whose state is to be updated - * \param offset Byte offset in the heap that has been stolen - * \param size Size, in bytes, of the stolen block - * \param in_use Non-zero if the block is pinned/reserved by the kernel - */ - -static void driTexturesGone( driTexHeap * heap, int offset, int size, - int in_use ) -{ - driTextureObject * t; - driTextureObject * tmp; - - - foreach_s ( t, tmp, & heap->texture_objects ) { - if ( (t->memBlock->ofs < (offset + size)) - && ((t->memBlock->ofs + t->memBlock->size) > offset) ) { - /* It overlaps - kick it out. If the texture object is just a - * place holder, then destroy it all together. Otherwise, mark - * it as being swapped out. - */ - - if ( t->tObj != NULL ) { - driSwapOutTextureObject( t ); - } - else { - driDestroyTextureObject( t ); - } - } - } - - - { - t = (driTextureObject *) CALLOC( heap->texture_object_size ); - if ( t == NULL ) return; - - t->memBlock = mmAllocMem( heap->memory_heap, size, 0, offset ); - if ( t->memBlock == NULL ) { - fprintf( stderr, "Couldn't alloc placeholder: heap %u sz %x ofs %x\n", heap->heapId, - (int)size, (int)offset ); - mmDumpMemInfo( heap->memory_heap ); - return; - } - t->heap = heap; - if (in_use) - t->bound = 99; - insert_at_head( & heap->texture_objects, t ); - } -} - - - - -/** - * Called by the client on lock contention to determine whether textures have - * been stolen. If another client has modified a region in which we have - * textures, then we need to figure out which of our textures have been - * removed and update our global LRU. - * - * \param heap Texture heap to be updated - */ - -void driAgeTextures( driTexHeap * heap ) -{ - drmTextureRegionPtr list = heap->global_regions; - unsigned sz = 1U << (heap->logGranularity); - unsigned i, nr = 0; - - - /* Have to go right round from the back to ensure stuff ends up - * LRU in the local list... Fix with a cursor pointer. - */ - - for (i = list[heap->nrRegions].prev ; - i != heap->nrRegions && nr < heap->nrRegions ; - i = list[i].prev, nr++) { - /* If switching texturing schemes, then the SAREA might not have been - * properly cleared, so we need to reset the global texture LRU. - */ - - if ( (i * sz) > heap->size ) { - nr = heap->nrRegions; - break; - } - - if (list[i].age > heap->local_age) - driTexturesGone( heap, i * sz, sz, list[i].in_use); - } - - /* Loop or uninitialized heap detected. Reset. - */ - - if (nr == heap->nrRegions) { - driTexturesGone( heap, 0, heap->size, 0); - resetGlobalLRU( heap ); - } - - if ( 0 ) { - printGlobalLRU( heap, __FUNCTION__ ); - printLocalLRU( heap, __FUNCTION__ ); - } - - heap->local_age = heap->global_age[0]; -} - - - - -#define INDEX_ARRAY_SIZE 6 /* I'm not aware of driver with more than 2 heaps */ - -/** - * Allocate memory from a texture heap to hold a texture object. This - * routine will attempt to allocate memory for the texture from the heaps - * specified by \c heap_array in order. That is, first it will try to - * allocate from \c heap_array[0], then \c heap_array[1], and so on. - * - * \param heap_array Array of pointers to texture heaps to use - * \param nr_heaps Number of heap pointer in \a heap_array - * \param t Texture object for which space is needed - * \return The ID of the heap from which memory was allocated, or -1 if - * memory could not be allocated. - * - * \bug The replacement policy implemented by this function is horrible. - */ - - -int -driAllocateTexture( driTexHeap * const * heap_array, unsigned nr_heaps, - driTextureObject * t ) -{ - driTexHeap * heap; - driTextureObject * temp; - driTextureObject * cursor; - unsigned id; - - - /* In case it already has texture space, initialize heap. This also - * prevents GCC from issuing a warning that heap might be used - * uninitialized. - */ - - heap = t->heap; - - - /* Run through each of the existing heaps and try to allocate a buffer - * to hold the texture. - */ - - for ( id = 0 ; (t->memBlock == NULL) && (id < nr_heaps) ; id++ ) { - heap = heap_array[ id ]; - if ( heap != NULL ) { - t->memBlock = mmAllocMem( heap->memory_heap, t->totalSize, - heap->alignmentShift, 0 ); - } - } - - - /* Kick textures out until the requested texture fits. - */ - - if ( t->memBlock == NULL ) { - unsigned index[INDEX_ARRAY_SIZE]; - unsigned nrGoodHeaps = 0; - - /* Trying to avoid dynamic memory allocation. If you have more - * heaps, increase INDEX_ARRAY_SIZE. I'm not aware of any - * drivers with more than 2 tex heaps. */ - assert( nr_heaps < INDEX_ARRAY_SIZE ); - - /* Sort large enough heaps by duty. Insertion sort should be - * fast enough for such a short array. */ - for ( id = 0 ; id < nr_heaps ; id++ ) { - heap = heap_array[ id ]; - - if ( heap != NULL && t->totalSize <= heap->size ) { - unsigned j; - - for ( j = 0 ; j < nrGoodHeaps; j++ ) { - if ( heap->duty > heap_array[ index[ j ] ]->duty ) - break; - } - - if ( j < nrGoodHeaps ) { - memmove( &index[ j+1 ], &index[ j ], - sizeof(index[ 0 ]) * (nrGoodHeaps - j) ); - } - - index[ j ] = id; - - nrGoodHeaps++; - } - } - - for ( id = 0 ; (t->memBlock == NULL) && (id < nrGoodHeaps) ; id++ ) { - heap = heap_array[ index[ id ] ]; - - for ( cursor = heap->texture_objects.prev, temp = cursor->prev; - cursor != &heap->texture_objects ; - cursor = temp, temp = cursor->prev ) { - - /* The the LRU element. If the texture is bound to one of - * the texture units, then we cannot kick it out. - */ - if ( cursor->bound /* || cursor->reserved */ ) { - continue; - } - - if ( cursor->memBlock ) - heap->duty -= cursor->memBlock->size; - - /* If this is a placeholder, there's no need to keep it */ - if (cursor->tObj) - driSwapOutTextureObject( cursor ); - else - driDestroyTextureObject( cursor ); - - t->memBlock = mmAllocMem( heap->memory_heap, t->totalSize, - heap->alignmentShift, 0 ); - - if (t->memBlock) - break; - } - } - - /* Rebalance duties. If a heap kicked more data than its duty, - * then all other heaps get that amount multiplied with their - * relative weight added to their duty. The negative duty is - * reset to 0. In the end all heaps have a duty >= 0. - * - * CAUTION: we must not change the heap pointer here, because it - * is used below to update the texture object. - */ - for ( id = 0 ; id < nr_heaps ; id++ ) - if ( heap_array[ id ] != NULL && heap_array[ id ]->duty < 0) { - int duty = -heap_array[ id ]->duty; - double weight = heap_array[ id ]->weight; - unsigned j; - - for ( j = 0 ; j < nr_heaps ; j++ ) - if ( j != id && heap_array[ j ] != NULL ) { - heap_array[ j ]->duty += (double) duty * - heap_array[ j ]->weight / weight; - } - - heap_array[ id ]->duty = 0; - } - } - - - if ( t->memBlock != NULL ) { - /* id and heap->heapId may or may not be the same value here. - */ - - assert( heap != NULL ); - assert( (t->heap == NULL) || (t->heap == heap) ); - - t->heap = heap; - return heap->heapId; - } - else { - assert( t->heap == NULL ); - - fprintf( stderr, "[%s:%d] unable to allocate texture\n", - __FUNCTION__, __LINE__ ); - return -1; - } -} - - - - - - -/** - * Set the location where the texture-swap counter is stored. - */ - -void -driSetTextureSwapCounterLocation( driTexHeap * heap, unsigned * counter ) -{ - heap->texture_swaps = (counter == NULL) ? & dummy_swap_counter : counter; -} - - - - -/** - * Create a new heap for texture data. - * - * \param heap_id Device-dependent heap identifier. This value - * will returned by driAllocateTexture when memory - * is allocated from this heap. - * \param context Device-dependent driver context. This is - * supplied as the first parameter to the - * \c destroy_tex_obj function. - * \param size Size, in bytes, of the texture region - * \param alignmentShift Alignment requirement for textures. If textures - * must be allocated on a 4096 byte boundry, this - * would be 12. - * \param nr_regions Number of regions into which this texture space - * should be partitioned - * \param global_regions Array of \c drmTextureRegion structures in the SAREA - * \param global_age Pointer to the global texture age in the SAREA - * \param swapped_objects Pointer to the list of texture objects that are - * not in texture memory (i.e., have been swapped - * out). - * \param texture_object_size Size, in bytes, of a device-dependent texture - * object - * \param destroy_tex_obj Function used to destroy a device-dependent - * texture object - * - * \sa driDestroyTextureHeap - */ - -driTexHeap * -driCreateTextureHeap( unsigned heap_id, void * context, unsigned size, - unsigned alignmentShift, unsigned nr_regions, - drmTextureRegionPtr global_regions, unsigned * global_age, - driTextureObject * swapped_objects, - unsigned texture_object_size, - destroy_texture_object_t * destroy_tex_obj - ) -{ - driTexHeap * heap; - unsigned l; - - - if ( 0 ) - fprintf( stderr, "%s( %u, %p, %u, %u, %u )\n", - __FUNCTION__, - heap_id, (void *)context, size, alignmentShift, nr_regions ); - - heap = (driTexHeap *) CALLOC( sizeof( driTexHeap ) ); - if ( heap != NULL ) { - l = driLog2( (size - 1) / nr_regions ); - if ( l < alignmentShift ) - { - l = alignmentShift; - } - - heap->logGranularity = l; - heap->size = size & ~((1L << l) - 1); - - heap->memory_heap = mmInit( 0, heap->size ); - if ( heap->memory_heap != NULL ) { - heap->heapId = heap_id; - heap->driverContext = context; - - heap->alignmentShift = alignmentShift; - heap->nrRegions = nr_regions; - heap->global_regions = global_regions; - heap->global_age = global_age; - heap->swapped_objects = swapped_objects; - heap->texture_object_size = texture_object_size; - heap->destroy_texture_object = destroy_tex_obj; - - /* Force global heap init */ - if (heap->global_age[0] == 0) - heap->local_age = ~0; - else - heap->local_age = 0; - - make_empty_list( & heap->texture_objects ); - driSetTextureSwapCounterLocation( heap, NULL ); - - heap->weight = heap->size; - heap->duty = 0; - } - else { - FREE( heap ); - heap = NULL; - } - } - - - if ( 0 ) - fprintf( stderr, "%s returning %p\n", __FUNCTION__, (void *)heap ); - - return heap; -} - - - - -/** Destroys a texture heap - * - * \param heap Texture heap to be destroyed - */ - -void -driDestroyTextureHeap( driTexHeap * heap ) -{ - driTextureObject * t; - driTextureObject * temp; - - - if ( heap != NULL ) { - foreach_s( t, temp, & heap->texture_objects ) { - driDestroyTextureObject( t ); - } - foreach_s( t, temp, heap->swapped_objects ) { - driDestroyTextureObject( t ); - } - - mmDestroy( heap->memory_heap ); - FREE( heap ); - } -} - - - - -/****************************************************************************/ -/** - * Determine how many texels (including all mipmap levels) would be required - * for a texture map of size \f$2^^\c base_size_log2\f$ would require. - * - * \param base_size_log2 \f$log_2\f$ of the size of a side of the texture - * \param dimensions Number of dimensions of the texture. Either 2 or 3. - * \param faces Number of faces of the texture. Either 1 or 6 (for cube maps). - * \return Number of texels - */ - -static unsigned -texels_this_map_size( int base_size_log2, unsigned dimensions, unsigned faces ) -{ - unsigned texels; - - - assert( (faces == 1) || (faces == 6) ); - assert( (dimensions == 2) || (dimensions == 3) ); - - texels = 0; - if ( base_size_log2 >= 0 ) { - texels = (1U << (dimensions * base_size_log2)); - - /* See http://www.mail-archive.com/dri-devel@lists.sourceforge.net/msg03636.html - * for the complete explaination of why this formulation is used. - * Basically, the smaller mipmap levels sum to 0.333 the size of the - * level 0 map. The total size is therefore the size of the map - * multipled by 1.333. The +2 is there to round up. - */ - - texels = (texels * 4 * faces + 2) / 3; - } - - return texels; -} - - - - -struct maps_per_heap { - unsigned c[32]; -}; - -static void -fill_in_maximums( driTexHeap * const * heaps, unsigned nr_heaps, - unsigned max_bytes_per_texel, unsigned max_size, - unsigned mipmaps_at_once, unsigned dimensions, - unsigned faces, struct maps_per_heap * max_textures ) -{ - unsigned heap; - unsigned log2_size; - unsigned mask; - - - /* Determine how many textures of each size can be stored in each - * texture heap. - */ - - for ( heap = 0 ; heap < nr_heaps ; heap++ ) { - if ( heaps[ heap ] == NULL ) { - (void) memset( max_textures[ heap ].c, 0, - sizeof( max_textures[ heap ].c ) ); - continue; - } - - mask = (1U << heaps[ heap ]->logGranularity) - 1; - - if ( 0 ) { - fprintf( stderr, "[%s:%d] heap[%u] = %u bytes, mask = 0x%08x\n", - __FILE__, __LINE__, - heap, heaps[ heap ]->size, mask ); - } - - for ( log2_size = max_size ; log2_size > 0 ; log2_size-- ) { - unsigned total; - - - /* Determine the total number of bytes required by a texture of - * size log2_size. - */ - - total = texels_this_map_size( log2_size, dimensions, faces ) - - texels_this_map_size( log2_size - mipmaps_at_once, - dimensions, faces ); - total *= max_bytes_per_texel; - total = (total + mask) & ~mask; - - /* The number of textures of a given size that will fit in a heap - * is equal to the size of the heap divided by the size of the - * texture. - */ - - max_textures[ heap ].c[ log2_size ] = heaps[ heap ]->size / total; - - if ( 0 ) { - fprintf( stderr, "[%s:%d] max_textures[%u].c[%02u] " - "= 0x%08x / 0x%08x " - "= %u (%u)\n", - __FILE__, __LINE__, - heap, log2_size, - heaps[ heap ]->size, total, - heaps[ heap ]->size / total, - max_textures[ heap ].c[ log2_size ] ); - } - } - } -} - - -static unsigned -get_max_size( unsigned nr_heaps, - unsigned texture_units, - unsigned max_size, - int all_textures_one_heap, - struct maps_per_heap * max_textures ) -{ - unsigned heap; - unsigned log2_size; - - - /* Determine the largest texture size such that a texture of that size - * can be bound to each texture unit at the same time. Some hardware - * may require that all textures be in the same texture heap for - * multitexturing. - */ - - for ( log2_size = max_size ; log2_size > 0 ; log2_size-- ) { - unsigned total = 0; - - for ( heap = 0 ; heap < nr_heaps ; heap++ ) - { - total += max_textures[ heap ].c[ log2_size ]; - - if ( 0 ) { - fprintf( stderr, "[%s:%d] max_textures[%u].c[%02u] = %u, " - "total = %u\n", __FILE__, __LINE__, heap, log2_size, - max_textures[ heap ].c[ log2_size ], total ); - } - - if ( (max_textures[ heap ].c[ log2_size ] >= texture_units) - || (!all_textures_one_heap && (total >= texture_units)) ) { - /* The number of mipmap levels is the log-base-2 of the - * maximum texture size plus 1. If the maximum texture size - * is 1x1, the log-base-2 is 0 and 1 mipmap level (the base - * level) is available. - */ - - return log2_size + 1; - } - } - } - - /* This should NEVER happen. It should always be possible to have at - * *least* a 1x1 texture in memory! - */ - assert( log2_size != 0 ); - return 0; -} - -#define SET_MAX(f,v) \ - do { if ( max_sizes[v] != 0 ) { limits-> f = max_sizes[v]; } } while( 0 ) - -#define SET_MAX_RECT(f,v) \ - do { if ( max_sizes[v] != 0 ) { limits-> f = 1 << max_sizes[v]; } } while( 0 ) - - -/** - * Given the amount of texture memory, the number of texture units, and the - * maximum size of a texel, calculate the maximum texture size the driver can - * advertise. - * - * \param heaps Texture heaps for this card - * \param nr_heap Number of texture heaps - * \param limits OpenGL contants. MaxTextureUnits must be set. - * \param max_bytes_per_texel Maximum size of a single texel, in bytes - * \param max_2D_size \f$\log_2\f$ of the maximum 2D texture size (i.e., - * 1024x1024 textures, this would be 10) - * \param max_3D_size \f$\log_2\f$ of the maximum 3D texture size (i.e., - * 1024x1024x1024 textures, this would be 10) - * \param max_cube_size \f$\log_2\f$ of the maximum cube texture size (i.e., - * 1024x1024 textures, this would be 10) - * \param max_rect_size \f$\log_2\f$ of the maximum texture rectangle size - * (i.e., 1024x1024 textures, this would be 10). This is a power-of-2 - * even though texture rectangles need not be a power-of-2. - * \param mipmaps_at_once Total number of mipmaps that can be used - * at one time. For most hardware this will be \f$\c max_size + 1\f$. - * For hardware that does not support mipmapping, this will be 1. - * \param all_textures_one_heap True if the hardware requires that all - * textures be in a single texture heap for multitexturing. - */ - -void -driCalculateMaxTextureLevels( driTexHeap * const * heaps, - unsigned nr_heaps, - struct gl_constants * limits, - unsigned max_bytes_per_texel, - unsigned max_2D_size, - unsigned max_3D_size, - unsigned max_cube_size, - unsigned max_rect_size, - unsigned mipmaps_at_once, - int all_textures_one_heap ) -{ - struct maps_per_heap max_textures[8]; - unsigned i; - const unsigned dimensions[4] = { 2, 3, 2, 2 }; - const unsigned faces[4] = { 1, 1, 6, 1 }; - unsigned max_sizes[4]; - unsigned mipmaps[4]; - - - max_sizes[0] = max_2D_size; - max_sizes[1] = max_3D_size; - max_sizes[2] = max_cube_size; - max_sizes[3] = max_rect_size; - - mipmaps[0] = mipmaps_at_once; - mipmaps[1] = mipmaps_at_once; - mipmaps[2] = 1; - mipmaps[3] = mipmaps_at_once; - - - /* Calculate the maximum number of texture levels in two passes. The - * first pass determines how many textures of each power-of-two size - * (including all mipmap levels for that size) can fit in each texture - * heap. The second pass finds the largest texture size that allows - * a texture of that size to be bound to every texture unit. - */ - - for ( i = 0 ; i < 4 ; i++ ) { - if ( max_sizes[ i ] != 0 ) { - fill_in_maximums( heaps, nr_heaps, max_bytes_per_texel, - max_sizes[ i ], mipmaps[ i ], - dimensions[ i ], faces[ i ], - max_textures ); - - max_sizes[ i ] = get_max_size( nr_heaps, - limits->MaxTextureUnits, - max_sizes[ i ], - all_textures_one_heap, - max_textures ); - } - } - - SET_MAX( MaxTextureLevels, 0 ); - SET_MAX( Max3DTextureLevels, 1 ); - SET_MAX( MaxCubeTextureLevels, 2 ); - SET_MAX_RECT( MaxTextureRectSize, 3 ); -} - - - - -/** - * Perform initial binding of default textures objects on a per unit, per - * texture target basis. - * - * \param ctx Current OpenGL context - * \param swapped List of swapped-out textures - * \param targets Bit-mask of value texture targets - */ - -void driInitTextureObjects( GLcontext *ctx, driTextureObject * swapped, - GLuint targets ) -{ - struct gl_texture_object *texObj; - GLuint tmp = ctx->Texture.CurrentUnit; - unsigned i; - - - for ( i = 0 ; i < ctx->Const.MaxTextureUnits ; i++ ) { - ctx->Texture.CurrentUnit = i; - - if ( (targets & DRI_TEXMGR_DO_TEXTURE_1D) != 0 ) { - texObj = ctx->Texture.Unit[i].Current1D; - ctx->Driver.BindTexture( ctx, GL_TEXTURE_1D, texObj ); - move_to_tail( swapped, (driTextureObject *) texObj->DriverData ); - } - - if ( (targets & DRI_TEXMGR_DO_TEXTURE_2D) != 0 ) { - texObj = ctx->Texture.Unit[i].Current2D; - ctx->Driver.BindTexture( ctx, GL_TEXTURE_2D, texObj ); - move_to_tail( swapped, (driTextureObject *) texObj->DriverData ); - } - - if ( (targets & DRI_TEXMGR_DO_TEXTURE_3D) != 0 ) { - texObj = ctx->Texture.Unit[i].Current3D; - ctx->Driver.BindTexture( ctx, GL_TEXTURE_3D, texObj ); - move_to_tail( swapped, (driTextureObject *) texObj->DriverData ); - } - - if ( (targets & DRI_TEXMGR_DO_TEXTURE_CUBE) != 0 ) { - texObj = ctx->Texture.Unit[i].CurrentCubeMap; - ctx->Driver.BindTexture( ctx, GL_TEXTURE_CUBE_MAP_ARB, texObj ); - move_to_tail( swapped, (driTextureObject *) texObj->DriverData ); - } - - if ( (targets & DRI_TEXMGR_DO_TEXTURE_RECT) != 0 ) { - texObj = ctx->Texture.Unit[i].CurrentRect; - ctx->Driver.BindTexture( ctx, GL_TEXTURE_RECTANGLE_NV, texObj ); - move_to_tail( swapped, (driTextureObject *) texObj->DriverData ); - } - } - - ctx->Texture.CurrentUnit = tmp; -} - - - - -/** - * Verify that the specified texture is in the specificed heap. - * - * \param tex Texture to be tested. - * \param heap Texture memory heap to be tested. - * \return True if the texture is in the heap, false otherwise. - */ - -static GLboolean -check_in_heap( const driTextureObject * tex, const driTexHeap * heap ) -{ -#if 1 - return tex->heap == heap; -#else - driTextureObject * curr; - - foreach( curr, & heap->texture_objects ) { - if ( curr == tex ) { - break; - } - } - - return curr == tex; -#endif -} - - - -/****************************************************************************/ -/** - * Validate the consistency of a set of texture heaps. - * Original version by Keith Whitwell in r200/r200_sanity.c. - */ - -GLboolean -driValidateTextureHeaps( driTexHeap * const * texture_heaps, - unsigned nr_heaps, const driTextureObject * swapped ) -{ - driTextureObject *t; - unsigned i; - - for ( i = 0 ; i < nr_heaps ; i++ ) { - int last_end = 0; - unsigned textures_in_heap = 0; - unsigned blocks_in_mempool = 0; - const driTexHeap * heap = texture_heaps[i]; - const memHeap_t * p = heap->memory_heap; - - /* Check each texture object has a MemBlock, and is linked into - * the correct heap. - * - * Check the texobj base address corresponds to the MemBlock - * range. Check the texobj size (recalculate?) fits within - * the MemBlock. - * - * Count the number of texobj's using this heap. - */ - - foreach ( t, &heap->texture_objects ) { - if ( !check_in_heap( t, heap ) ) { - fprintf( stderr, "%s memory block for texture object @ %p not " - "found in heap #%d\n", - __FUNCTION__, (void *)t, i ); - return GL_FALSE; - } - - - if ( t->totalSize > t->memBlock->size ) { - fprintf( stderr, "%s: Memory block for texture object @ %p is " - "only %u bytes, but %u are required\n", - __FUNCTION__, (void *)t, t->totalSize, t->memBlock->size ); - return GL_FALSE; - } - - textures_in_heap++; - } - - /* Validate the contents of the heap: - * - Ordering - * - Overlaps - * - Bounds - */ - - while ( p != NULL ) { - if (p->reserved) { - fprintf( stderr, "%s: Block (%08x,%x), is reserved?!\n", - __FUNCTION__, p->ofs, p->size ); - return GL_FALSE; - } - - if (p->ofs != last_end) { - fprintf( stderr, "%s: blocks_in_mempool = %d, last_end = %d, p->ofs = %d\n", - __FUNCTION__, blocks_in_mempool, last_end, p->ofs ); - return GL_FALSE; - } - - if (!p->reserved && !p->free) { - blocks_in_mempool++; - } - - last_end = p->ofs + p->size; - p = p->next; - } - - if (textures_in_heap != blocks_in_mempool) { - fprintf( stderr, "%s: Different number of textures objects (%u) and " - "inuse memory blocks (%u)\n", - __FUNCTION__, textures_in_heap, blocks_in_mempool ); - return GL_FALSE; - } - -#if 0 - fprintf( stderr, "%s: textures_in_heap = %u\n", - __FUNCTION__, textures_in_heap ); -#endif - } - - - /* Check swapped texobj's have zero memblocks - */ - i = 0; - foreach ( t, swapped ) { - if ( t->memBlock != NULL ) { - fprintf( stderr, "%s: Swapped texobj %p has non-NULL memblock %p\n", - __FUNCTION__, (void *)t, (void *)t->memBlock ); - return GL_FALSE; - } - i++; - } - -#if 0 - fprintf( stderr, "%s: swapped texture count = %u\n", __FUNCTION__, i ); -#endif - - return GL_TRUE; -} - - - - -/****************************************************************************/ -/** - * Compute which mipmap levels that really need to be sent to the hardware. - * This depends on the base image size, GL_TEXTURE_MIN_LOD, - * GL_TEXTURE_MAX_LOD, GL_TEXTURE_BASE_LEVEL, and GL_TEXTURE_MAX_LEVEL. - */ - -void -driCalculateTextureFirstLastLevel( driTextureObject * t ) -{ - struct gl_texture_object * const tObj = t->tObj; - const struct gl_texture_image * const baseImage = - tObj->Image[0][tObj->BaseLevel]; - - /* These must be signed values. MinLod and MaxLod can be negative numbers, - * and having firstLevel and lastLevel as signed prevents the need for - * extra sign checks. - */ - int firstLevel; - int lastLevel; - - /* Yes, this looks overly complicated, but it's all needed. - */ - - switch (tObj->Target) { - case GL_TEXTURE_1D: - case GL_TEXTURE_2D: - case GL_TEXTURE_3D: - case GL_TEXTURE_CUBE_MAP: - if (tObj->MinFilter == GL_NEAREST || tObj->MinFilter == GL_LINEAR) { - /* GL_NEAREST and GL_LINEAR only care about GL_TEXTURE_BASE_LEVEL. - */ - - firstLevel = lastLevel = tObj->BaseLevel; - } - else { - firstLevel = tObj->BaseLevel + (GLint)(tObj->MinLod + 0.5); - firstLevel = MAX2(firstLevel, tObj->BaseLevel); - lastLevel = tObj->BaseLevel + (GLint)(tObj->MaxLod + 0.5); - lastLevel = MAX2(lastLevel, t->tObj->BaseLevel); - lastLevel = MIN2(lastLevel, t->tObj->BaseLevel + baseImage->MaxLog2); - lastLevel = MIN2(lastLevel, t->tObj->MaxLevel); - lastLevel = MAX2(firstLevel, lastLevel); /* need at least one level */ - } - break; - case GL_TEXTURE_RECTANGLE_NV: - case GL_TEXTURE_4D_SGIS: - firstLevel = lastLevel = 0; - break; - default: - return; - } - - /* save these values */ - t->firstLevel = firstLevel; - t->lastLevel = lastLevel; -} - - - - -/** - * \name DRI texture formats. Pointers initialized to either the big- or - * little-endian Mesa formats. - */ -/*@{*/ -const struct gl_texture_format *_dri_texformat_rgba8888 = NULL; -const struct gl_texture_format *_dri_texformat_argb8888 = NULL; -const struct gl_texture_format *_dri_texformat_rgb565 = NULL; -const struct gl_texture_format *_dri_texformat_argb4444 = NULL; -const struct gl_texture_format *_dri_texformat_argb1555 = NULL; -const struct gl_texture_format *_dri_texformat_al88 = NULL; -const struct gl_texture_format *_dri_texformat_a8 = &_mesa_texformat_a8; -const struct gl_texture_format *_dri_texformat_ci8 = &_mesa_texformat_ci8; -const struct gl_texture_format *_dri_texformat_i8 = &_mesa_texformat_i8; -const struct gl_texture_format *_dri_texformat_l8 = &_mesa_texformat_l8; -/*@}*/ - - -/** - * Initialize little endian target, host byte order independent texture formats - */ -void -driInitTextureFormats(void) -{ - const GLuint ui = 1; - const GLubyte littleEndian = *((const GLubyte *) &ui); - - if (littleEndian) { - _dri_texformat_rgba8888 = &_mesa_texformat_rgba8888; - _dri_texformat_argb8888 = &_mesa_texformat_argb8888; - _dri_texformat_rgb565 = &_mesa_texformat_rgb565; - _dri_texformat_argb4444 = &_mesa_texformat_argb4444; - _dri_texformat_argb1555 = &_mesa_texformat_argb1555; - _dri_texformat_al88 = &_mesa_texformat_al88; - } - else { - _dri_texformat_rgba8888 = &_mesa_texformat_rgba8888_rev; - _dri_texformat_argb8888 = &_mesa_texformat_argb8888_rev; - _dri_texformat_rgb565 = &_mesa_texformat_rgb565_rev; - _dri_texformat_argb4444 = &_mesa_texformat_argb4444_rev; - _dri_texformat_argb1555 = &_mesa_texformat_argb1555_rev; - _dri_texformat_al88 = &_mesa_texformat_al88_rev; - } -} diff --git a/nx-X11/extras/Mesa/src/mesa/drivers/dri/common/texmem.h b/nx-X11/extras/Mesa/src/mesa/drivers/dri/common/texmem.h deleted file mode 100644 index 705cd4d34..000000000 --- a/nx-X11/extras/Mesa/src/mesa/drivers/dri/common/texmem.h +++ /dev/null @@ -1,327 +0,0 @@ -/* - * Copyright 2000-2001 VA Linux Systems, Inc. - * (c) Copyright IBM Corporation 2002 - * 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 - * VA LINUX SYSTEM, 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. - * - * Authors: - * Ian Romanick - * Keith Whitwell - * Kevin E. Martin - * Gareth Hughes - */ -/* $XFree86:$ */ - -/** \file texmem.h - * Public interface to the DRI texture memory management routines. - * - * \sa texmem.c - */ - -#ifndef DRI_TEXMEM_H -#define DRI_TEXMEM_H - -#include "mtypes.h" -#include "mm.h" -#include "xf86drm.h" - -struct dri_tex_heap; -typedef struct dri_tex_heap driTexHeap; - -struct dri_texture_object; -typedef struct dri_texture_object driTextureObject; - - -/** - * Base texture object type. Each driver will extend this type with its own - * private data members. - */ - -struct dri_texture_object { - struct dri_texture_object * next; - struct dri_texture_object * prev; - - driTexHeap * heap; /**< Texture heap currently stored in */ - struct gl_texture_object * tObj;/**< Pointer to Mesa texture object - * If NULL, this texture object is a - * "placeholder" object representing - * texture memory in use by another context. - * A placeholder should have a heap and a memBlock. - */ - PMemBlock memBlock; /**< Memory block containing texture */ - unsigned bound; /**< Texture unit currently bound to */ - - unsigned totalSize; /**< Total size of the texture, - * including all mipmap levels - */ - - unsigned dirty_images[6]; /**< Flags for whether or not images - * need to be uploaded to local or - * AGP texture space. One flag set - * for each cube face for cubic - * textures. Bit zero corresponds to - * the base-level, which may or may - * not be the level zero mipmap. - */ - - unsigned timestamp; /**< Timestamp used to - * synchronize with 3d engine - * in hardware where textures - * are uploaded directly to - * the framebuffer. - */ - - unsigned firstLevel; /**< Image in \c tObj->Image[0] that - * corresponds to the base-level of - * this texture object. - */ - - unsigned lastLevel; /**< Last image in \c tObj->Image[0] - * used by the - * current LOD settings of - * this texture object. This - * value must be greater than - * or equal to \c firstLevel. - */ -}; - - -typedef void (destroy_texture_object_t)( void * driverContext, - driTextureObject * t ); - -/** - * Client-private representation of texture memory state. - * - * Clients will place one or more of these structs in their driver - * context struct to manage one or more global texture heaps. - */ - -struct dri_tex_heap { - - /** Client-supplied heap identifier - */ - unsigned heapId; - - /** Pointer to the client's private context - */ - void *driverContext; - - /** Total size of the heap, in bytes - */ - unsigned size; - - /** \brief \f$log_2\f$ of size of single heap region - * - * Each context takes memory from the global texture heap in - * \f$2^{logGranularity}\f$ byte blocks. The value of - * \a logGranularity is based on the amount of memory represented - * by the heap and the maximum number of regions in the SAREA. Given - * \a b bytes of texture memory an \a n regions in the SAREA, - * \a logGranularity will be \f$\lfloor\log_2( b / n )\rfloor\f$. - */ - unsigned logGranularity; - - /** \brief Required alignment of allocations in this heap - * - * The alignment shift is supplied to \a mmAllocMem when memory is - * allocated from this heap. The value of \a alignmentShift will - * typically reflect some require of the hardware. This value has - * \b no \b relation to \a logGranularity. \a alignmentShift is a - * per-context value. - * - * \sa mmAllocMem - */ - unsigned alignmentShift; - - /** Number of elements in global list (the SAREA). - */ - unsigned nrRegions; - - /** Pointer to SAREA \a driTexRegion array - */ - drmTextureRegionPtr global_regions; - - /** Pointer to the texture state age (generation number) in the SAREA - */ - unsigned * global_age; - - /** Local age (generation number) of texture state - */ - unsigned local_age; - - /** Memory heap used to manage texture memory represented by - * this texture heap. - */ - memHeap_t * memory_heap; - - /** List of objects that we currently believe to be in texture - * memory. - */ - driTextureObject texture_objects; - - /** Pointer to the list of texture objects that are not in - * texture memory. - */ - driTextureObject * swapped_objects; - - /** Size of the driver-speicific texture object. - */ - unsigned texture_object_size; - - - /** - * \brief Function to destroy driver-specific texture object data. - * - * This function is supplied by the driver so that the texture manager - * can release all resources associated with a texture object. This - * function should only release driver-specific data. That is, - * \a driDestroyTextureObject will release the texture memory - * associated with the texture object, it will release the memory - * for the texture object itself, and it will unlink the texture - * object from the texture object lists. - * - * \param driverContext Pointer to the driver supplied context - * \param t Texture object that is to be destroyed - * \sa driDestroyTextureObject - */ - - destroy_texture_object_t * destroy_texture_object; - - - /** - */ - unsigned * texture_swaps; - - /** - * Timestamp used to synchronize with 3d engine in hardware - * where textures are uploaded directly to the - * framebuffer. - */ - unsigned timestamp; - - /** \brief Kick/upload weight - * - * When not enough free space is available this weight - * influences the choice of the heap from which textures are - * kicked. By default the weight is equal to the heap size. - */ - double weight; - - /** \brief Kick/upload duty - * - * The heap with the highest duty will be chosen for kicking - * textures if not enough free space is available. The duty is - * reduced by the amount of data kicked. Rebalancing of - * negative duties takes the weights into account. - */ - int duty; -}; - - - - -/** - * Called by the client on lock contention to determine whether textures have - * been stolen. If another client has modified a region in which we have - * textures, then we need to figure out which of our textures have been - * removed and update our global LRU. - * - * \param heap Texture heap to be updated - * \hideinitializer - */ - -#define DRI_AGE_TEXTURES( heap ) \ - do { \ - if ( ((heap) != NULL) \ - && ((heap)->local_age != (heap)->global_age[0]) ) \ - driAgeTextures( heap ); \ - } while( 0 ) - - - - -/* This should be called whenever there has been contention on the hardware - * lock. driAgeTextures should not be called directly. Instead, clients - * should use DRI_AGE_TEXTURES, above. - */ - -void driAgeTextures( driTexHeap * heap ); - -void driUpdateTextureLRU( driTextureObject * t ); -void driSwapOutTextureObject( driTextureObject * t ); -void driDestroyTextureObject( driTextureObject * t ); -int driAllocateTexture( driTexHeap * const * heap_array, unsigned nr_heaps, - driTextureObject * t ); - -GLboolean driIsTextureResident( GLcontext * ctx, - struct gl_texture_object * texObj ); - -driTexHeap * driCreateTextureHeap( unsigned heap_id, void * context, - unsigned size, unsigned alignmentShift, unsigned nr_regions, - drmTextureRegionPtr global_regions, unsigned * global_age, - driTextureObject * swapped_objects, unsigned texture_object_size, - destroy_texture_object_t * destroy_tex_obj ); -void driDestroyTextureHeap( driTexHeap * heap ); - -void -driCalculateMaxTextureLevels( driTexHeap * const * heaps, - unsigned nr_heaps, - struct gl_constants * limits, - unsigned max_bytes_per_texel, - unsigned max_2D_size, - unsigned max_3D_size, - unsigned max_cube_size, - unsigned max_rect_size, - unsigned mipmaps_at_once, - int all_textures_one_heap ); - -void -driSetTextureSwapCounterLocation( driTexHeap * heap, unsigned * counter ); - -#define DRI_TEXMGR_DO_TEXTURE_1D 0x0001 -#define DRI_TEXMGR_DO_TEXTURE_2D 0x0002 -#define DRI_TEXMGR_DO_TEXTURE_3D 0x0004 -#define DRI_TEXMGR_DO_TEXTURE_CUBE 0x0008 -#define DRI_TEXMGR_DO_TEXTURE_RECT 0x0010 - -void driInitTextureObjects( GLcontext *ctx, driTextureObject * swapped, - GLuint targets ); - -GLboolean driValidateTextureHeaps( driTexHeap * const * texture_heaps, - unsigned nr_heaps, const driTextureObject * swapped ); - -extern void driCalculateTextureFirstLastLevel( driTextureObject * t ); - - -extern const struct gl_texture_format *_dri_texformat_rgba8888; -extern const struct gl_texture_format *_dri_texformat_argb8888; -extern const struct gl_texture_format *_dri_texformat_rgb565; -extern const struct gl_texture_format *_dri_texformat_argb4444; -extern const struct gl_texture_format *_dri_texformat_argb1555; -extern const struct gl_texture_format *_dri_texformat_al88; -extern const struct gl_texture_format *_dri_texformat_a8; -extern const struct gl_texture_format *_dri_texformat_ci8; -extern const struct gl_texture_format *_dri_texformat_i8; -extern const struct gl_texture_format *_dri_texformat_l8; - -extern void driInitTextureFormats( void ); - -#endif /* DRI_TEXMEM_H */ diff --git a/nx-X11/extras/Mesa/src/mesa/drivers/dri/common/utils.c b/nx-X11/extras/Mesa/src/mesa/drivers/dri/common/utils.c deleted file mode 100644 index fbe1991fa..000000000 --- a/nx-X11/extras/Mesa/src/mesa/drivers/dri/common/utils.c +++ /dev/null @@ -1,695 +0,0 @@ -/* - * (C) Copyright IBM Corporation 2002, 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 - * VA LINUX SYSTEM, 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. - */ - -/** - * \file utils.c - * Utility functions for DRI drivers. - * - * \author Ian Romanick - */ - -#include -#include -#include "mtypes.h" -#include "extensions.h" -#include "utils.h" -#include "dispatch.h" - -int driDispatchRemapTable[ driDispatchRemapTable_size ]; - -#if defined(USE_X86_ASM) -#include "x86/common_x86_asm.h" -#endif - -#if defined(USE_PPC_ASM) -#include "ppc/common_ppc_features.h" -#endif - -unsigned -driParseDebugString( const char * debug, - const struct dri_debug_control * control ) -{ - unsigned flag; - - - flag = 0; - if ( debug != NULL ) { - while( control->string != NULL ) { - if ( !strcmp( debug, "all" ) || - strstr( debug, control->string ) != NULL ) { - flag |= control->flag; - } - - control++; - } - } - - return flag; -} - - - -/** - * Create the \c GL_RENDERER string for DRI drivers. - * - * Almost all DRI drivers use a \c GL_RENDERER string of the form: - * - * "Mesa DRI " - * - * Using the supplied chip name, driver data, and AGP speed, this function - * creates the string. - * - * \param buffer Buffer to hold the \c GL_RENDERER string. - * \param hardware_name Name of the hardware. - * \param driver_date Driver date. - * \param agp_mode AGP mode (speed). - * - * \returns - * The length of the string stored in \c buffer. This does \b not include - * the terminating \c NUL character. - */ -unsigned -driGetRendererString( char * buffer, const char * hardware_name, - const char * driver_date, GLuint agp_mode ) -{ -#define MAX_INFO 4 - const char * cpu[MAX_INFO]; - unsigned next = 0; - unsigned i; - unsigned offset; - - - offset = sprintf( buffer, "Mesa DRI %s %s", hardware_name, driver_date ); - - /* Append any AGP-specific information. - */ - switch ( agp_mode ) { - case 1: - case 2: - case 4: - case 8: - offset += sprintf( & buffer[ offset ], " AGP %ux", agp_mode ); - break; - - default: - break; - } - - /* Append any CPU-specific information. - */ -#ifdef USE_X86_ASM - if ( _mesa_x86_cpu_features ) { - cpu[next] = " x86"; - next++; - } -# ifdef USE_MMX_ASM - if ( cpu_has_mmx ) { - cpu[next] = (cpu_has_mmxext) ? "/MMX+" : "/MMX"; - next++; - } -# endif -# ifdef USE_3DNOW_ASM - if ( cpu_has_3dnow ) { - cpu[next] = (cpu_has_3dnowext) ? "/3DNow!+" : "/3DNow!"; - next++; - } -# endif -# ifdef USE_SSE_ASM - if ( cpu_has_xmm ) { - cpu[next] = (cpu_has_xmm2) ? "/SSE2" : "/SSE"; - next++; - } -# endif - -#elif defined(USE_SPARC_ASM) - - cpu[0] = " SPARC"; - next = 1; - -#elif defined(USE_PPC_ASM) - if ( _mesa_ppc_cpu_features ) { - cpu[next] = (cpu_has_64) ? " PowerPC 64" : " PowerPC"; - next++; - } - -# ifdef USE_VMX_ASM - if ( cpu_has_vmx ) { - cpu[next] = "/Altivec"; - next++; - } -# endif - - if ( ! cpu_has_fpu ) { - cpu[next] = "/No FPU"; - next++; - } -#endif - - for ( i = 0 ; i < next ; i++ ) { - const size_t len = strlen( cpu[i] ); - - strncpy( & buffer[ offset ], cpu[i], len ); - offset += len; - } - - return offset; -} - - - - -#define need_GL_ARB_multisample -#define need_GL_ARB_transpose_matrix -#define need_GL_ARB_window_pos -#define need_GL_EXT_compiled_vertex_array -#define need_GL_EXT_polygon_offset -#define need_GL_EXT_texture_object -#define need_GL_EXT_vertex_array -#define need_GL_MESA_window_pos - -/* These are needed in *all* drivers because Mesa internally implements - * certain functionality in terms of functions provided by these extensions. - * For example, glBlendFunc is implemented by calling glBlendFuncSeparateEXT. - */ -#define need_GL_EXT_blend_func_separate -#define need_GL_NV_vertex_program - -#include "extension_helper.h" - -static const struct dri_extension all_mesa_extensions[] = { - { "GL_ARB_multisample", GL_ARB_multisample_functions }, - { "GL_ARB_transpose_matrix", GL_ARB_transpose_matrix_functions }, - { "GL_ARB_window_pos", GL_ARB_window_pos_functions }, - { "GL_EXT_blend_func_separate", GL_EXT_blend_func_separate_functions }, - { "GL_EXT_compiled_vertex_array", GL_EXT_compiled_vertex_array_functions }, - { "GL_EXT_polygon_offset", GL_EXT_polygon_offset_functions }, - { "GL_EXT_texture_object", GL_EXT_texture_object_functions }, - { "GL_EXT_vertex_array", GL_EXT_vertex_array_functions }, - { "GL_MESA_window_pos", GL_MESA_window_pos_functions }, - { "GL_NV_vertex_program", GL_NV_vertex_program_functions }, - { NULL, NULL } -}; - - -/** - * Enable extensions supported by the driver. - * - * \bug - * ARB_imaging isn't handled properly. In Mesa, enabling ARB_imaging also - * enables all the sub-extensions that are folded into it. This means that - * we need to add entry-points (via \c driInitSingleExtension) for those - * new functions here. - */ -void driInitExtensions( GLcontext * ctx, - const struct dri_extension * extensions_to_enable, - GLboolean enable_imaging ) -{ - static int first_time = 1; - unsigned i; - - if ( first_time ) { - for ( i = 0 ; i < driDispatchRemapTable_size ; i++ ) { - driDispatchRemapTable[i] = -1; - } - - first_time = 0; - driInitExtensions( ctx, all_mesa_extensions, GL_FALSE ); - } - - if ( (ctx != NULL) && enable_imaging ) { - _mesa_enable_imaging_extensions( ctx ); - } - - for ( i = 0 ; extensions_to_enable[i].name != NULL ; i++ ) { - driInitSingleExtension( ctx, & extensions_to_enable[i] ); - } -} - - - - -/** - * Enable and add dispatch functions for a single extension - * - * \param ctx Context where extension is to be enabled. - * \param ext Extension that is to be enabled. - * - * \sa driInitExtensions, _mesa_enable_extension, _glapi_add_entrypoint - * - * \todo - * Determine if it would be better to use \c strlen instead of the hardcoded - * for-loops. - */ -void driInitSingleExtension( GLcontext * ctx, - const struct dri_extension * ext ) -{ - unsigned i; - - - if ( ext->functions != NULL ) { - for ( i = 0 ; ext->functions[i].strings != NULL ; i++ ) { - const char * functions[16]; - const char * parameter_signature; - const char * str = ext->functions[i].strings; - unsigned j; - unsigned offset; - - - /* Separate the parameter signature from the rest of the string. - * If the parameter signature is empty (i.e., the string starts - * with a NUL character), then the function has a void parameter - * list. - */ - parameter_signature = str; - while ( str[0] != '\0' ) { - str++; - } - str++; - - - /* Divide the string into the substrings that name each - * entry-point for the function. - */ - for ( j = 0 ; j < 16 ; j++ ) { - if ( str[0] == '\0' ) { - functions[j] = NULL; - break; - } - - functions[j] = str; - - while ( str[0] != '\0' ) { - str++; - } - str++; - } - - - /* Add each entry-point to the dispatch table. - */ - offset = _glapi_add_dispatch( functions, parameter_signature ); - if ( ext->functions[i].remap_index != -1 ) { - driDispatchRemapTable[ ext->functions[i].remap_index ] = offset; - } - - if ( (ext->functions[i].offset != -1) - && (ext->functions[i].offset != offset) ) { - fprintf(stderr, "DISPATCH ERROR! %s -> %u != %u\n", functions[0], - driDispatchRemapTable[ ext->functions[i].remap_index ], - ext->functions[i].offset); - } - } - } - - if ( ctx != NULL ) { - _mesa_enable_extension( ctx, ext->name ); - } -} - - -/** - * Utility function used by drivers to test the verions of other components. - * - * If one of the version requirements is not met, a message is logged using - * \c __driUtilMessage. - * - * \param driver_name Name of the driver. Used in error messages. - * \param driActual Actual DRI version supplied __driCreateNewScreen. - * \param driExpected Minimum DRI version required by the driver. - * \param ddxActual Actual DDX version supplied __driCreateNewScreen. - * \param ddxExpected Minimum DDX minor and range of DDX major version required by the driver. - * \param drmActual Actual DRM version supplied __driCreateNewScreen. - * \param drmExpected Minimum DRM version required by the driver. - * - * \returns \c GL_TRUE if all version requirements are met. Otherwise, - * \c GL_FALSE is returned. - * - * \sa __driCreateNewScreen, driCheckDriDdxDrmVersions2, __driUtilMessage - * - * \todo - * Now that the old \c driCheckDriDdxDrmVersions function is gone, this - * function and \c driCheckDriDdxDrmVersions2 should be renamed. - */ -GLboolean -driCheckDriDdxDrmVersions3(const char * driver_name, - const __DRIversion * driActual, - const __DRIversion * driExpected, - const __DRIversion * ddxActual, - const __DRIutilversion2 * ddxExpected, - const __DRIversion * drmActual, - const __DRIversion * drmExpected) -{ - static const char format[] = "%s DRI driver expected %s version %d.%d.x " - "but got version %d.%d.%d"; - static const char format2[] = "%s DRI driver expected %s version %d-%d.%d.x " - "but got version %d.%d.%d"; - - - /* Check the DRI version */ - if ( (driActual->major != driExpected->major) - || (driActual->minor < driExpected->minor) ) { - __driUtilMessage(format, driver_name, "DRI", - driExpected->major, driExpected->minor, - driActual->major, driActual->minor, driActual->patch); - return GL_FALSE; - } - - /* Check that the DDX driver version is compatible */ - if ( (ddxActual->major < ddxExpected->major_min) - || (ddxActual->major > ddxExpected->major_max) - || (ddxActual->minor < ddxExpected->minor) ) { - __driUtilMessage(format2, driver_name, "DDX", - ddxExpected->major_min, ddxExpected->major_max, ddxExpected->minor, - ddxActual->major, ddxActual->minor, ddxActual->patch); - return GL_FALSE; - } - - /* Check that the DRM driver version is compatible */ - if ( (drmActual->major != drmExpected->major) - || (drmActual->minor < drmExpected->minor) ) { - __driUtilMessage(format, driver_name, "DRM", - drmExpected->major, drmExpected->minor, - drmActual->major, drmActual->minor, drmActual->patch); - return GL_FALSE; - } - - return GL_TRUE; -} - -GLboolean -driCheckDriDdxDrmVersions2(const char * driver_name, - const __DRIversion * driActual, - const __DRIversion * driExpected, - const __DRIversion * ddxActual, - const __DRIversion * ddxExpected, - const __DRIversion * drmActual, - const __DRIversion * drmExpected) -{ - __DRIutilversion2 ddx_expected; - ddx_expected.major_min = ddxExpected->major; - ddx_expected.major_max = ddxExpected->major; - ddx_expected.minor = ddxExpected->minor; - ddx_expected.patch = ddxExpected->patch; - return driCheckDriDdxDrmVersions3(driver_name, driActual, - driExpected, ddxActual, & ddx_expected, - drmActual, drmExpected); -} - - - -GLboolean driClipRectToFramebuffer( const GLframebuffer *buffer, - GLint *x, GLint *y, - GLsizei *width, GLsizei *height ) -{ - /* left clipping */ - if (*x < buffer->_Xmin) { - *width -= (buffer->_Xmin - *x); - *x = buffer->_Xmin; - } - - /* right clipping */ - if (*x + *width > buffer->_Xmax) - *width -= (*x + *width - buffer->_Xmax - 1); - - if (*width <= 0) - return GL_FALSE; - - /* bottom clipping */ - if (*y < buffer->_Ymin) { - *height -= (buffer->_Ymin - *y); - *y = buffer->_Ymin; - } - - /* top clipping */ - if (*y + *height > buffer->_Ymax) - *height -= (*y + *height - buffer->_Ymax - 1); - - if (*height <= 0) - return GL_FALSE; - - return GL_TRUE; -} - - - -/** - * Creates a set of \c __GLcontextModes that a driver will expose. - * - * A set of \c __GLcontextModes will be created based on the supplied - * parameters. The number of modes processed will be 2 * - * \c num_depth_stencil_bits * \c num_db_modes. - * - * For the most part, data is just copied from \c depth_bits, \c stencil_bits, - * \c db_modes, and \c visType into each \c __GLcontextModes element. - * However, the meanings of \c fb_format and \c fb_type require further - * explanation. The \c fb_format specifies which color components are in - * each pixel and what the default order is. For example, \c GL_RGB specifies - * that red, green, blue are available and red is in the "most significant" - * position and blue is in the "least significant". The \c fb_type specifies - * the bit sizes of each component and the actual ordering. For example, if - * \c GL_UNSIGNED_SHORT_5_6_5_REV is specified with \c GL_RGB, bits [15:11] - * are the blue value, bits [10:5] are the green value, and bits [4:0] are - * the red value. - * - * One sublte issue is the combination of \c GL_RGB or \c GL_BGR and either - * of the \c GL_UNSIGNED_INT_8_8_8_8 modes. The resulting mask values in the - * \c __GLcontextModes structure is \b identical to the \c GL_RGBA or - * \c GL_BGRA case, except the \c alphaMask is zero. This means that, as - * far as this routine is concerned, \c GL_RGB with \c GL_UNSIGNED_INT_8_8_8_8 - * still uses 32-bits. - * - * If in doubt, look at the tables used in the function. - * - * \param ptr_to_modes Pointer to a pointer to a linked list of - * \c __GLcontextModes. Upon completion, a pointer to - * the next element to be process will be stored here. - * If the function fails and returns \c GL_FALSE, this - * value will be unmodified, but some elements in the - * linked list may be modified. - * \param fb_format Format of the framebuffer. Currently only \c GL_RGB, - * \c GL_RGBA, \c GL_BGR, and \c GL_BGRA are supported. - * \param fb_type Type of the pixels in the framebuffer. Currently only - * \c GL_UNSIGNED_SHORT_5_6_5, - * \c GL_UNSIGNED_SHORT_5_6_5_REV, - * \c GL_UNSIGNED_INT_8_8_8_8, and - * \c GL_UNSIGNED_INT_8_8_8_8_REV are supported. - * \param depth_bits Array of depth buffer sizes to be exposed. - * \param stencil_bits Array of stencil buffer sizes to be exposed. - * \param num_depth_stencil_bits Number of entries in both \c depth_bits and - * \c stencil_bits. - * \param db_modes Array of buffer swap modes. If an element has a - * value of \c GLX_NONE, then it represents a - * single-buffered mode. Other valid values are - * \c GLX_SWAP_EXCHANGE_OML, \c GLX_SWAP_COPY_OML, and - * \c GLX_SWAP_UNDEFINED_OML. See the - * GLX_OML_swap_method extension spec for more details. - * \param num_db_modes Number of entries in \c db_modes. - * \param visType GLX visual type. Usually either \c GLX_TRUE_COLOR or - * \c GLX_DIRECT_COLOR. - * - * \returns - * \c GL_TRUE on success or \c GL_FALSE on failure. Currently the only - * cause of failure is a bad parameter (i.e., unsupported \c fb_format or - * \c fb_type). - * - * \todo - * There is currently no way to support packed RGB modes (i.e., modes with - * exactly 3 bytes per pixel) or floating-point modes. This could probably - * be done by creating some new, private enums with clever names likes - * \c GL_UNSIGNED_3BYTE_8_8_8, \c GL_4FLOAT_32_32_32_32, - * \c GL_4HALF_16_16_16_16, etc. We can cross that bridge when we come to it. - */ -GLboolean -driFillInModes( __GLcontextModes ** ptr_to_modes, - GLenum fb_format, GLenum fb_type, - const u_int8_t * depth_bits, const u_int8_t * stencil_bits, - unsigned num_depth_stencil_bits, - const GLenum * db_modes, unsigned num_db_modes, - int visType ) -{ - static const u_int8_t bits_table[3][4] = { - /* R G B A */ - { 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 */ - }; - - /* The following arrays are all indexed by the fb_type masked with 0x07. - * Given the four supported fb_type values, this results in valid array - * indices of 3, 4, 5, and 7. - */ - static const u_int32_t masks_table_rgb[8][4] = { - { 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, - { 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, - { 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, - { 0x0000F800, 0x000007E0, 0x0000001F, 0x00000000 }, /* 5_6_5 */ - { 0x0000001F, 0x000007E0, 0x0000F800, 0x00000000 }, /* 5_6_5_REV */ - { 0xFF000000, 0x00FF0000, 0x0000FF00, 0x00000000 }, /* 8_8_8_8 */ - { 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, - { 0x000000FF, 0x0000FF00, 0x00FF0000, 0x00000000 } /* 8_8_8_8_REV */ - }; - - static const u_int32_t masks_table_rgba[8][4] = { - { 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, - { 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, - { 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, - { 0x0000F800, 0x000007E0, 0x0000001F, 0x00000000 }, /* 5_6_5 */ - { 0x0000001F, 0x000007E0, 0x0000F800, 0x00000000 }, /* 5_6_5_REV */ - { 0xFF000000, 0x00FF0000, 0x0000FF00, 0x000000FF }, /* 8_8_8_8 */ - { 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, - { 0x000000FF, 0x0000FF00, 0x00FF0000, 0xFF000000 }, /* 8_8_8_8_REV */ - }; - - static const u_int32_t masks_table_bgr[8][4] = { - { 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, - { 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, - { 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, - { 0x0000001F, 0x000007E0, 0x0000F800, 0x00000000 }, /* 5_6_5 */ - { 0x0000F800, 0x000007E0, 0x0000001F, 0x00000000 }, /* 5_6_5_REV */ - { 0x0000FF00, 0x00FF0000, 0xFF000000, 0x00000000 }, /* 8_8_8_8 */ - { 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, - { 0x00FF0000, 0x0000FF00, 0x000000FF, 0x00000000 }, /* 8_8_8_8_REV */ - }; - - static const u_int32_t masks_table_bgra[8][4] = { - { 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, - { 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, - { 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, - { 0x0000001F, 0x000007E0, 0x0000F800, 0x00000000 }, /* 5_6_5 */ - { 0x0000F800, 0x000007E0, 0x0000001F, 0x00000000 }, /* 5_6_5_REV */ - { 0x0000FF00, 0x00FF0000, 0xFF000000, 0x000000FF }, /* 8_8_8_8 */ - { 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, - { 0x00FF0000, 0x0000FF00, 0x000000FF, 0xFF000000 }, /* 8_8_8_8_REV */ - }; - - static const u_int8_t bytes_per_pixel[8] = { - 0, 0, 0, 2, 2, 4, 0, 4 - }; - - const u_int8_t * bits; - const u_int32_t * masks; - const int index = fb_type & 0x07; - __GLcontextModes * modes = *ptr_to_modes; - unsigned i; - unsigned j; - unsigned k; - - - if ( bytes_per_pixel[ index ] == 0 ) { - fprintf( stderr, "[%s:%u] Framebuffer type 0x%04x has 0 bytes per pixel.\n", - __FUNCTION__, __LINE__, fb_type ); - return GL_FALSE; - } - - - /* 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: - bits = (bytes_per_pixel[ index ] == 2) - ? bits_table[0] : bits_table[1]; - masks = masks_table_rgb[ index ]; - break; - - case GL_RGBA: - bits = (bytes_per_pixel[ index ] == 2) - ? bits_table[0] : bits_table[2]; - masks = masks_table_rgba[ index ]; - break; - - case GL_BGR: - bits = (bytes_per_pixel[ index ] == 2) - ? bits_table[0] : bits_table[1]; - masks = masks_table_bgr[ index ]; - break; - - case GL_BGRA: - bits = (bytes_per_pixel[ index ] == 2) - ? bits_table[0] : bits_table[2]; - masks = masks_table_bgra[ index ]; - break; - - default: - fprintf( stderr, "[%s:%u] Framebuffer format 0x%04x is not GL_RGB, GL_RGBA, GL_BGR, or GL_BGRA.\n", - __FUNCTION__, __LINE__, fb_format ); - return GL_FALSE; - } - - - for ( k = 0 ; k < num_depth_stencil_bits ; k++ ) { - for ( i = 0 ; i < num_db_modes ; i++ ) { - for ( j = 0 ; j < 2 ; j++ ) { - - 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->visualType = visType; - modes->renderType = GLX_RGBA_BIT; - modes->drawableType = GLX_WINDOW_BIT; - 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->haveAccumBuffer = ((modes->accumRedBits + - modes->accumGreenBits + - modes->accumBlueBits + - modes->accumAlphaBits) > 0); - modes->haveDepthBuffer = (modes->depthBits > 0); - modes->haveStencilBuffer = (modes->stencilBits > 0); - - modes = modes->next; - } - } - } - - *ptr_to_modes = modes; - return GL_TRUE; -} diff --git a/nx-X11/extras/Mesa/src/mesa/drivers/dri/common/utils.h b/nx-X11/extras/Mesa/src/mesa/drivers/dri/common/utils.h deleted file mode 100644 index 26d178f74..000000000 --- a/nx-X11/extras/Mesa/src/mesa/drivers/dri/common/utils.h +++ /dev/null @@ -1,119 +0,0 @@ -/* - * (C) Copyright IBM Corporation 2002, 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 - * VA LINUX SYSTEM, 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. - * - * Authors: - * Ian Romanick - */ -/* $XFree86:$ */ - -#ifndef DRI_DEBUG_H -#define DRI_DEBUG_H - -#include "context.h" -#include "dri_util.h" - -struct dri_debug_control { - const char * string; - unsigned flag; -}; - -/** - * Description of the entry-points and parameters for an OpenGL function. - */ -struct dri_extension_function { - /** - * \brief - * Packed string describing the parameter signature and the entry-point - * names. - * - * The parameter signature and the names of the entry-points for this - * function are packed into a single string. The substrings are - * separated by NUL characters. The whole string is terminated by - * two consecutive NUL characters. - */ - const char * strings; - - - /** - * Location in the remap table where the dispatch offset should be - * stored. - */ - int remap_index; - - /** - * Offset of the function in the dispatch table. - */ - int offset; -}; - -/** - * Description of the API for an extension to OpenGL. - */ -struct dri_extension { - /** - * Name of the extension. - */ - const char * name; - - - /** - * Pointer to a list of \c dri_extension_function structures. The list - * is terminated by a structure with a \c NULL - * \c dri_extension_function::strings pointer. - */ - const struct dri_extension_function * functions; -}; - -extern unsigned driParseDebugString( const char * debug, - const struct dri_debug_control * control ); - -extern unsigned driGetRendererString( char * buffer, - const char * hardware_name, const char * driver_date, GLuint agp_mode ); - -extern void driInitExtensions( GLcontext * ctx, - const struct dri_extension * card_extensions, GLboolean enable_imaging ); - -extern void driInitSingleExtension( GLcontext * ctx, - const struct dri_extension * ext ); - -extern GLboolean driCheckDriDdxDrmVersions2(const char * driver_name, - const __DRIversion * driActual, const __DRIversion * driExpected, - const __DRIversion * ddxActual, const __DRIversion * ddxExpected, - const __DRIversion * drmActual, const __DRIversion * drmExpected); - -extern GLboolean driCheckDriDdxDrmVersions3(const char * driver_name, - const __DRIversion * driActual, const __DRIversion * driExpected, - const __DRIversion * ddxActual, const __DRIutilversion2 * ddxExpected, - const __DRIversion * drmActual, const __DRIversion * drmExpected); - -extern GLboolean driClipRectToFramebuffer( const GLframebuffer *buffer, - GLint *x, GLint *y, - GLsizei *width, GLsizei *height ); - -extern GLboolean driFillInModes( __GLcontextModes ** modes, - GLenum fb_format, GLenum fb_type, - const u_int8_t * depth_bits, const u_int8_t * stencil_bits, - unsigned num_depth_stencil_bits, - const GLenum * db_modes, unsigned num_db_modes, int visType ); - -#endif /* DRI_DEBUG_H */ diff --git a/nx-X11/extras/Mesa/src/mesa/drivers/dri/common/vblank.c b/nx-X11/extras/Mesa/src/mesa/drivers/dri/common/vblank.c deleted file mode 100644 index eebe42d96..000000000 --- a/nx-X11/extras/Mesa/src/mesa/drivers/dri/common/vblank.c +++ /dev/null @@ -1,347 +0,0 @@ -/* -*- mode: c; c-basic-offset: 3 -*- */ -/* - * (c) Copyright IBM Corporation 2002 - * 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 - * VA LINUX SYSTEM, 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. - * - * Authors: - * Ian Romanick - */ -/* $XFree86:$ */ - -#include "glheader.h" -#include "xf86drm.h" -#include "mtypes.h" -#include "macros.h" -#include "dd.h" -#include "vblank.h" -#include "xmlpool.h" - - -/****************************************************************************/ -/** - * Get the current MSC refresh counter. - * - * Stores the 64-bit count of vertical refreshes since some (arbitrary) - * point in time in \c count. Unless the value wraps around, which it - * may, it will never decrease. - * - * \warning This function is called from \c glXGetVideoSyncSGI, which expects - * a \c count of type \c unsigned (32-bit), and \c glXGetSyncValuesOML, which - * expects a \c count of type \c int64_t (signed 64-bit). The kernel ioctl - * currently always returns a \c sequence of type \c unsigned. - * - * \param priv Pointer to the DRI screen private struct. - * \param count Storage to hold MSC counter. - * \return Zero is returned on success. A negative errno value - * is returned on failure. - */ -int driGetMSC32( __DRIscreenPrivate * priv, int64_t * count ) -{ - drmVBlank vbl; - int ret; - - /* Don't wait for anything. Just get the current refresh count. */ - - vbl.request.type = DRM_VBLANK_RELATIVE; - vbl.request.sequence = 0; - - ret = drmWaitVBlank( priv->fd, &vbl ); - *count = (int64_t)vbl.reply.sequence; - - return ret; -} - - -/****************************************************************************/ -/** - * Wait for a specified refresh count. This implements most of the - * functionality of \c glXWaitForMscOML from the GLX_OML_sync_control spec. - * Waits for the \c target_msc refresh. If that has already passed, it - * waits until \f$(MSC \bmod divisor)\f$ is equal to \c remainder. If - * \c target_msc is 0, use the behavior of glXWaitVideoSyncSGI(), which - * omits the initial check against a target MSC value. - * - * This function is actually something of a hack. The problem is that, at - * the time of this writing, none of the existing DRM modules support an - * ioctl that returns a 64-bit count (at least not on 32-bit platforms). - * However, this function exists to support a GLX function that requires - * the use of 64-bit counts. As such, there is a little bit of ugly - * hackery at the end of this function to make the 32-bit count act like - * a 64-bit count. There are still some cases where this will break, but - * I believe it catches the most common cases. - * - * The real solution is to provide an ioctl that uses a 64-bit count. - * - * \param dpy Pointer to the \c Display. - * \param priv Pointer to the DRI drawable private. - * \param target_msc Desired refresh count to wait for. A value of 0 - * means to use the glXWaitVideoSyncSGI() behavior. - * \param divisor MSC divisor if \c target_msc is already reached. - * \param remainder Desired MSC remainder if \c target_msc is already - * reached. - * \param msc Buffer to hold MSC when done waiting. - * - * \return Zero on success or \c GLX_BAD_CONTEXT on failure. - */ - -int driWaitForMSC32( __DRIdrawablePrivate *priv, - int64_t target_msc, int64_t divisor, int64_t remainder, - int64_t * msc ) -{ - drmVBlank vbl; - - - if ( divisor != 0 ) { - unsigned int target = (unsigned int)target_msc; - unsigned int next = target; - unsigned int r; - int dont_wait = (target_msc == 0); - - do { - /* dont_wait means we're using the glXWaitVideoSyncSGI() behavior. - * The first time around, just get the current count and proceed - * to the test for (MSC % divisor) == remainder. - */ - vbl.request.type = dont_wait ? DRM_VBLANK_RELATIVE : - DRM_VBLANK_ABSOLUTE; - vbl.request.sequence = next; - - if ( drmWaitVBlank( priv->driScreenPriv->fd, &vbl ) != 0 ) { - /* FIXME: This doesn't seem like the right thing to return here. - */ - return GLX_BAD_CONTEXT; - } - - dont_wait = 0; - if (target_msc != 0 && vbl.reply.sequence == target) - break; - - /* Assuming the wait-done test fails, the next refresh to wait for - * will be one that satisfies (MSC % divisor) == remainder. The - * value (MSC - (MSC % divisor) + remainder) is the refresh value - * closest to the current value that would satisfy the equation. - * If this refresh has already happened, we add divisor to obtain - * the next refresh after the current one that will satisfy it. - */ - r = (vbl.reply.sequence % (unsigned int)divisor); - next = (vbl.reply.sequence - r + (unsigned int)remainder); - if (next <= vbl.reply.sequence) next += (unsigned int)divisor; - - } while ( r != (unsigned int)remainder ); - } - else { - /* If the \c divisor is zero, just wait until the MSC is greater - * than or equal to \c target_msc. - */ - - vbl.request.type = DRM_VBLANK_ABSOLUTE; - vbl.request.sequence = target_msc; - - if ( drmWaitVBlank( priv->driScreenPriv->fd, &vbl ) != 0 ) { - /* FIXME: This doesn't seem like the right thing to return here. - */ - return GLX_BAD_CONTEXT; - } - } - - *msc = (target_msc & 0xffffffff00000000LL); - *msc |= vbl.reply.sequence; - if ( *msc < target_msc ) { - *msc += 0x0000000100000000LL; - } - - return 0; -} - - -/****************************************************************************/ -/** - * Gets a set of default vertical-blank-wait flags based on the internal GLX - * API version and several configuration options. - */ - -GLuint driGetDefaultVBlankFlags( const driOptionCache *optionCache ) -{ - GLuint flags = VBLANK_FLAG_INTERVAL; - int vblank_mode; - - - if ( driCheckOption( optionCache, "vblank_mode", DRI_ENUM ) ) - vblank_mode = driQueryOptioni( optionCache, "vblank_mode" ); - else - vblank_mode = DRI_CONF_VBLANK_DEF_INTERVAL_1; - - switch (vblank_mode) { - case DRI_CONF_VBLANK_NEVER: - flags = 0; - break; - case DRI_CONF_VBLANK_DEF_INTERVAL_0: - break; - case DRI_CONF_VBLANK_DEF_INTERVAL_1: - flags |= VBLANK_FLAG_THROTTLE; - break; - case DRI_CONF_VBLANK_ALWAYS_SYNC: - flags |= VBLANK_FLAG_SYNC; - break; - } - - return flags; -} - - -/****************************************************************************/ -/** - * Sets the default swap interval when the drawable is first bound to a - * direct rendering context. - */ - -void driDrawableInitVBlank( __DRIdrawablePrivate *priv, GLuint flags ) -{ - if ( priv->pdraw->swap_interval == (unsigned)-1 ) { - priv->pdraw->swap_interval = (flags & VBLANK_FLAG_THROTTLE) != 0 ? 1 : 0; - } -} - - -/****************************************************************************/ -/** - * Wrapper to call \c drmWaitVBlank. The main purpose of this function is to - * wrap the error message logging. The error message should only be logged - * the first time the \c drmWaitVBlank fails. If \c drmWaitVBlank is - * successful, \c vbl_seq will be set the sequence value in the reply. - * - * \param vbl Pointer to drmVBlank packet desribing how to wait. - * \param vbl_seq Location to store the current refresh counter. - * \param fd File descriptor use to call into the DRM. - * \return Zero on success or -1 on failure. - */ - -static int do_wait( drmVBlank * vbl, GLuint * vbl_seq, int fd ) -{ - int ret; - - - ret = drmWaitVBlank( fd, vbl ); - if ( ret != 0 ) { - static GLboolean first_time = GL_TRUE; - - if ( first_time ) { - fprintf(stderr, - "%s: drmWaitVBlank returned %d, IRQs don't seem to be" - " working correctly.\nTry running with LIBGL_THROTTLE_REFRESH" - " and LIBL_SYNC_REFRESH unset.\n", __FUNCTION__, ret); - first_time = GL_FALSE; - } - - return -1; - } - - *vbl_seq = vbl->reply.sequence; - return 0; -} - - -/****************************************************************************/ -/** - * Waits for the vertical blank for use with glXSwapBuffers. - * - * \param vbl_seq Vertical blank sequence number (MSC) after the last buffer - * swap. Updated after this wait. - * \param flags \c VBLANK_FLAG bits that control how long to wait. - * \param missed_deadline Set to \c GL_TRUE if the MSC after waiting is later - * than the "target" based on \c flags. The idea is that if - * \c missed_deadline is set, then the application is not - * achieving its desired framerate. - * \return Zero on success, -1 on error. - */ - -int -driWaitForVBlank( const __DRIdrawablePrivate *priv, GLuint * vbl_seq, - GLuint flags, GLboolean * missed_deadline ) -{ - drmVBlank vbl; - unsigned original_seq; - unsigned deadline; - unsigned interval; - - - *missed_deadline = GL_FALSE; - if ( (flags & (VBLANK_FLAG_INTERVAL | - VBLANK_FLAG_THROTTLE | - VBLANK_FLAG_SYNC)) == 0 || - (flags & VBLANK_FLAG_NO_IRQ) != 0 ) { - return 0; - } - - - /* VBLANK_FLAG_SYNC means to wait for at least one vertical blank. If - * that flag is not set, do a fake wait for zero vertical blanking - * periods so that we can get the current MSC. - * - * VBLANK_FLAG_INTERVAL and VBLANK_FLAG_THROTTLE mean to wait for at - * least one vertical blank since the last wait. Since do_wait modifies - * vbl_seq, we have to save the original value of vbl_seq for the - * VBLANK_FLAG_INTERVAL / VBLANK_FLAG_THROTTLE calculation later. - */ - - original_seq = *vbl_seq; - - vbl.request.sequence = ((flags & VBLANK_FLAG_SYNC) != 0) ? 1 : 0; - vbl.request.type = DRM_VBLANK_RELATIVE; - - if ( do_wait( & vbl, vbl_seq, priv->driScreenPriv->fd ) != 0 ) { - return -1; - } - - - vbl.request.type = DRM_VBLANK_ABSOLUTE; - - if ( (flags & VBLANK_FLAG_INTERVAL) != 0 ) { - interval = priv->pdraw->swap_interval; - /* this must have been initialized when the drawable was first bound - * to a direct rendering context. */ - assert ( interval != (unsigned)-1 ); - } - else if ( (flags & VBLANK_FLAG_THROTTLE) != 0 ) { - interval = 1; - } - else { - interval = 0; - } - - - /* Wait until the next vertical blank. If the interval is zero, then - * the deadline is one vertical blank after the previous wait. - */ - - vbl.request.sequence = original_seq + interval; - if ( *vbl_seq < vbl.request.sequence ) { - if ( do_wait( & vbl, vbl_seq, priv->driScreenPriv->fd ) != 0 ) { - return -1; - } - } - - deadline = original_seq + ((interval == 0) ? 1 : interval); - *missed_deadline = ( *vbl_seq > deadline ); - - return 0; -} diff --git a/nx-X11/extras/Mesa/src/mesa/drivers/dri/common/vblank.h b/nx-X11/extras/Mesa/src/mesa/drivers/dri/common/vblank.h deleted file mode 100644 index 3dc965def..000000000 --- a/nx-X11/extras/Mesa/src/mesa/drivers/dri/common/vblank.h +++ /dev/null @@ -1,69 +0,0 @@ -/* -*- mode: c; c-basic-offset: 3 -*- */ -/* - * (c) Copyright IBM Corporation 2002 - * 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 - * VA LINUX SYSTEM, 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. - * - * Authors: - * Ian Romanick - */ -/* $XFree86:$ */ - -#ifndef DRI_VBLANK_H -#define DRI_VBLANK_H - -#include "context.h" -#include "dri_util.h" -#include "xmlconfig.h" - -#define VBLANK_FLAG_INTERVAL (1U << 0) /* Respect the swap_interval setting - */ -#define VBLANK_FLAG_THROTTLE (1U << 1) /* Wait 1 refresh since last call. - */ -#define VBLANK_FLAG_SYNC (1U << 2) /* Sync to the next refresh. - */ -#define VBLANK_FLAG_NO_IRQ (1U << 7) /* DRM has no IRQ to wait on. - */ - -extern int driGetMSC32( __DRIscreenPrivate * priv, int64_t * count ); -extern int driWaitForMSC32( __DRIdrawablePrivate *priv, - int64_t target_msc, int64_t divisor, int64_t remainder, int64_t * msc ); -extern GLuint driGetDefaultVBlankFlags( const driOptionCache *optionCache ); -extern void driDrawableInitVBlank ( __DRIdrawablePrivate *priv, GLuint flags ); -extern int driWaitForVBlank( const __DRIdrawablePrivate *priv, - GLuint * vbl_seq, GLuint flags, GLboolean * missed_deadline ); - -#undef usleep -#include /* for usleep() */ -#include /* for sched_yield() */ - -#ifdef linux -#include /* for sched_yield() */ -#endif - -#define DO_USLEEP(nr) \ - do { \ - if (0) fprintf(stderr, "%s: usleep for %u\n", __FUNCTION__, nr ); \ - if (1) usleep( nr ); \ - sched_yield(); \ - } while( 0 ) - -#endif /* DRI_VBLANK_H */ diff --git a/nx-X11/extras/Mesa/src/mesa/drivers/dri/common/xmlconfig.c b/nx-X11/extras/Mesa/src/mesa/drivers/dri/common/xmlconfig.c deleted file mode 100644 index b635894fe..000000000 --- a/nx-X11/extras/Mesa/src/mesa/drivers/dri/common/xmlconfig.c +++ /dev/null @@ -1,1002 +0,0 @@ -/* - * XML DRI client-side driver configuration - * Copyright (C) 2003 Felix Kuehling - * - * 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 - * FELIX KUEHLING, OR ANY OTHER CONTRIBUTORS 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 xmlconfig.c - * \brief Driver-independent client-side part of the XML configuration - * \author Felix Kuehling - */ - -#include "glheader.h" - -#include -#include -#include -#include -#include -#include -#include "imports.h" -#include "dri_util.h" -#include "xmlconfig.h" - -/* - * OS dependent ways of getting the name of the running program - */ -#if (defined(__unix__) || defined(unix)) && !defined(USG) -#include -#endif - -#undef GET_PROGRAM_NAME - -#if (defined(__GNU_LIBRARY__) || defined(__GLIBC__)) && !defined(__UCLIBC__) -# if !defined(__GLIBC__) || (__GLIBC__ < 2) -/* These aren't declared in any libc5 header */ -extern char *program_invocation_name, *program_invocation_short_name; -# endif -# define GET_PROGRAM_NAME() program_invocation_short_name -#elif defined(__FreeBSD__) && (__FreeBSD__ >= 2) -# include -# if (__FreeBSD_version >= 440000) -# include -# define GET_PROGRAM_NAME() getprogname() -# endif -#elif defined(__NetBSD__) && defined(__NetBSD_Version) && (__NetBSD_Version >= 106000100) -# include -# define GET_PROGRAM_NAME() getprogname() -#endif - -#if !defined(GET_PROGRAM_NAME) -# if defined(OpenBSD) || defined(NetBSD) || defined(__UCLIBC__) -/* This is a hack. It's said to work on OpenBSD, NetBSD and GNU. - * Rogelio M.Serrano Jr. reported it's also working with UCLIBC. It's - * used as a last resort, if there is no documented facility available. */ -static const char *__getProgramName () { - extern const char *__progname; - char * arg = strrchr(__progname, '/'); - if (arg) - return arg+1; - else - return __progname; -} -# define GET_PROGRAM_NAME() __getProgramName() -# else -# define GET_PROGRAM_NAME() "" -# warning "Per application configuration won't work with your OS version." -# endif -#endif - -/** \brief Find an option in an option cache with the name as key */ -static GLuint findOption (const driOptionCache *cache, const char *name) { - GLuint len = strlen (name); - GLuint size = 1 << cache->tableSize, mask = size - 1; - GLuint hash = 0; - GLuint i, shift; - - /* compute a hash from the variable length name */ - for (i = 0, shift = 0; i < len; ++i, shift = (shift+8) & 31) - hash += (GLuint)name[i] << shift; - hash *= hash; - hash = (hash >> (16-cache->tableSize/2)) & mask; - - /* this is just the starting point of the linear search for the option */ - for (i = 0; i < size; ++i, hash = (hash+1) & mask) { - /* if we hit an empty entry then the option is not defined (yet) */ - if (cache->info[hash].name == 0) - break; - else if (!strcmp (name, cache->info[hash].name)) - break; - } - /* this assertion fails if the hash table is full */ - assert (i < size); - - return hash; -} - -/** \brief Count the real number of options in an option cache */ -static GLuint countOptions (const driOptionCache *cache) { - GLuint size = 1 << cache->tableSize; - GLuint i, count = 0; - for (i = 0; i < size; ++i) - if (cache->info[i].name) - count++; - return count; -} - -/** \brief Like strdup but using MALLOC and with error checking. */ -#define XSTRDUP(dest,source) do { \ - GLuint len = strlen (source); \ - if (!(dest = MALLOC (len+1))) { \ - fprintf (stderr, "%s: %d: out of memory.\n", __FILE__, __LINE__); \ - abort(); \ - } \ - memcpy (dest, source, len+1); \ -} while (0) - -static int compare (const void *a, const void *b) { - return strcmp (*(char *const*)a, *(char *const*)b); -} -/** \brief Binary search in a string array. */ -static GLuint bsearchStr (const XML_Char *name, - const XML_Char *elems[], GLuint count) { - const XML_Char **found; - found = bsearch (&name, elems, count, sizeof (XML_Char *), compare); - if (found) - return found - elems; - else - return count; -} - -/** \brief Locale-independent integer parser. - * - * Works similar to strtol. Leading space is NOT skipped. The input - * number may have an optional sign. Radix is specified by base. If - * base is 0 then decimal is assumed unless the input number is - * prefixed by 0x or 0X for hexadecimal or 0 for octal. After - * returning tail points to the first character that is not part of - * the integer number. If no number was found then tail points to the - * start of the input string. */ -static GLint strToI (const XML_Char *string, const XML_Char **tail, int base) { - GLint radix = base == 0 ? 10 : base; - GLint result = 0; - GLint sign = 1; - GLboolean numberFound = GL_FALSE; - const XML_Char *start = string; - - assert (radix >= 2 && radix <= 36); - - if (*string == '-') { - sign = -1; - string++; - } else if (*string == '+') - string++; - if (base == 0 && *string == '0') { - numberFound = GL_TRUE; - if (*(string+1) == 'x' || *(string+1) == 'X') { - radix = 16; - string += 2; - } else { - radix = 8; - string++; - } - } - do { - GLint digit = -1; - if (radix <= 10) { - if (*string >= '0' && *string < '0' + radix) - digit = *string - '0'; - } else { - if (*string >= '0' && *string <= '9') - digit = *string - '0'; - else if (*string >= 'a' && *string < 'a' + radix - 10) - digit = *string - 'a' + 10; - else if (*string >= 'A' && *string < 'A' + radix - 10) - digit = *string - 'A' + 10; - } - if (digit != -1) { - numberFound = GL_TRUE; - result = radix*result + digit; - string++; - } else - break; - } while (GL_TRUE); - *tail = numberFound ? string : start; - return sign * result; -} - -/** \brief Locale-independent floating-point parser. - * - * Works similar to strtod. Leading space is NOT skipped. The input - * number may have an optional sign. '.' is interpreted as decimal - * point and may occor at most once. Optionally the number may end in - * [eE], where is an integer as recognized by - * strToI. In that case the result is number * 10^exponent. After - * returning tail points to the first character that is not part of - * the floating point number. If no number was found then tail points - * to the start of the input string. - * - * Uses two passes for maximum accuracy. */ -static GLfloat strToF (const XML_Char *string, const XML_Char **tail) { - GLint nDigits = 0, pointPos, exponent; - GLfloat sign = 1.0f, result = 0.0f, scale; - const XML_Char *start = string, *numStart; - - /* sign */ - if (*string == '-') { - sign = -1.0f; - string++; - } else if (*string == '+') - string++; - - /* first pass: determine position of decimal point, number of - * digits, exponent and the end of the number. */ - numStart = string; - while (*string >= '0' && *string <= '9') { - string++; - nDigits++; - } - pointPos = nDigits; - if (*string == '.') { - string++; - while (*string >= '0' && *string <= '9') { - string++; - nDigits++; - } - } - if (nDigits == 0) { - /* no digits, no number */ - *tail = start; - return 0.0f; - } - *tail = string; - if (*string == 'e' || *string == 'E') { - const XML_Char *expTail; - exponent = strToI (string+1, &expTail, 10); - if (expTail == string+1) - exponent = 0; - else - *tail = expTail; - } else - exponent = 0; - string = numStart; - - /* scale of the first digit */ - scale = sign * (GLfloat)pow (10.0, (GLdouble)(pointPos-1 + exponent)); - - /* second pass: parse digits */ - do { - if (*string != '.') { - assert (*string >= '0' && *string <= '9'); - result += scale * (GLfloat)(*string - '0'); - scale *= 0.1f; - nDigits--; - } - string++; - } while (nDigits > 0); - - return result; -} - -/** \brief Parse a value of a given type. */ -static GLboolean parseValue (driOptionValue *v, driOptionType type, - const XML_Char *string) { - const XML_Char *tail; - /* skip leading white-space */ - string += strspn (string, " \f\n\r\t\v"); - switch (type) { - case DRI_BOOL: - if (!strcmp (string, "false")) { - v->_bool = GL_FALSE; - tail = string + 5; - } else if (!strcmp (string, "true")) { - v->_bool = GL_TRUE; - tail = string + 4; - } - else - return GL_FALSE; - break; - case DRI_ENUM: /* enum is just a special integer */ - case DRI_INT: - v->_int = strToI (string, &tail, 0); - break; - case DRI_FLOAT: - v->_float = strToF (string, &tail); - break; - } - - if (tail == string) - return GL_FALSE; /* empty string (or containing only white-space) */ - /* skip trailing white space */ - if (*tail) - tail += strspn (tail, " \f\n\r\t\v"); - if (*tail) - return GL_FALSE; /* something left over that is not part of value */ - - return GL_TRUE; -} - -/** \brief Parse a list of ranges of type info->type. */ -static GLboolean parseRanges (driOptionInfo *info, const XML_Char *string) { - XML_Char *cp, *range; - GLuint nRanges, i; - driOptionRange *ranges; - - XSTRDUP (cp, string); - /* pass 1: determine the number of ranges (number of commas + 1) */ - range = cp; - for (nRanges = 1; *range; ++range) - if (*range == ',') - ++nRanges; - - if ((ranges = MALLOC (nRanges*sizeof(driOptionRange))) == NULL) { - fprintf (stderr, "%s: %d: out of memory.\n", __FILE__, __LINE__); - abort(); - } - - /* pass 2: parse all ranges into preallocated array */ - range = cp; - for (i = 0; i < nRanges; ++i) { - XML_Char *end, *sep; - assert (range); - end = strchr (range, ','); - if (end) - *end = '\0'; - sep = strchr (range, ':'); - if (sep) { /* non-empty interval */ - *sep = '\0'; - if (!parseValue (&ranges[i].start, info->type, range) || - !parseValue (&ranges[i].end, info->type, sep+1)) - break; - if (info->type == DRI_INT && - ranges[i].start._int > ranges[i].end._int) - break; - if (info->type == DRI_FLOAT && - ranges[i].start._float > ranges[i].end._float) - break; - } else { /* empty interval */ - if (!parseValue (&ranges[i].start, info->type, range)) - break; - ranges[i].end = ranges[i].start; - } - if (end) - range = end+1; - else - range = NULL; - } - FREE (cp); - if (i < nRanges) { - FREE (ranges); - return GL_FALSE; - } else - assert (range == NULL); - - info->nRanges = nRanges; - info->ranges = ranges; - return GL_TRUE; -} - -/** \brief Check if a value is in one of info->ranges. */ -static GLboolean checkValue (const driOptionValue *v, const driOptionInfo *info) { - GLuint i; - assert (info->type != DRI_BOOL); /* should be caught by the parser */ - if (info->nRanges == 0) - return GL_TRUE; - switch (info->type) { - case DRI_ENUM: /* enum is just a special integer */ - case DRI_INT: - for (i = 0; i < info->nRanges; ++i) - if (v->_int >= info->ranges[i].start._int && - v->_int <= info->ranges[i].end._int) - return GL_TRUE; - break; - case DRI_FLOAT: - for (i = 0; i < info->nRanges; ++i) - if (v->_float >= info->ranges[i].start._float && - v->_float <= info->ranges[i].end._float) - return GL_TRUE; - break; - default: - assert (0); /* should never happen */ - } - return GL_FALSE; -} - -/** \brief Output a warning message. */ -#define XML_WARNING1(msg) do {\ - __driUtilMessage ("Warning in %s line %d, column %d: "msg, data->name, \ - XML_GetCurrentLineNumber(data->parser), \ - XML_GetCurrentColumnNumber(data->parser)); \ -} while (0) -#define XML_WARNING(msg,args...) do { \ - __driUtilMessage ("Warning in %s line %d, column %d: "msg, data->name, \ - XML_GetCurrentLineNumber(data->parser), \ - XML_GetCurrentColumnNumber(data->parser), \ - args); \ -} while (0) -/** \brief Output an error message. */ -#define XML_ERROR1(msg) do { \ - __driUtilMessage ("Error in %s line %d, column %d: "msg, data->name, \ - XML_GetCurrentLineNumber(data->parser), \ - XML_GetCurrentColumnNumber(data->parser)); \ -} while (0) -#define XML_ERROR(msg,args...) do { \ - __driUtilMessage ("Error in %s line %d, column %d: "msg, data->name, \ - XML_GetCurrentLineNumber(data->parser), \ - XML_GetCurrentColumnNumber(data->parser), \ - args); \ -} while (0) -/** \brief Output a fatal error message and abort. */ -#define XML_FATAL1(msg) do { \ - fprintf (stderr, "Fatal error in %s line %d, column %d: "msg"\n", \ - data->name, \ - XML_GetCurrentLineNumber(data->parser), \ - XML_GetCurrentColumnNumber(data->parser)); \ - abort();\ -} while (0) -#define XML_FATAL(msg,args...) do { \ - fprintf (stderr, "Fatal error in %s line %d, column %d: "msg"\n", \ - data->name, \ - XML_GetCurrentLineNumber(data->parser), \ - XML_GetCurrentColumnNumber(data->parser), \ - args); \ - abort();\ -} while (0) - -/** \brief Parser context for __driConfigOptions. */ -struct OptInfoData { - const char *name; - XML_Parser parser; - driOptionCache *cache; - GLboolean inDriInfo; - GLboolean inSection; - GLboolean inDesc; - GLboolean inOption; - GLboolean inEnum; - int curOption; -}; - -/** \brief Elements in __driConfigOptions. */ -enum OptInfoElem { - OI_DESCRIPTION = 0, OI_DRIINFO, OI_ENUM, OI_OPTION, OI_SECTION, OI_COUNT -}; -static const XML_Char *OptInfoElems[] = { - "description", "driinfo", "enum", "option", "section" -}; - -/** \brief Parse attributes of an enum element. - * - * We're not actually interested in the data. Just make sure this is ok - * for external configuration tools. - */ -static void parseEnumAttr (struct OptInfoData *data, const XML_Char **attr) { - GLuint i; - const XML_Char *value = NULL, *text = NULL; - driOptionValue v; - GLuint opt = data->curOption; - for (i = 0; attr[i]; i += 2) { - if (!strcmp (attr[i], "value")) value = attr[i+1]; - else if (!strcmp (attr[i], "text")) text = attr[i+1]; - else XML_FATAL("illegal enum attribute: %s.", attr[i]); - } - if (!value) XML_FATAL1 ("value attribute missing in enum."); - if (!text) XML_FATAL1 ("text attribute missing in enum."); - if (!parseValue (&v, data->cache->info[opt].type, value)) - XML_FATAL ("illegal enum value: %s.", value); - if (!checkValue (&v, &data->cache->info[opt])) - XML_FATAL ("enum value out of valid range: %s.", value); -} - -/** \brief Parse attributes of a description element. - * - * We're not actually interested in the data. Just make sure this is ok - * for external configuration tools. - */ -static void parseDescAttr (struct OptInfoData *data, const XML_Char **attr) { - GLuint i; - const XML_Char *lang = NULL, *text = NULL; - for (i = 0; attr[i]; i += 2) { - if (!strcmp (attr[i], "lang")) lang = attr[i+1]; - else if (!strcmp (attr[i], "text")) text = attr[i+1]; - else XML_FATAL("illegal description attribute: %s.", attr[i]); - } - if (!lang) XML_FATAL1 ("lang attribute missing in description."); - if (!text) XML_FATAL1 ("text attribute missing in description."); -} - -/** \brief Parse attributes of an option element. */ -static void parseOptInfoAttr (struct OptInfoData *data, const XML_Char **attr) { - enum OptAttr {OA_DEFAULT = 0, OA_NAME, OA_TYPE, OA_VALID, OA_COUNT}; - static const XML_Char *optAttr[] = {"default", "name", "type", "valid"}; - const XML_Char *attrVal[OA_COUNT] = {NULL, NULL, NULL, NULL}; - const char *defaultVal; - driOptionCache *cache = data->cache; - GLuint opt, i; - for (i = 0; attr[i]; i += 2) { - GLuint attrName = bsearchStr (attr[i], optAttr, OA_COUNT); - if (attrName >= OA_COUNT) - XML_FATAL ("illegal option attribute: %s", attr[i]); - attrVal[attrName] = attr[i+1]; - } - if (!attrVal[OA_NAME]) XML_FATAL1 ("name attribute missing in option."); - if (!attrVal[OA_TYPE]) XML_FATAL1 ("type attribute missing in option."); - if (!attrVal[OA_DEFAULT]) XML_FATAL1 ("default attribute missing in option."); - - opt = findOption (cache, attrVal[OA_NAME]); - if (cache->info[opt].name) - XML_FATAL ("option %s redefined.", attrVal[OA_NAME]); - data->curOption = opt; - - XSTRDUP (cache->info[opt].name, attrVal[OA_NAME]); - - if (!strcmp (attrVal[OA_TYPE], "bool")) - cache->info[opt].type = DRI_BOOL; - else if (!strcmp (attrVal[OA_TYPE], "enum")) - cache->info[opt].type = DRI_ENUM; - else if (!strcmp (attrVal[OA_TYPE], "int")) - cache->info[opt].type = DRI_INT; - else if (!strcmp (attrVal[OA_TYPE], "float")) - cache->info[opt].type = DRI_FLOAT; - else - XML_FATAL ("illegal type in option: %s.", attrVal[OA_TYPE]); - - defaultVal = getenv (cache->info[opt].name); - if (defaultVal != NULL) { - /* don't use XML_WARNING, we want the user to see this! */ - fprintf (stderr, - "ATTENTION: default value of option %s overridden by environment.\n", - cache->info[opt].name); - } else - defaultVal = attrVal[OA_DEFAULT]; - if (!parseValue (&cache->values[opt], cache->info[opt].type, defaultVal)) - XML_FATAL ("illegal default value: %s.", defaultVal); - - if (attrVal[OA_VALID]) { - if (cache->info[opt].type == DRI_BOOL) - XML_FATAL1 ("boolean option with valid attribute."); - if (!parseRanges (&cache->info[opt], attrVal[OA_VALID])) - XML_FATAL ("illegal valid attribute: %s.", attrVal[OA_VALID]); - if (!checkValue (&cache->values[opt], &cache->info[opt])) - XML_FATAL ("default value out of valid range '%s': %s.", - attrVal[OA_VALID], defaultVal); - } else if (cache->info[opt].type == DRI_ENUM) { - XML_FATAL1 ("valid attribute missing in option (mandatory for enums)."); - } else { - cache->info[opt].nRanges = 0; - cache->info[opt].ranges = NULL; - } -} - -/** \brief Handler for start element events. */ -static void optInfoStartElem (void *userData, const XML_Char *name, - const XML_Char **attr) { - struct OptInfoData *data = (struct OptInfoData *)userData; - enum OptInfoElem elem = bsearchStr (name, OptInfoElems, OI_COUNT); - switch (elem) { - case OI_DRIINFO: - if (data->inDriInfo) - XML_FATAL1 ("nested elements."); - if (attr[0]) - XML_FATAL1 ("attributes specified on element."); - data->inDriInfo = GL_TRUE; - break; - case OI_SECTION: - if (!data->inDriInfo) - XML_FATAL1 ("
must be inside ."); - if (data->inSection) - XML_FATAL1 ("nested
elements."); - if (attr[0]) - XML_FATAL1 ("attributes specified on
element."); - data->inSection = GL_TRUE; - break; - case OI_DESCRIPTION: - if (!data->inSection && !data->inOption) - XML_FATAL1 (" must be inside or inDesc) - XML_FATAL1 ("nested elements."); - data->inDesc = GL_TRUE; - parseDescAttr (data, attr); - break; - case OI_OPTION: - if (!data->inSection) - XML_FATAL1 ("