[MESA]
authorJérôme Gardou <jerome.gardou@reactos.org>
Mon, 7 Oct 2013 14:57:57 +0000 (14:57 +0000)
committerJérôme Gardou <jerome.gardou@reactos.org>
Mon, 7 Oct 2013 14:57:57 +0000 (14:57 +0000)
 - leaner build part 14 of X
 - Flatten source tree
CORE-7499

svn path=/trunk/; revision=60580

390 files changed:
reactos/dll/opengl/CMakeLists.txt
reactos/dll/opengl/mesa/CMakeLists.txt
reactos/dll/opengl/mesa/drivers/common/CMakeLists.txt [moved from reactos/dll/opengl/mesa/src/mesa/drivers/common/CMakeLists.txt with 100% similarity]
reactos/dll/opengl/mesa/drivers/common/driverfuncs.c [moved from reactos/dll/opengl/mesa/src/mesa/drivers/common/driverfuncs.c with 100% similarity]
reactos/dll/opengl/mesa/drivers/common/driverfuncs.h [moved from reactos/dll/opengl/mesa/src/mesa/drivers/common/driverfuncs.h with 100% similarity]
reactos/dll/opengl/mesa/drivers/common/meta.c [moved from reactos/dll/opengl/mesa/src/mesa/drivers/common/meta.c with 100% similarity]
reactos/dll/opengl/mesa/drivers/common/meta.h [moved from reactos/dll/opengl/mesa/src/mesa/drivers/common/meta.h with 100% similarity]
reactos/dll/opengl/mesa/generated/gallium/auxiliary/indices/u_indices_gen.c [deleted file]
reactos/dll/opengl/mesa/generated/gallium/auxiliary/indices/u_unfilled_gen.c [deleted file]
reactos/dll/opengl/mesa/generated/gallium/auxiliary/util/u_format_srgb.c [deleted file]
reactos/dll/opengl/mesa/generated/gallium/auxiliary/util/u_format_table.c [deleted file]
reactos/dll/opengl/mesa/generated/gallium/auxiliary/util/u_half.c [deleted file]
reactos/dll/opengl/mesa/generated/glsl/builtin_function.cpp [deleted file]
reactos/dll/opengl/mesa/generated/glsl/glcpp/glcpp-lex.c [deleted file]
reactos/dll/opengl/mesa/generated/glsl/glcpp/glcpp-parse.c [deleted file]
reactos/dll/opengl/mesa/generated/glsl/glcpp/glcpp-parse.h [deleted file]
reactos/dll/opengl/mesa/generated/glsl/glsl_lexer.cpp [deleted file]
reactos/dll/opengl/mesa/generated/glsl/glsl_parser.cpp [deleted file]
reactos/dll/opengl/mesa/generated/glsl/glsl_parser.h [deleted file]
reactos/dll/opengl/mesa/generated/mesa/matypes.h [deleted file]
reactos/dll/opengl/mesa/generated/mesa/program/lex.yy.c [deleted file]
reactos/dll/opengl/mesa/generated/mesa/program/program_parse.tab.c [deleted file]
reactos/dll/opengl/mesa/generated/mesa/program/program_parse.tab.h [deleted file]
reactos/dll/opengl/mesa/include/GL/gl.h [deleted file]
reactos/dll/opengl/mesa/include/GL/gl_mangle.h [deleted file]
reactos/dll/opengl/mesa/include/GL/glext.h [deleted file]
reactos/dll/opengl/mesa/include/GL/glu.h [deleted file]
reactos/dll/opengl/mesa/include/GL/glu_mangle.h [deleted file]
reactos/dll/opengl/mesa/include/GL/glx.h [deleted file]
reactos/dll/opengl/mesa/include/GL/glx_mangle.h [deleted file]
reactos/dll/opengl/mesa/include/GL/glxext.h [deleted file]
reactos/dll/opengl/mesa/include/GL/internal/dri_interface.h [deleted file]
reactos/dll/opengl/mesa/include/GL/internal/sarea.h [deleted file]
reactos/dll/opengl/mesa/include/GL/osmesa.h [deleted file]
reactos/dll/opengl/mesa/include/GL/vms_x_fix.h [deleted file]
reactos/dll/opengl/mesa/include/GL/wglext.h [deleted file]
reactos/dll/opengl/mesa/include/GL/wmesa.h [deleted file]
reactos/dll/opengl/mesa/include/GLES/egl.h [deleted file]
reactos/dll/opengl/mesa/include/GLES/gl.h [deleted file]
reactos/dll/opengl/mesa/include/GLES/glext.h [deleted file]
reactos/dll/opengl/mesa/include/GLES/glplatform.h [deleted file]
reactos/dll/opengl/mesa/include/GLES2/gl2.h [deleted file]
reactos/dll/opengl/mesa/include/GLES2/gl2ext.h [deleted file]
reactos/dll/opengl/mesa/include/GLES2/gl2platform.h [deleted file]
reactos/dll/opengl/mesa/include/KHR/khrplatform.h [deleted file]
reactos/dll/opengl/mesa/include/c99/inttypes.h [deleted file]
reactos/dll/opengl/mesa/include/c99/stdbool.h [deleted file]
reactos/dll/opengl/mesa/include/c99/stdint.h [deleted file]
reactos/dll/opengl/mesa/main/CMakeLists.txt [moved from reactos/dll/opengl/mesa/src/mesa/main/CMakeLists.txt with 94% similarity]
reactos/dll/opengl/mesa/main/accum.c [moved from reactos/dll/opengl/mesa/src/mesa/main/accum.c with 100% similarity]
reactos/dll/opengl/mesa/main/accum.h [moved from reactos/dll/opengl/mesa/src/mesa/main/accum.h with 100% similarity]
reactos/dll/opengl/mesa/main/api_arrayelt.c [moved from reactos/dll/opengl/mesa/src/mesa/main/api_arrayelt.c with 100% similarity]
reactos/dll/opengl/mesa/main/api_arrayelt.h [moved from reactos/dll/opengl/mesa/src/mesa/main/api_arrayelt.h with 100% similarity]
reactos/dll/opengl/mesa/main/api_exec.c [moved from reactos/dll/opengl/mesa/src/mesa/main/api_exec.c with 100% similarity]
reactos/dll/opengl/mesa/main/api_exec.h [moved from reactos/dll/opengl/mesa/src/mesa/main/api_exec.h with 100% similarity]
reactos/dll/opengl/mesa/main/api_loopback.c [moved from reactos/dll/opengl/mesa/src/mesa/main/api_loopback.c with 99% similarity]
reactos/dll/opengl/mesa/main/api_loopback.h [moved from reactos/dll/opengl/mesa/src/mesa/main/api_loopback.h with 100% similarity]
reactos/dll/opengl/mesa/main/api_validate.c [moved from reactos/dll/opengl/mesa/src/mesa/main/api_validate.c with 100% similarity]
reactos/dll/opengl/mesa/main/api_validate.h [moved from reactos/dll/opengl/mesa/src/mesa/main/api_validate.h with 100% similarity]
reactos/dll/opengl/mesa/main/arrayobj.c [moved from reactos/dll/opengl/mesa/src/mesa/main/arrayobj.c with 100% similarity]
reactos/dll/opengl/mesa/main/arrayobj.h [moved from reactos/dll/opengl/mesa/src/mesa/main/arrayobj.h with 100% similarity]
reactos/dll/opengl/mesa/main/attrib.c [moved from reactos/dll/opengl/mesa/src/mesa/main/attrib.c with 99% similarity]
reactos/dll/opengl/mesa/main/attrib.h [moved from reactos/dll/opengl/mesa/src/mesa/main/attrib.h with 100% similarity]
reactos/dll/opengl/mesa/main/bitset.h [moved from reactos/dll/opengl/mesa/src/mesa/main/bitset.h with 100% similarity]
reactos/dll/opengl/mesa/main/blend.c [moved from reactos/dll/opengl/mesa/src/mesa/main/blend.c with 100% similarity]
reactos/dll/opengl/mesa/main/blend.h [moved from reactos/dll/opengl/mesa/src/mesa/main/blend.h with 100% similarity]
reactos/dll/opengl/mesa/main/bufferobj.c [moved from reactos/dll/opengl/mesa/src/mesa/main/bufferobj.c with 100% similarity]
reactos/dll/opengl/mesa/main/bufferobj.h [moved from reactos/dll/opengl/mesa/src/mesa/main/bufferobj.h with 100% similarity]
reactos/dll/opengl/mesa/main/buffers.c [moved from reactos/dll/opengl/mesa/src/mesa/main/buffers.c with 100% similarity]
reactos/dll/opengl/mesa/main/buffers.h [moved from reactos/dll/opengl/mesa/src/mesa/main/buffers.h with 100% similarity]
reactos/dll/opengl/mesa/main/clear.c [moved from reactos/dll/opengl/mesa/src/mesa/main/clear.c with 100% similarity]
reactos/dll/opengl/mesa/main/clear.h [moved from reactos/dll/opengl/mesa/src/mesa/main/clear.h with 100% similarity]
reactos/dll/opengl/mesa/main/clip.c [moved from reactos/dll/opengl/mesa/src/mesa/main/clip.c with 100% similarity]
reactos/dll/opengl/mesa/main/clip.h [moved from reactos/dll/opengl/mesa/src/mesa/main/clip.h with 100% similarity]
reactos/dll/opengl/mesa/main/colormac.h [moved from reactos/dll/opengl/mesa/src/mesa/main/colormac.h with 100% similarity]
reactos/dll/opengl/mesa/main/colortab.c [moved from reactos/dll/opengl/mesa/src/mesa/main/colortab.c with 100% similarity]
reactos/dll/opengl/mesa/main/colortab.h [moved from reactos/dll/opengl/mesa/src/mesa/main/colortab.h with 100% similarity]
reactos/dll/opengl/mesa/main/compiler.h [moved from reactos/dll/opengl/mesa/src/mesa/main/compiler.h with 100% similarity]
reactos/dll/opengl/mesa/main/config.h [moved from reactos/dll/opengl/mesa/src/mesa/main/config.h with 100% similarity]
reactos/dll/opengl/mesa/main/context.c [moved from reactos/dll/opengl/mesa/src/mesa/main/context.c with 99% similarity]
reactos/dll/opengl/mesa/main/context.h [moved from reactos/dll/opengl/mesa/src/mesa/main/context.h with 100% similarity]
reactos/dll/opengl/mesa/main/convolve.c [moved from reactos/dll/opengl/mesa/src/mesa/main/convolve.c with 100% similarity]
reactos/dll/opengl/mesa/main/convolve.h [moved from reactos/dll/opengl/mesa/src/mesa/main/convolve.h with 100% similarity]
reactos/dll/opengl/mesa/main/core.h [moved from reactos/dll/opengl/mesa/src/mesa/main/core.h with 100% similarity]
reactos/dll/opengl/mesa/main/cpuinfo.c [moved from reactos/dll/opengl/mesa/src/mesa/main/cpuinfo.c with 100% similarity]
reactos/dll/opengl/mesa/main/cpuinfo.h [moved from reactos/dll/opengl/mesa/src/mesa/main/cpuinfo.h with 100% similarity]
reactos/dll/opengl/mesa/main/dd.h [moved from reactos/dll/opengl/mesa/src/mesa/main/dd.h with 100% similarity]
reactos/dll/opengl/mesa/main/depth.c [moved from reactos/dll/opengl/mesa/src/mesa/main/depth.c with 100% similarity]
reactos/dll/opengl/mesa/main/depth.h [moved from reactos/dll/opengl/mesa/src/mesa/main/depth.h with 100% similarity]
reactos/dll/opengl/mesa/main/dispatch.h [moved from reactos/dll/opengl/mesa/src/mesa/main/dispatch.h with 99% similarity]
reactos/dll/opengl/mesa/main/dlist.c [moved from reactos/dll/opengl/mesa/src/mesa/main/dlist.c with 99% similarity]
reactos/dll/opengl/mesa/main/dlist.h [moved from reactos/dll/opengl/mesa/src/mesa/main/dlist.h with 100% similarity]
reactos/dll/opengl/mesa/main/dlopen.c [moved from reactos/dll/opengl/mesa/src/mesa/main/dlopen.c with 100% similarity]
reactos/dll/opengl/mesa/main/dlopen.h [moved from reactos/dll/opengl/mesa/src/mesa/main/dlopen.h with 100% similarity]
reactos/dll/opengl/mesa/main/drawpix.c [moved from reactos/dll/opengl/mesa/src/mesa/main/drawpix.c with 100% similarity]
reactos/dll/opengl/mesa/main/drawpix.h [moved from reactos/dll/opengl/mesa/src/mesa/main/drawpix.h with 100% similarity]
reactos/dll/opengl/mesa/main/enable.c [moved from reactos/dll/opengl/mesa/src/mesa/main/enable.c with 100% similarity]
reactos/dll/opengl/mesa/main/enable.h [moved from reactos/dll/opengl/mesa/src/mesa/main/enable.h with 100% similarity]
reactos/dll/opengl/mesa/main/enums.c [moved from reactos/dll/opengl/mesa/src/mesa/main/enums.c with 100% similarity]
reactos/dll/opengl/mesa/main/enums.h [moved from reactos/dll/opengl/mesa/src/mesa/main/enums.h with 100% similarity]
reactos/dll/opengl/mesa/main/eval.c [moved from reactos/dll/opengl/mesa/src/mesa/main/eval.c with 100% similarity]
reactos/dll/opengl/mesa/main/eval.h [moved from reactos/dll/opengl/mesa/src/mesa/main/eval.h with 100% similarity]
reactos/dll/opengl/mesa/main/execmem.c [moved from reactos/dll/opengl/mesa/src/mesa/main/execmem.c with 99% similarity]
reactos/dll/opengl/mesa/main/extensions.c [moved from reactos/dll/opengl/mesa/src/mesa/main/extensions.c with 100% similarity]
reactos/dll/opengl/mesa/main/extensions.h [moved from reactos/dll/opengl/mesa/src/mesa/main/extensions.h with 100% similarity]
reactos/dll/opengl/mesa/main/feedback.c [moved from reactos/dll/opengl/mesa/src/mesa/main/feedback.c with 100% similarity]
reactos/dll/opengl/mesa/main/feedback.h [moved from reactos/dll/opengl/mesa/src/mesa/main/feedback.h with 100% similarity]
reactos/dll/opengl/mesa/main/fog.c [moved from reactos/dll/opengl/mesa/src/mesa/main/fog.c with 100% similarity]
reactos/dll/opengl/mesa/main/fog.h [moved from reactos/dll/opengl/mesa/src/mesa/main/fog.h with 100% similarity]
reactos/dll/opengl/mesa/main/format_pack.c [moved from reactos/dll/opengl/mesa/src/mesa/main/format_pack.c with 100% similarity]
reactos/dll/opengl/mesa/main/format_pack.h [moved from reactos/dll/opengl/mesa/src/mesa/main/format_pack.h with 100% similarity]
reactos/dll/opengl/mesa/main/format_unpack.c [moved from reactos/dll/opengl/mesa/src/mesa/main/format_unpack.c with 100% similarity]
reactos/dll/opengl/mesa/main/format_unpack.h [moved from reactos/dll/opengl/mesa/src/mesa/main/format_unpack.h with 100% similarity]
reactos/dll/opengl/mesa/main/formats.c [moved from reactos/dll/opengl/mesa/src/mesa/main/formats.c with 100% similarity]
reactos/dll/opengl/mesa/main/formats.h [moved from reactos/dll/opengl/mesa/src/mesa/main/formats.h with 100% similarity]
reactos/dll/opengl/mesa/main/framebuffer.c [moved from reactos/dll/opengl/mesa/src/mesa/main/framebuffer.c with 100% similarity]
reactos/dll/opengl/mesa/main/framebuffer.h [moved from reactos/dll/opengl/mesa/src/mesa/main/framebuffer.h with 100% similarity]
reactos/dll/opengl/mesa/main/get.c [moved from reactos/dll/opengl/mesa/src/mesa/main/get.c with 100% similarity]
reactos/dll/opengl/mesa/main/get.h [moved from reactos/dll/opengl/mesa/src/mesa/main/get.h with 100% similarity]
reactos/dll/opengl/mesa/main/getstring.c [moved from reactos/dll/opengl/mesa/src/mesa/main/getstring.c with 100% similarity]
reactos/dll/opengl/mesa/main/git_sha1.h [moved from reactos/dll/opengl/mesa/src/mesa/main/git_sha1.h with 100% similarity]
reactos/dll/opengl/mesa/main/glheader.h [moved from reactos/dll/opengl/mesa/src/mesa/main/glheader.h with 85% similarity]
reactos/dll/opengl/mesa/main/hash.c [moved from reactos/dll/opengl/mesa/src/mesa/main/hash.c with 99% similarity]
reactos/dll/opengl/mesa/main/hash.h [moved from reactos/dll/opengl/mesa/src/mesa/main/hash.h with 100% similarity]
reactos/dll/opengl/mesa/main/hint.c [moved from reactos/dll/opengl/mesa/src/mesa/main/hint.c with 100% similarity]
reactos/dll/opengl/mesa/main/hint.h [moved from reactos/dll/opengl/mesa/src/mesa/main/hint.h with 100% similarity]
reactos/dll/opengl/mesa/main/histogram.c [moved from reactos/dll/opengl/mesa/src/mesa/main/histogram.c with 100% similarity]
reactos/dll/opengl/mesa/main/histogram.h [moved from reactos/dll/opengl/mesa/src/mesa/main/histogram.h with 100% similarity]
reactos/dll/opengl/mesa/main/image.c [moved from reactos/dll/opengl/mesa/src/mesa/main/image.c with 100% similarity]
reactos/dll/opengl/mesa/main/image.h [moved from reactos/dll/opengl/mesa/src/mesa/main/image.h with 100% similarity]
reactos/dll/opengl/mesa/main/imports.c [moved from reactos/dll/opengl/mesa/src/mesa/main/imports.c with 100% similarity]
reactos/dll/opengl/mesa/main/imports.h [moved from reactos/dll/opengl/mesa/src/mesa/main/imports.h with 100% similarity]
reactos/dll/opengl/mesa/main/light.c [moved from reactos/dll/opengl/mesa/src/mesa/main/light.c with 100% similarity]
reactos/dll/opengl/mesa/main/light.h [moved from reactos/dll/opengl/mesa/src/mesa/main/light.h with 100% similarity]
reactos/dll/opengl/mesa/main/lines.c [moved from reactos/dll/opengl/mesa/src/mesa/main/lines.c with 100% similarity]
reactos/dll/opengl/mesa/main/lines.h [moved from reactos/dll/opengl/mesa/src/mesa/main/lines.h with 100% similarity]
reactos/dll/opengl/mesa/main/macros.h [moved from reactos/dll/opengl/mesa/src/mesa/main/macros.h with 100% similarity]
reactos/dll/opengl/mesa/main/matrix.c [moved from reactos/dll/opengl/mesa/src/mesa/main/matrix.c with 100% similarity]
reactos/dll/opengl/mesa/main/matrix.h [moved from reactos/dll/opengl/mesa/src/mesa/main/matrix.h with 100% similarity]
reactos/dll/opengl/mesa/main/mfeatures.h [moved from reactos/dll/opengl/mesa/src/mesa/main/mfeatures.h with 100% similarity]
reactos/dll/opengl/mesa/main/mm.c [moved from reactos/dll/opengl/mesa/src/mesa/main/mm.c with 100% similarity]
reactos/dll/opengl/mesa/main/mm.h [moved from reactos/dll/opengl/mesa/src/mesa/main/mm.h with 100% similarity]
reactos/dll/opengl/mesa/main/mtypes.h [moved from reactos/dll/opengl/mesa/src/mesa/main/mtypes.h with 99% similarity]
reactos/dll/opengl/mesa/main/multisample.c [moved from reactos/dll/opengl/mesa/src/mesa/main/multisample.c with 100% similarity]
reactos/dll/opengl/mesa/main/multisample.h [moved from reactos/dll/opengl/mesa/src/mesa/main/multisample.h with 100% similarity]
reactos/dll/opengl/mesa/main/pack.c [moved from reactos/dll/opengl/mesa/src/mesa/main/pack.c with 100% similarity]
reactos/dll/opengl/mesa/main/pack.h [moved from reactos/dll/opengl/mesa/src/mesa/main/pack.h with 100% similarity]
reactos/dll/opengl/mesa/main/pack_tmp.h [moved from reactos/dll/opengl/mesa/src/mesa/main/pack_tmp.h with 100% similarity]
reactos/dll/opengl/mesa/main/pbo.c [moved from reactos/dll/opengl/mesa/src/mesa/main/pbo.c with 100% similarity]
reactos/dll/opengl/mesa/main/pbo.h [moved from reactos/dll/opengl/mesa/src/mesa/main/pbo.h with 100% similarity]
reactos/dll/opengl/mesa/main/pixel.c [moved from reactos/dll/opengl/mesa/src/mesa/main/pixel.c with 100% similarity]
reactos/dll/opengl/mesa/main/pixel.h [moved from reactos/dll/opengl/mesa/src/mesa/main/pixel.h with 100% similarity]
reactos/dll/opengl/mesa/main/pixelstore.c [moved from reactos/dll/opengl/mesa/src/mesa/main/pixelstore.c with 100% similarity]
reactos/dll/opengl/mesa/main/pixelstore.h [moved from reactos/dll/opengl/mesa/src/mesa/main/pixelstore.h with 100% similarity]
reactos/dll/opengl/mesa/main/pixeltransfer.c [moved from reactos/dll/opengl/mesa/src/mesa/main/pixeltransfer.c with 100% similarity]
reactos/dll/opengl/mesa/main/pixeltransfer.h [moved from reactos/dll/opengl/mesa/src/mesa/main/pixeltransfer.h with 100% similarity]
reactos/dll/opengl/mesa/main/points.c [moved from reactos/dll/opengl/mesa/src/mesa/main/points.c with 100% similarity]
reactos/dll/opengl/mesa/main/points.h [moved from reactos/dll/opengl/mesa/src/mesa/main/points.h with 100% similarity]
reactos/dll/opengl/mesa/main/polygon.c [moved from reactos/dll/opengl/mesa/src/mesa/main/polygon.c with 100% similarity]
reactos/dll/opengl/mesa/main/polygon.h [moved from reactos/dll/opengl/mesa/src/mesa/main/polygon.h with 100% similarity]
reactos/dll/opengl/mesa/main/rastpos.c [moved from reactos/dll/opengl/mesa/src/mesa/main/rastpos.c with 100% similarity]
reactos/dll/opengl/mesa/main/rastpos.h [moved from reactos/dll/opengl/mesa/src/mesa/main/rastpos.h with 100% similarity]
reactos/dll/opengl/mesa/main/readpix.c [moved from reactos/dll/opengl/mesa/src/mesa/main/readpix.c with 100% similarity]
reactos/dll/opengl/mesa/main/readpix.h [moved from reactos/dll/opengl/mesa/src/mesa/main/readpix.h with 100% similarity]
reactos/dll/opengl/mesa/main/renderbuffer.c [moved from reactos/dll/opengl/mesa/src/mesa/main/renderbuffer.c with 100% similarity]
reactos/dll/opengl/mesa/main/renderbuffer.h [moved from reactos/dll/opengl/mesa/src/mesa/main/renderbuffer.h with 100% similarity]
reactos/dll/opengl/mesa/main/scissor.c [moved from reactos/dll/opengl/mesa/src/mesa/main/scissor.c with 100% similarity]
reactos/dll/opengl/mesa/main/scissor.h [moved from reactos/dll/opengl/mesa/src/mesa/main/scissor.h with 100% similarity]
reactos/dll/opengl/mesa/main/shared.c [moved from reactos/dll/opengl/mesa/src/mesa/main/shared.c with 100% similarity]
reactos/dll/opengl/mesa/main/shared.h [moved from reactos/dll/opengl/mesa/src/mesa/main/shared.h with 100% similarity]
reactos/dll/opengl/mesa/main/simple_list.h [moved from reactos/dll/opengl/mesa/src/mesa/main/simple_list.h with 100% similarity]
reactos/dll/opengl/mesa/main/state.c [moved from reactos/dll/opengl/mesa/src/mesa/main/state.c with 100% similarity]
reactos/dll/opengl/mesa/main/state.h [moved from reactos/dll/opengl/mesa/src/mesa/main/state.h with 100% similarity]
reactos/dll/opengl/mesa/main/stencil.c [moved from reactos/dll/opengl/mesa/src/mesa/main/stencil.c with 100% similarity]
reactos/dll/opengl/mesa/main/stencil.h [moved from reactos/dll/opengl/mesa/src/mesa/main/stencil.h with 100% similarity]
reactos/dll/opengl/mesa/main/texenv.c [moved from reactos/dll/opengl/mesa/src/mesa/main/texenv.c with 100% similarity]
reactos/dll/opengl/mesa/main/texenv.h [moved from reactos/dll/opengl/mesa/src/mesa/main/texenv.h with 100% similarity]
reactos/dll/opengl/mesa/main/texformat.c [moved from reactos/dll/opengl/mesa/src/mesa/main/texformat.c with 100% similarity]
reactos/dll/opengl/mesa/main/texformat.h [moved from reactos/dll/opengl/mesa/src/mesa/main/texformat.h with 100% similarity]
reactos/dll/opengl/mesa/main/texgen.c [moved from reactos/dll/opengl/mesa/src/mesa/main/texgen.c with 100% similarity]
reactos/dll/opengl/mesa/main/texgen.h [moved from reactos/dll/opengl/mesa/src/mesa/main/texgen.h with 100% similarity]
reactos/dll/opengl/mesa/main/texgetimage.c [moved from reactos/dll/opengl/mesa/src/mesa/main/texgetimage.c with 100% similarity]
reactos/dll/opengl/mesa/main/texgetimage.h [moved from reactos/dll/opengl/mesa/src/mesa/main/texgetimage.h with 100% similarity]
reactos/dll/opengl/mesa/main/teximage.c [moved from reactos/dll/opengl/mesa/src/mesa/main/teximage.c with 100% similarity]
reactos/dll/opengl/mesa/main/teximage.h [moved from reactos/dll/opengl/mesa/src/mesa/main/teximage.h with 100% similarity]
reactos/dll/opengl/mesa/main/texobj.c [moved from reactos/dll/opengl/mesa/src/mesa/main/texobj.c with 100% similarity]
reactos/dll/opengl/mesa/main/texobj.h [moved from reactos/dll/opengl/mesa/src/mesa/main/texobj.h with 100% similarity]
reactos/dll/opengl/mesa/main/texpal.c [moved from reactos/dll/opengl/mesa/src/mesa/main/texpal.c with 100% similarity]
reactos/dll/opengl/mesa/main/texpal.h [moved from reactos/dll/opengl/mesa/src/mesa/main/texpal.h with 100% similarity]
reactos/dll/opengl/mesa/main/texparam.c [moved from reactos/dll/opengl/mesa/src/mesa/main/texparam.c with 100% similarity]
reactos/dll/opengl/mesa/main/texparam.h [moved from reactos/dll/opengl/mesa/src/mesa/main/texparam.h with 100% similarity]
reactos/dll/opengl/mesa/main/texstate.c [moved from reactos/dll/opengl/mesa/src/mesa/main/texstate.c with 100% similarity]
reactos/dll/opengl/mesa/main/texstate.h [moved from reactos/dll/opengl/mesa/src/mesa/main/texstate.h with 100% similarity]
reactos/dll/opengl/mesa/main/texstorage.c [moved from reactos/dll/opengl/mesa/src/mesa/main/texstorage.c with 100% similarity]
reactos/dll/opengl/mesa/main/texstorage.h [moved from reactos/dll/opengl/mesa/src/mesa/main/texstorage.h with 100% similarity]
reactos/dll/opengl/mesa/main/texstore.c [moved from reactos/dll/opengl/mesa/src/mesa/main/texstore.c with 100% similarity]
reactos/dll/opengl/mesa/main/texstore.h [moved from reactos/dll/opengl/mesa/src/mesa/main/texstore.h with 100% similarity]
reactos/dll/opengl/mesa/main/texturebarrier.c [moved from reactos/dll/opengl/mesa/src/mesa/main/texturebarrier.c with 100% similarity]
reactos/dll/opengl/mesa/main/texturebarrier.h [moved from reactos/dll/opengl/mesa/src/mesa/main/texturebarrier.h with 100% similarity]
reactos/dll/opengl/mesa/main/varray.c [moved from reactos/dll/opengl/mesa/src/mesa/main/varray.c with 100% similarity]
reactos/dll/opengl/mesa/main/varray.h [moved from reactos/dll/opengl/mesa/src/mesa/main/varray.h with 100% similarity]
reactos/dll/opengl/mesa/main/version.c [moved from reactos/dll/opengl/mesa/src/mesa/main/version.c with 100% similarity]
reactos/dll/opengl/mesa/main/version.h [moved from reactos/dll/opengl/mesa/src/mesa/main/version.h with 100% similarity]
reactos/dll/opengl/mesa/main/viewport.c [moved from reactos/dll/opengl/mesa/src/mesa/main/viewport.c with 100% similarity]
reactos/dll/opengl/mesa/main/viewport.h [moved from reactos/dll/opengl/mesa/src/mesa/main/viewport.h with 100% similarity]
reactos/dll/opengl/mesa/main/vsnprintf.c [moved from reactos/dll/opengl/mesa/src/mesa/main/vsnprintf.c with 100% similarity]
reactos/dll/opengl/mesa/main/vtxfmt.c [moved from reactos/dll/opengl/mesa/src/mesa/main/vtxfmt.c with 100% similarity]
reactos/dll/opengl/mesa/main/vtxfmt.h [moved from reactos/dll/opengl/mesa/src/mesa/main/vtxfmt.h with 100% similarity]
reactos/dll/opengl/mesa/math/CMakeLists.txt [moved from reactos/dll/opengl/mesa/src/mesa/math/CMakeLists.txt with 100% similarity]
reactos/dll/opengl/mesa/math/m_clip_tmp.h [moved from reactos/dll/opengl/mesa/src/mesa/math/m_clip_tmp.h with 100% similarity]
reactos/dll/opengl/mesa/math/m_copy_tmp.h [moved from reactos/dll/opengl/mesa/src/mesa/math/m_copy_tmp.h with 100% similarity]
reactos/dll/opengl/mesa/math/m_debug.h [moved from reactos/dll/opengl/mesa/src/mesa/math/m_debug.h with 100% similarity]
reactos/dll/opengl/mesa/math/m_debug_clip.c [moved from reactos/dll/opengl/mesa/src/mesa/math/m_debug_clip.c with 100% similarity]
reactos/dll/opengl/mesa/math/m_debug_norm.c [moved from reactos/dll/opengl/mesa/src/mesa/math/m_debug_norm.c with 100% similarity]
reactos/dll/opengl/mesa/math/m_debug_util.h [moved from reactos/dll/opengl/mesa/src/mesa/math/m_debug_util.h with 100% similarity]
reactos/dll/opengl/mesa/math/m_debug_xform.c [moved from reactos/dll/opengl/mesa/src/mesa/math/m_debug_xform.c with 100% similarity]
reactos/dll/opengl/mesa/math/m_dotprod_tmp.h [moved from reactos/dll/opengl/mesa/src/mesa/math/m_dotprod_tmp.h with 100% similarity]
reactos/dll/opengl/mesa/math/m_eval.c [moved from reactos/dll/opengl/mesa/src/mesa/math/m_eval.c with 100% similarity]
reactos/dll/opengl/mesa/math/m_eval.h [moved from reactos/dll/opengl/mesa/src/mesa/math/m_eval.h with 100% similarity]
reactos/dll/opengl/mesa/math/m_matrix.c [moved from reactos/dll/opengl/mesa/src/mesa/math/m_matrix.c with 100% similarity]
reactos/dll/opengl/mesa/math/m_matrix.h [moved from reactos/dll/opengl/mesa/src/mesa/math/m_matrix.h with 100% similarity]
reactos/dll/opengl/mesa/math/m_norm_tmp.h [moved from reactos/dll/opengl/mesa/src/mesa/math/m_norm_tmp.h with 100% similarity]
reactos/dll/opengl/mesa/math/m_trans_tmp.h [moved from reactos/dll/opengl/mesa/src/mesa/math/m_trans_tmp.h with 100% similarity]
reactos/dll/opengl/mesa/math/m_translate.c [moved from reactos/dll/opengl/mesa/src/mesa/math/m_translate.c with 100% similarity]
reactos/dll/opengl/mesa/math/m_translate.h [moved from reactos/dll/opengl/mesa/src/mesa/math/m_translate.h with 100% similarity]
reactos/dll/opengl/mesa/math/m_vector.c [moved from reactos/dll/opengl/mesa/src/mesa/math/m_vector.c with 100% similarity]
reactos/dll/opengl/mesa/math/m_vector.h [moved from reactos/dll/opengl/mesa/src/mesa/math/m_vector.h with 100% similarity]
reactos/dll/opengl/mesa/math/m_xform.c [moved from reactos/dll/opengl/mesa/src/mesa/math/m_xform.c with 100% similarity]
reactos/dll/opengl/mesa/math/m_xform.h [moved from reactos/dll/opengl/mesa/src/mesa/math/m_xform.h with 100% similarity]
reactos/dll/opengl/mesa/math/m_xform_tmp.h [moved from reactos/dll/opengl/mesa/src/mesa/math/m_xform_tmp.h with 100% similarity]
reactos/dll/opengl/mesa/src/CMakeLists.txt [deleted file]
reactos/dll/opengl/mesa/src/mapi/glapi/glapi.h [deleted file]
reactos/dll/opengl/mesa/src/mapi/glapi/glapitable.h [deleted file]
reactos/dll/opengl/mesa/src/mapi/glapi/glthread.h [deleted file]
reactos/dll/opengl/mesa/src/mapi/mapi/u_compiler.h [deleted file]
reactos/dll/opengl/mesa/src/mapi/mapi/u_thread.h [deleted file]
reactos/dll/opengl/mesa/src/mesa/CMakeLists.txt [deleted file]
reactos/dll/opengl/mesa/src/mesa/main/querymatrix.c [deleted file]
reactos/dll/opengl/mesa/swrast/CMakeLists.txt [moved from reactos/dll/opengl/mesa/src/mesa/swrast/CMakeLists.txt with 100% similarity]
reactos/dll/opengl/mesa/swrast/s_aaline.c [moved from reactos/dll/opengl/mesa/src/mesa/swrast/s_aaline.c with 100% similarity]
reactos/dll/opengl/mesa/swrast/s_aaline.h [moved from reactos/dll/opengl/mesa/src/mesa/swrast/s_aaline.h with 100% similarity]
reactos/dll/opengl/mesa/swrast/s_aalinetemp.h [moved from reactos/dll/opengl/mesa/src/mesa/swrast/s_aalinetemp.h with 100% similarity]
reactos/dll/opengl/mesa/swrast/s_aatriangle.c [moved from reactos/dll/opengl/mesa/src/mesa/swrast/s_aatriangle.c with 100% similarity]
reactos/dll/opengl/mesa/swrast/s_aatriangle.h [moved from reactos/dll/opengl/mesa/src/mesa/swrast/s_aatriangle.h with 100% similarity]
reactos/dll/opengl/mesa/swrast/s_aatritemp.h [moved from reactos/dll/opengl/mesa/src/mesa/swrast/s_aatritemp.h with 100% similarity]
reactos/dll/opengl/mesa/swrast/s_alpha.c [moved from reactos/dll/opengl/mesa/src/mesa/swrast/s_alpha.c with 100% similarity]
reactos/dll/opengl/mesa/swrast/s_alpha.h [moved from reactos/dll/opengl/mesa/src/mesa/swrast/s_alpha.h with 100% similarity]
reactos/dll/opengl/mesa/swrast/s_bitmap.c [moved from reactos/dll/opengl/mesa/src/mesa/swrast/s_bitmap.c with 100% similarity]
reactos/dll/opengl/mesa/swrast/s_blend.c [moved from reactos/dll/opengl/mesa/src/mesa/swrast/s_blend.c with 100% similarity]
reactos/dll/opengl/mesa/swrast/s_blend.h [moved from reactos/dll/opengl/mesa/src/mesa/swrast/s_blend.h with 100% similarity]
reactos/dll/opengl/mesa/swrast/s_chan.h [moved from reactos/dll/opengl/mesa/src/mesa/swrast/s_chan.h with 100% similarity]
reactos/dll/opengl/mesa/swrast/s_clear.c [moved from reactos/dll/opengl/mesa/src/mesa/swrast/s_clear.c with 100% similarity]
reactos/dll/opengl/mesa/swrast/s_context.c [moved from reactos/dll/opengl/mesa/src/mesa/swrast/s_context.c with 100% similarity]
reactos/dll/opengl/mesa/swrast/s_context.h [moved from reactos/dll/opengl/mesa/src/mesa/swrast/s_context.h with 100% similarity]
reactos/dll/opengl/mesa/swrast/s_copypix.c [moved from reactos/dll/opengl/mesa/src/mesa/swrast/s_copypix.c with 100% similarity]
reactos/dll/opengl/mesa/swrast/s_depth.c [moved from reactos/dll/opengl/mesa/src/mesa/swrast/s_depth.c with 100% similarity]
reactos/dll/opengl/mesa/swrast/s_depth.h [moved from reactos/dll/opengl/mesa/src/mesa/swrast/s_depth.h with 100% similarity]
reactos/dll/opengl/mesa/swrast/s_drawpix.c [moved from reactos/dll/opengl/mesa/src/mesa/swrast/s_drawpix.c with 100% similarity]
reactos/dll/opengl/mesa/swrast/s_feedback.c [moved from reactos/dll/opengl/mesa/src/mesa/swrast/s_feedback.c with 100% similarity]
reactos/dll/opengl/mesa/swrast/s_feedback.h [moved from reactos/dll/opengl/mesa/src/mesa/swrast/s_feedback.h with 100% similarity]
reactos/dll/opengl/mesa/swrast/s_fog.c [moved from reactos/dll/opengl/mesa/src/mesa/swrast/s_fog.c with 100% similarity]
reactos/dll/opengl/mesa/swrast/s_fog.h [moved from reactos/dll/opengl/mesa/src/mesa/swrast/s_fog.h with 100% similarity]
reactos/dll/opengl/mesa/swrast/s_lines.c [moved from reactos/dll/opengl/mesa/src/mesa/swrast/s_lines.c with 100% similarity]
reactos/dll/opengl/mesa/swrast/s_lines.h [moved from reactos/dll/opengl/mesa/src/mesa/swrast/s_lines.h with 100% similarity]
reactos/dll/opengl/mesa/swrast/s_linetemp.h [moved from reactos/dll/opengl/mesa/src/mesa/swrast/s_linetemp.h with 100% similarity]
reactos/dll/opengl/mesa/swrast/s_logic.c [moved from reactos/dll/opengl/mesa/src/mesa/swrast/s_logic.c with 100% similarity]
reactos/dll/opengl/mesa/swrast/s_logic.h [moved from reactos/dll/opengl/mesa/src/mesa/swrast/s_logic.h with 100% similarity]
reactos/dll/opengl/mesa/swrast/s_masking.c [moved from reactos/dll/opengl/mesa/src/mesa/swrast/s_masking.c with 100% similarity]
reactos/dll/opengl/mesa/swrast/s_masking.h [moved from reactos/dll/opengl/mesa/src/mesa/swrast/s_masking.h with 100% similarity]
reactos/dll/opengl/mesa/swrast/s_points.c [moved from reactos/dll/opengl/mesa/src/mesa/swrast/s_points.c with 100% similarity]
reactos/dll/opengl/mesa/swrast/s_points.h [moved from reactos/dll/opengl/mesa/src/mesa/swrast/s_points.h with 100% similarity]
reactos/dll/opengl/mesa/swrast/s_renderbuffer.c [moved from reactos/dll/opengl/mesa/src/mesa/swrast/s_renderbuffer.c with 100% similarity]
reactos/dll/opengl/mesa/swrast/s_renderbuffer.h [moved from reactos/dll/opengl/mesa/src/mesa/swrast/s_renderbuffer.h with 100% similarity]
reactos/dll/opengl/mesa/swrast/s_span.c [moved from reactos/dll/opengl/mesa/src/mesa/swrast/s_span.c with 99% similarity]
reactos/dll/opengl/mesa/swrast/s_span.h [moved from reactos/dll/opengl/mesa/src/mesa/swrast/s_span.h with 100% similarity]
reactos/dll/opengl/mesa/swrast/s_stencil.c [moved from reactos/dll/opengl/mesa/src/mesa/swrast/s_stencil.c with 100% similarity]
reactos/dll/opengl/mesa/swrast/s_stencil.h [moved from reactos/dll/opengl/mesa/src/mesa/swrast/s_stencil.h with 100% similarity]
reactos/dll/opengl/mesa/swrast/s_texcombine.c [moved from reactos/dll/opengl/mesa/src/mesa/swrast/s_texcombine.c with 100% similarity]
reactos/dll/opengl/mesa/swrast/s_texcombine.h [moved from reactos/dll/opengl/mesa/src/mesa/swrast/s_texcombine.h with 100% similarity]
reactos/dll/opengl/mesa/swrast/s_texfetch.c [moved from reactos/dll/opengl/mesa/src/mesa/swrast/s_texfetch.c with 100% similarity]
reactos/dll/opengl/mesa/swrast/s_texfetch.h [moved from reactos/dll/opengl/mesa/src/mesa/swrast/s_texfetch.h with 100% similarity]
reactos/dll/opengl/mesa/swrast/s_texfetch_tmp.h [moved from reactos/dll/opengl/mesa/src/mesa/swrast/s_texfetch_tmp.h with 100% similarity]
reactos/dll/opengl/mesa/swrast/s_texfilter.c [moved from reactos/dll/opengl/mesa/src/mesa/swrast/s_texfilter.c with 100% similarity]
reactos/dll/opengl/mesa/swrast/s_texfilter.h [moved from reactos/dll/opengl/mesa/src/mesa/swrast/s_texfilter.h with 100% similarity]
reactos/dll/opengl/mesa/swrast/s_texture.c [moved from reactos/dll/opengl/mesa/src/mesa/swrast/s_texture.c with 100% similarity]
reactos/dll/opengl/mesa/swrast/s_triangle.c [moved from reactos/dll/opengl/mesa/src/mesa/swrast/s_triangle.c with 100% similarity]
reactos/dll/opengl/mesa/swrast/s_triangle.h [moved from reactos/dll/opengl/mesa/src/mesa/swrast/s_triangle.h with 100% similarity]
reactos/dll/opengl/mesa/swrast/s_tritemp.h [moved from reactos/dll/opengl/mesa/src/mesa/swrast/s_tritemp.h with 100% similarity]
reactos/dll/opengl/mesa/swrast/s_zoom.c [moved from reactos/dll/opengl/mesa/src/mesa/swrast/s_zoom.c with 100% similarity]
reactos/dll/opengl/mesa/swrast/s_zoom.h [moved from reactos/dll/opengl/mesa/src/mesa/swrast/s_zoom.h with 100% similarity]
reactos/dll/opengl/mesa/swrast/swrast.h [moved from reactos/dll/opengl/mesa/src/mesa/swrast/swrast.h with 100% similarity]
reactos/dll/opengl/mesa/swrast_setup/CMakeLists.txt [moved from reactos/dll/opengl/mesa/src/mesa/swrast_setup/CMakeLists.txt with 100% similarity]
reactos/dll/opengl/mesa/swrast_setup/ss_context.c [moved from reactos/dll/opengl/mesa/src/mesa/swrast_setup/ss_context.c with 100% similarity]
reactos/dll/opengl/mesa/swrast_setup/ss_context.h [moved from reactos/dll/opengl/mesa/src/mesa/swrast_setup/ss_context.h with 100% similarity]
reactos/dll/opengl/mesa/swrast_setup/ss_triangle.c [moved from reactos/dll/opengl/mesa/src/mesa/swrast_setup/ss_triangle.c with 100% similarity]
reactos/dll/opengl/mesa/swrast_setup/ss_triangle.h [moved from reactos/dll/opengl/mesa/src/mesa/swrast_setup/ss_triangle.h with 100% similarity]
reactos/dll/opengl/mesa/swrast_setup/ss_tritmp.h [moved from reactos/dll/opengl/mesa/src/mesa/swrast_setup/ss_tritmp.h with 100% similarity]
reactos/dll/opengl/mesa/swrast_setup/ss_vb.h [moved from reactos/dll/opengl/mesa/src/mesa/swrast_setup/ss_vb.h with 100% similarity]
reactos/dll/opengl/mesa/swrast_setup/swrast_setup.h [moved from reactos/dll/opengl/mesa/src/mesa/swrast_setup/swrast_setup.h with 100% similarity]
reactos/dll/opengl/mesa/tnl/CMakeLists.txt [moved from reactos/dll/opengl/mesa/src/mesa/tnl/CMakeLists.txt with 100% similarity]
reactos/dll/opengl/mesa/tnl/t_context.c [moved from reactos/dll/opengl/mesa/src/mesa/tnl/t_context.c with 100% similarity]
reactos/dll/opengl/mesa/tnl/t_context.h [moved from reactos/dll/opengl/mesa/src/mesa/tnl/t_context.h with 100% similarity]
reactos/dll/opengl/mesa/tnl/t_draw.c [moved from reactos/dll/opengl/mesa/src/mesa/tnl/t_draw.c with 100% similarity]
reactos/dll/opengl/mesa/tnl/t_pipeline.c [moved from reactos/dll/opengl/mesa/src/mesa/tnl/t_pipeline.c with 100% similarity]
reactos/dll/opengl/mesa/tnl/t_pipeline.h [moved from reactos/dll/opengl/mesa/src/mesa/tnl/t_pipeline.h with 100% similarity]
reactos/dll/opengl/mesa/tnl/t_rasterpos.c [moved from reactos/dll/opengl/mesa/src/mesa/tnl/t_rasterpos.c with 100% similarity]
reactos/dll/opengl/mesa/tnl/t_vb_cliptmp.h [moved from reactos/dll/opengl/mesa/src/mesa/tnl/t_vb_cliptmp.h with 100% similarity]
reactos/dll/opengl/mesa/tnl/t_vb_fog.c [moved from reactos/dll/opengl/mesa/src/mesa/tnl/t_vb_fog.c with 100% similarity]
reactos/dll/opengl/mesa/tnl/t_vb_light.c [moved from reactos/dll/opengl/mesa/src/mesa/tnl/t_vb_light.c with 100% similarity]
reactos/dll/opengl/mesa/tnl/t_vb_lighttmp.h [moved from reactos/dll/opengl/mesa/src/mesa/tnl/t_vb_lighttmp.h with 100% similarity]
reactos/dll/opengl/mesa/tnl/t_vb_normals.c [moved from reactos/dll/opengl/mesa/src/mesa/tnl/t_vb_normals.c with 100% similarity]
reactos/dll/opengl/mesa/tnl/t_vb_points.c [moved from reactos/dll/opengl/mesa/src/mesa/tnl/t_vb_points.c with 100% similarity]
reactos/dll/opengl/mesa/tnl/t_vb_render.c [moved from reactos/dll/opengl/mesa/src/mesa/tnl/t_vb_render.c with 100% similarity]
reactos/dll/opengl/mesa/tnl/t_vb_rendertmp.h [moved from reactos/dll/opengl/mesa/src/mesa/tnl/t_vb_rendertmp.h with 100% similarity]
reactos/dll/opengl/mesa/tnl/t_vb_texgen.c [moved from reactos/dll/opengl/mesa/src/mesa/tnl/t_vb_texgen.c with 100% similarity]
reactos/dll/opengl/mesa/tnl/t_vb_texmat.c [moved from reactos/dll/opengl/mesa/src/mesa/tnl/t_vb_texmat.c with 100% similarity]
reactos/dll/opengl/mesa/tnl/t_vb_vertex.c [moved from reactos/dll/opengl/mesa/src/mesa/tnl/t_vb_vertex.c with 100% similarity]
reactos/dll/opengl/mesa/tnl/t_vertex.c [moved from reactos/dll/opengl/mesa/src/mesa/tnl/t_vertex.c with 100% similarity]
reactos/dll/opengl/mesa/tnl/t_vertex.h [moved from reactos/dll/opengl/mesa/src/mesa/tnl/t_vertex.h with 100% similarity]
reactos/dll/opengl/mesa/tnl/t_vertex_generic.c [moved from reactos/dll/opengl/mesa/src/mesa/tnl/t_vertex_generic.c with 100% similarity]
reactos/dll/opengl/mesa/tnl/t_vertex_sse.c [moved from reactos/dll/opengl/mesa/src/mesa/tnl/t_vertex_sse.c with 100% similarity]
reactos/dll/opengl/mesa/tnl/tnl.h [moved from reactos/dll/opengl/mesa/src/mesa/tnl/tnl.h with 100% similarity]
reactos/dll/opengl/mesa/vbo/CMakeLists.txt [moved from reactos/dll/opengl/mesa/src/mesa/vbo/CMakeLists.txt with 100% similarity]
reactos/dll/opengl/mesa/vbo/vbo.h [moved from reactos/dll/opengl/mesa/src/mesa/vbo/vbo.h with 100% similarity]
reactos/dll/opengl/mesa/vbo/vbo_attrib.h [moved from reactos/dll/opengl/mesa/src/mesa/vbo/vbo_attrib.h with 100% similarity]
reactos/dll/opengl/mesa/vbo/vbo_attrib_tmp.h [moved from reactos/dll/opengl/mesa/src/mesa/vbo/vbo_attrib_tmp.h with 100% similarity]
reactos/dll/opengl/mesa/vbo/vbo_context.c [moved from reactos/dll/opengl/mesa/src/mesa/vbo/vbo_context.c with 100% similarity]
reactos/dll/opengl/mesa/vbo/vbo_context.h [moved from reactos/dll/opengl/mesa/src/mesa/vbo/vbo_context.h with 100% similarity]
reactos/dll/opengl/mesa/vbo/vbo_exec.c [moved from reactos/dll/opengl/mesa/src/mesa/vbo/vbo_exec.c with 100% similarity]
reactos/dll/opengl/mesa/vbo/vbo_exec.h [moved from reactos/dll/opengl/mesa/src/mesa/vbo/vbo_exec.h with 100% similarity]
reactos/dll/opengl/mesa/vbo/vbo_exec_api.c [moved from reactos/dll/opengl/mesa/src/mesa/vbo/vbo_exec_api.c with 100% similarity]
reactos/dll/opengl/mesa/vbo/vbo_exec_array.c [moved from reactos/dll/opengl/mesa/src/mesa/vbo/vbo_exec_array.c with 100% similarity]
reactos/dll/opengl/mesa/vbo/vbo_exec_draw.c [moved from reactos/dll/opengl/mesa/src/mesa/vbo/vbo_exec_draw.c with 100% similarity]
reactos/dll/opengl/mesa/vbo/vbo_exec_eval.c [moved from reactos/dll/opengl/mesa/src/mesa/vbo/vbo_exec_eval.c with 100% similarity]
reactos/dll/opengl/mesa/vbo/vbo_noop.c [moved from reactos/dll/opengl/mesa/src/mesa/vbo/vbo_noop.c with 100% similarity]
reactos/dll/opengl/mesa/vbo/vbo_noop.h [moved from reactos/dll/opengl/mesa/src/mesa/vbo/vbo_noop.h with 100% similarity]
reactos/dll/opengl/mesa/vbo/vbo_rebase.c [moved from reactos/dll/opengl/mesa/src/mesa/vbo/vbo_rebase.c with 100% similarity]
reactos/dll/opengl/mesa/vbo/vbo_save.c [moved from reactos/dll/opengl/mesa/src/mesa/vbo/vbo_save.c with 100% similarity]
reactos/dll/opengl/mesa/vbo/vbo_save.h [moved from reactos/dll/opengl/mesa/src/mesa/vbo/vbo_save.h with 100% similarity]
reactos/dll/opengl/mesa/vbo/vbo_save_api.c [moved from reactos/dll/opengl/mesa/src/mesa/vbo/vbo_save_api.c with 100% similarity]
reactos/dll/opengl/mesa/vbo/vbo_save_draw.c [moved from reactos/dll/opengl/mesa/src/mesa/vbo/vbo_save_draw.c with 100% similarity]
reactos/dll/opengl/mesa/vbo/vbo_save_loopback.c [moved from reactos/dll/opengl/mesa/src/mesa/vbo/vbo_save_loopback.c with 99% similarity]
reactos/dll/opengl/mesa/vbo/vbo_split.c [moved from reactos/dll/opengl/mesa/src/mesa/vbo/vbo_split.c with 100% similarity]
reactos/dll/opengl/mesa/vbo/vbo_split.h [moved from reactos/dll/opengl/mesa/src/mesa/vbo/vbo_split.h with 100% similarity]
reactos/dll/opengl/mesa/vbo/vbo_split_copy.c [moved from reactos/dll/opengl/mesa/src/mesa/vbo/vbo_split_copy.c with 100% similarity]
reactos/dll/opengl/mesa/vbo/vbo_split_inplace.c [moved from reactos/dll/opengl/mesa/src/mesa/vbo/vbo_split_inplace.c with 100% similarity]
reactos/dll/opengl/mesa/x86-64/calling_convention.txt [moved from reactos/dll/opengl/mesa/src/mesa/x86-64/calling_convention.txt with 100% similarity]
reactos/dll/opengl/mesa/x86-64/x86-64.c [moved from reactos/dll/opengl/mesa/src/mesa/x86-64/x86-64.c with 100% similarity]
reactos/dll/opengl/mesa/x86-64/x86-64.h [moved from reactos/dll/opengl/mesa/src/mesa/x86-64/x86-64.h with 100% similarity]
reactos/dll/opengl/mesa/x86-64/xform4.S [moved from reactos/dll/opengl/mesa/src/mesa/x86-64/xform4.S with 100% similarity]
reactos/dll/opengl/mesa/x86/3dnow.c [moved from reactos/dll/opengl/mesa/src/mesa/x86/3dnow.c with 100% similarity]
reactos/dll/opengl/mesa/x86/3dnow.h [moved from reactos/dll/opengl/mesa/src/mesa/x86/3dnow.h with 100% similarity]
reactos/dll/opengl/mesa/x86/3dnow_normal.S [moved from reactos/dll/opengl/mesa/src/mesa/x86/3dnow_normal.S with 100% similarity]
reactos/dll/opengl/mesa/x86/3dnow_xform1.S [moved from reactos/dll/opengl/mesa/src/mesa/x86/3dnow_xform1.S with 100% similarity]
reactos/dll/opengl/mesa/x86/3dnow_xform2.S [moved from reactos/dll/opengl/mesa/src/mesa/x86/3dnow_xform2.S with 100% similarity]
reactos/dll/opengl/mesa/x86/3dnow_xform3.S [moved from reactos/dll/opengl/mesa/src/mesa/x86/3dnow_xform3.S with 100% similarity]
reactos/dll/opengl/mesa/x86/3dnow_xform4.S [moved from reactos/dll/opengl/mesa/src/mesa/x86/3dnow_xform4.S with 100% similarity]
reactos/dll/opengl/mesa/x86/CMakeLists.txt [moved from reactos/dll/opengl/mesa/src/mesa/x86/CMakeLists.txt with 100% similarity]
reactos/dll/opengl/mesa/x86/assyntax.h [moved from reactos/dll/opengl/mesa/src/mesa/x86/assyntax.h with 100% similarity]
reactos/dll/opengl/mesa/x86/clip_args.h [moved from reactos/dll/opengl/mesa/src/mesa/x86/clip_args.h with 100% similarity]
reactos/dll/opengl/mesa/x86/common_x86.c [moved from reactos/dll/opengl/mesa/src/mesa/x86/common_x86.c with 100% similarity]
reactos/dll/opengl/mesa/x86/common_x86_asm.S [moved from reactos/dll/opengl/mesa/src/mesa/x86/common_x86_asm.S with 100% similarity]
reactos/dll/opengl/mesa/x86/common_x86_asm.h [moved from reactos/dll/opengl/mesa/src/mesa/x86/common_x86_asm.h with 100% similarity]
reactos/dll/opengl/mesa/x86/common_x86_features.h [moved from reactos/dll/opengl/mesa/src/mesa/x86/common_x86_features.h with 100% similarity]
reactos/dll/opengl/mesa/x86/gen_matypes.c [moved from reactos/dll/opengl/mesa/src/mesa/x86/gen_matypes.c with 100% similarity]
reactos/dll/opengl/mesa/x86/matypes.h [moved from reactos/dll/opengl/mesa/src/mesa/x86/matypes.h with 100% similarity]
reactos/dll/opengl/mesa/x86/mmx.h [moved from reactos/dll/opengl/mesa/src/mesa/x86/mmx.h with 100% similarity]
reactos/dll/opengl/mesa/x86/mmx_blend.S [moved from reactos/dll/opengl/mesa/src/mesa/x86/mmx_blend.S with 100% similarity]
reactos/dll/opengl/mesa/x86/mmx_blendtmp.h [moved from reactos/dll/opengl/mesa/src/mesa/x86/mmx_blendtmp.h with 100% similarity]
reactos/dll/opengl/mesa/x86/norm_args.h [moved from reactos/dll/opengl/mesa/src/mesa/x86/norm_args.h with 100% similarity]
reactos/dll/opengl/mesa/x86/read_rgba_span_x86.S [moved from reactos/dll/opengl/mesa/src/mesa/x86/read_rgba_span_x86.S with 100% similarity]
reactos/dll/opengl/mesa/x86/read_rgba_span_x86.h [moved from reactos/dll/opengl/mesa/src/mesa/x86/read_rgba_span_x86.h with 100% similarity]
reactos/dll/opengl/mesa/x86/rtasm/x86sse.c [moved from reactos/dll/opengl/mesa/src/mesa/x86/rtasm/x86sse.c with 100% similarity]
reactos/dll/opengl/mesa/x86/rtasm/x86sse.h [moved from reactos/dll/opengl/mesa/src/mesa/x86/rtasm/x86sse.h with 100% similarity]
reactos/dll/opengl/mesa/x86/sse.c [moved from reactos/dll/opengl/mesa/src/mesa/x86/sse.c with 100% similarity]
reactos/dll/opengl/mesa/x86/sse.h [moved from reactos/dll/opengl/mesa/src/mesa/x86/sse.h with 100% similarity]
reactos/dll/opengl/mesa/x86/sse_normal.S [moved from reactos/dll/opengl/mesa/src/mesa/x86/sse_normal.S with 100% similarity]
reactos/dll/opengl/mesa/x86/sse_xform1.S [moved from reactos/dll/opengl/mesa/src/mesa/x86/sse_xform1.S with 100% similarity]
reactos/dll/opengl/mesa/x86/sse_xform2.S [moved from reactos/dll/opengl/mesa/src/mesa/x86/sse_xform2.S with 100% similarity]
reactos/dll/opengl/mesa/x86/sse_xform3.S [moved from reactos/dll/opengl/mesa/src/mesa/x86/sse_xform3.S with 100% similarity]
reactos/dll/opengl/mesa/x86/sse_xform4.S [moved from reactos/dll/opengl/mesa/src/mesa/x86/sse_xform4.S with 100% similarity]
reactos/dll/opengl/mesa/x86/x86_cliptest.S [moved from reactos/dll/opengl/mesa/src/mesa/x86/x86_cliptest.S with 100% similarity]
reactos/dll/opengl/mesa/x86/x86_xform.c [moved from reactos/dll/opengl/mesa/src/mesa/x86/x86_xform.c with 100% similarity]
reactos/dll/opengl/mesa/x86/x86_xform.h [moved from reactos/dll/opengl/mesa/src/mesa/x86/x86_xform.h with 100% similarity]
reactos/dll/opengl/mesa/x86/x86_xform2.S [moved from reactos/dll/opengl/mesa/src/mesa/x86/x86_xform2.S with 100% similarity]
reactos/dll/opengl/mesa/x86/x86_xform3.S [moved from reactos/dll/opengl/mesa/src/mesa/x86/x86_xform3.S with 100% similarity]
reactos/dll/opengl/mesa/x86/x86_xform4.S [moved from reactos/dll/opengl/mesa/src/mesa/x86/x86_xform4.S with 100% similarity]
reactos/dll/opengl/mesa/x86/xform_args.h [moved from reactos/dll/opengl/mesa/src/mesa/x86/xform_args.h with 100% similarity]
reactos/dll/opengl/opengl32/CMakeLists.txt
reactos/dll/opengl/opengl32/swimpl.c

index 21afb30..7c6e62c 100644 (file)
@@ -1,4 +1,7 @@
 
+#unset this if you want to use the current TEB instead of TLS
+set(OPENGL32_USE_TLS TRUE)
+
 add_subdirectory(glu32)
 add_subdirectory(mesa)
 add_subdirectory(opengl32)
index 5ea21de..f2ffd47 100644 (file)
@@ -1,36 +1,37 @@
 
-set(CMAKE_INCLUDE_CURRENT_DIR OFF)
+include_directories(.)
 
-# From Sconstruct
-include_directories(BEFORE
-    include)
-
-include_directories(
-    src/gallium/include
-    src/gallium/auxiliary
-    src/gallium/drivers
-    src/gallium/winsys)
-
-if(NOT MSVC)
-    add_compile_flags_language("-std=gnu99" "C")
-    add_compile_flags("-Wno-deprecated-declarations -Wno-error=unused-local-typedefs -Wno-unused-but-set-variable")
-    add_compile_flags_language("-Wno-delete-non-virtual-dtor -Wno-narrowing" "CXX")
-    # optimizations (builtin memcmp is slow on some gcc versions) used in SConsript files
-    add_compile_flags("-ffast-math -fno-builtin-memcmp")
-else()
-    include_directories(include/c99)
-    add_compile_flags("/wd4996")
-endif()
+# our DBG definitions conflict with mesa source code
+remove_definitions(-DDBG=1 -DDBG=0)
 
 add_definitions(
     -DWIN32
     -D_WINDOWS
-    -DPIPE_SUBSYSTEM_WINDOWS_USER
     -D_DLL
-#    -DDEBUG
+    -DFEATURE_GL=1
+    -D_GDI32_           # prevent gl* being declared __declspec(dllimport) in MS headers
+    -DBUILD_GL32        # declare gl* as __declspec(dllexport) in Mesa headers
+    -D_GLAPI_NO_EXPORTS # prevent _glapi_* from being declared __declspec(dllimport)
 )
 
-# our DBG definitions conflict with mesa source code
-remove_definitions(-DDBG=1 -DDBG=0)
+if(OPENGL32_USE_TLS)
+    add_definitions(-DOPENGL32_USE_TLS)
+endif()
+
+if((ARCH STREQUAL "i386") AND (NOT MSVC))
+    add_definitions(
+        -DUSE_X86_ASM
+        -DUSE_MMX_ASM
+        -DUSE_3DNOW_ASM
+        -DUSE_SSE_ASM
+    )
+    add_subdirectory(x86)
+endif()
 
-add_subdirectory(src)
+add_subdirectory(drivers/common)
+add_subdirectory(main)
+add_subdirectory(math)
+add_subdirectory(swrast)
+add_subdirectory(swrast_setup)
+add_subdirectory(tnl)
+add_subdirectory(vbo)
diff --git a/reactos/dll/opengl/mesa/generated/gallium/auxiliary/indices/u_indices_gen.c b/reactos/dll/opengl/mesa/generated/gallium/auxiliary/indices/u_indices_gen.c
deleted file mode 100644 (file)
index 3c981e5..0000000
+++ /dev/null
@@ -1,5129 +0,0 @@
-/* File automatically generated by indices.py */
-
-/*
- * Copyright 2009 VMware, Inc.
- * All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * 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
- * VMWARE 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
- * Functions to translate and generate index lists
- */
-
-#include "indices/u_indices.h"
-#include "indices/u_indices_priv.h"
-#include "pipe/p_compiler.h"
-#include "util/u_debug.h"
-#include "pipe/p_defines.h"
-#include "util/u_memory.h"
-
-
-static unsigned out_size_idx( unsigned index_size )
-{
-   switch (index_size) {
-   case 4: return OUT_UINT;
-   case 2: return OUT_USHORT;
-   default: assert(0); return OUT_USHORT;
-   }
-}
-
-static unsigned in_size_idx( unsigned index_size )
-{
-   switch (index_size) {
-   case 4: return IN_UINT;
-   case 2: return IN_USHORT;
-   case 1: return IN_UBYTE;
-   default: assert(0); return IN_UBYTE;
-   }
-}
-
-
-static u_translate_func translate[IN_COUNT][OUT_COUNT][PV_COUNT][PV_COUNT][PRIM_COUNT];
-static u_generate_func  generate[OUT_COUNT][PV_COUNT][PV_COUNT][PRIM_COUNT];
-
-
-
-static void generate_points_ushort_first2first(
-    unsigned nr,
-    void *_out )
-{
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i++) { 
-      (out+i)[0] = (ushort)(i);
-   }
-}
-static void generate_lines_ushort_first2first(
-    unsigned nr,
-    void *_out )
-{
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i+=2) { 
-      (out+i)[0] = (ushort)(i);
-      (out+i)[1] = (ushort)(i+1);
-   }
-}
-static void generate_linestrip_ushort_first2first(
-    unsigned nr,
-    void *_out )
-{
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=2, i++) { 
-      (out+j)[0] = (ushort)(i);
-      (out+j)[1] = (ushort)(i+1);
-   }
-}
-static void generate_lineloop_ushort_first2first(
-    unsigned nr,
-    void *_out )
-{
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr - 2; j+=2, i++) { 
-      (out+j)[0] = (ushort)(i);
-      (out+j)[1] = (ushort)(i+1);
-   }
-      (out+j)[0] = (ushort)(i);
-      (out+j)[1] = (ushort)(0);
-}
-static void generate_tris_ushort_first2first(
-    unsigned nr,
-    void *_out )
-{
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i+=3) { 
-      (out+i)[0] = (ushort)(i);
-      (out+i)[1] = (ushort)(i+1);
-      (out+i)[2] = (ushort)(i+2);
-   }
-}
-static void generate_tristrip_ushort_first2first(
-    unsigned nr,
-    void *_out )
-{
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (ushort)(i);
-      (out+j)[1] = (ushort)(i+1+(i&1));
-      (out+j)[2] = (ushort)(i+2-(i&1));
-   }
-}
-static void generate_trifan_ushort_first2first(
-    unsigned nr,
-    void *_out )
-{
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (ushort)(0);
-      (out+j)[1] = (ushort)(i+1);
-      (out+j)[2] = (ushort)(i+2);
-   }
-}
-static void generate_quads_ushort_first2first(
-    unsigned nr,
-    void *_out )
-{
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=6, i+=4) { 
-      (out+j+0)[0] = (ushort)(i+0);
-      (out+j+0)[1] = (ushort)(i+1);
-      (out+j+0)[2] = (ushort)(i+3);
-      (out+j+3)[0] = (ushort)(i+1);
-      (out+j+3)[1] = (ushort)(i+2);
-      (out+j+3)[2] = (ushort)(i+3);
-   }
-}
-static void generate_quadstrip_ushort_first2first(
-    unsigned nr,
-    void *_out )
-{
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=6, i+=2) { 
-      (out+j+0)[0] = (ushort)(i+2);
-      (out+j+0)[1] = (ushort)(i+0);
-      (out+j+0)[2] = (ushort)(i+3);
-      (out+j+3)[0] = (ushort)(i+0);
-      (out+j+3)[1] = (ushort)(i+1);
-      (out+j+3)[2] = (ushort)(i+3);
-   }
-}
-static void generate_polygon_ushort_first2first(
-    unsigned nr,
-    void *_out )
-{
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (ushort)(0);
-      (out+j)[1] = (ushort)(i+1);
-      (out+j)[2] = (ushort)(i+2);
-   }
-}
-static void generate_points_ushort_first2last(
-    unsigned nr,
-    void *_out )
-{
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i++) { 
-      (out+i)[0] = (ushort)(i);
-   }
-}
-static void generate_lines_ushort_first2last(
-    unsigned nr,
-    void *_out )
-{
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i+=2) { 
-      (out+i)[0] = (ushort)(i+1);
-      (out+i)[1] = (ushort)(i);
-   }
-}
-static void generate_linestrip_ushort_first2last(
-    unsigned nr,
-    void *_out )
-{
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=2, i++) { 
-      (out+j)[0] = (ushort)(i+1);
-      (out+j)[1] = (ushort)(i);
-   }
-}
-static void generate_lineloop_ushort_first2last(
-    unsigned nr,
-    void *_out )
-{
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr - 2; j+=2, i++) { 
-      (out+j)[0] = (ushort)(i+1);
-      (out+j)[1] = (ushort)(i);
-   }
-      (out+j)[0] = (ushort)(0);
-      (out+j)[1] = (ushort)(i);
-}
-static void generate_tris_ushort_first2last(
-    unsigned nr,
-    void *_out )
-{
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i+=3) { 
-      (out+i)[0] = (ushort)(i+1);
-      (out+i)[1] = (ushort)(i+2);
-      (out+i)[2] = (ushort)(i);
-   }
-}
-static void generate_tristrip_ushort_first2last(
-    unsigned nr,
-    void *_out )
-{
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (ushort)(i+1+(i&1));
-      (out+j)[1] = (ushort)(i+2-(i&1));
-      (out+j)[2] = (ushort)(i);
-   }
-}
-static void generate_trifan_ushort_first2last(
-    unsigned nr,
-    void *_out )
-{
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (ushort)(i+1);
-      (out+j)[1] = (ushort)(i+2);
-      (out+j)[2] = (ushort)(0);
-   }
-}
-static void generate_quads_ushort_first2last(
-    unsigned nr,
-    void *_out )
-{
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=6, i+=4) { 
-      (out+j+0)[0] = (ushort)(i+1);
-      (out+j+0)[1] = (ushort)(i+3);
-      (out+j+0)[2] = (ushort)(i+0);
-      (out+j+3)[0] = (ushort)(i+2);
-      (out+j+3)[1] = (ushort)(i+3);
-      (out+j+3)[2] = (ushort)(i+1);
-   }
-}
-static void generate_quadstrip_ushort_first2last(
-    unsigned nr,
-    void *_out )
-{
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=6, i+=2) { 
-      (out+j+0)[0] = (ushort)(i+0);
-      (out+j+0)[1] = (ushort)(i+3);
-      (out+j+0)[2] = (ushort)(i+2);
-      (out+j+3)[0] = (ushort)(i+1);
-      (out+j+3)[1] = (ushort)(i+3);
-      (out+j+3)[2] = (ushort)(i+0);
-   }
-}
-static void generate_polygon_ushort_first2last(
-    unsigned nr,
-    void *_out )
-{
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (ushort)(i+1);
-      (out+j)[1] = (ushort)(i+2);
-      (out+j)[2] = (ushort)(0);
-   }
-}
-static void generate_points_ushort_last2first(
-    unsigned nr,
-    void *_out )
-{
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i++) { 
-      (out+i)[0] = (ushort)(i);
-   }
-}
-static void generate_lines_ushort_last2first(
-    unsigned nr,
-    void *_out )
-{
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i+=2) { 
-      (out+i)[0] = (ushort)(i+1);
-      (out+i)[1] = (ushort)(i);
-   }
-}
-static void generate_linestrip_ushort_last2first(
-    unsigned nr,
-    void *_out )
-{
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=2, i++) { 
-      (out+j)[0] = (ushort)(i+1);
-      (out+j)[1] = (ushort)(i);
-   }
-}
-static void generate_lineloop_ushort_last2first(
-    unsigned nr,
-    void *_out )
-{
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr - 2; j+=2, i++) { 
-      (out+j)[0] = (ushort)(i+1);
-      (out+j)[1] = (ushort)(i);
-   }
-      (out+j)[0] = (ushort)(0);
-      (out+j)[1] = (ushort)(i);
-}
-static void generate_tris_ushort_last2first(
-    unsigned nr,
-    void *_out )
-{
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i+=3) { 
-      (out+i)[0] = (ushort)(i+2);
-      (out+i)[1] = (ushort)(i);
-      (out+i)[2] = (ushort)(i+1);
-   }
-}
-static void generate_tristrip_ushort_last2first(
-    unsigned nr,
-    void *_out )
-{
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (ushort)(i+2);
-      (out+j)[1] = (ushort)(i+(i&1));
-      (out+j)[2] = (ushort)(i+1-(i&1));
-   }
-}
-static void generate_trifan_ushort_last2first(
-    unsigned nr,
-    void *_out )
-{
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (ushort)(i+2);
-      (out+j)[1] = (ushort)(0);
-      (out+j)[2] = (ushort)(i+1);
-   }
-}
-static void generate_quads_ushort_last2first(
-    unsigned nr,
-    void *_out )
-{
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=6, i+=4) { 
-      (out+j+0)[0] = (ushort)(i+3);
-      (out+j+0)[1] = (ushort)(i+0);
-      (out+j+0)[2] = (ushort)(i+1);
-      (out+j+3)[0] = (ushort)(i+3);
-      (out+j+3)[1] = (ushort)(i+1);
-      (out+j+3)[2] = (ushort)(i+2);
-   }
-}
-static void generate_quadstrip_ushort_last2first(
-    unsigned nr,
-    void *_out )
-{
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=6, i+=2) { 
-      (out+j+0)[0] = (ushort)(i+3);
-      (out+j+0)[1] = (ushort)(i+2);
-      (out+j+0)[2] = (ushort)(i+0);
-      (out+j+3)[0] = (ushort)(i+3);
-      (out+j+3)[1] = (ushort)(i+0);
-      (out+j+3)[2] = (ushort)(i+1);
-   }
-}
-static void generate_polygon_ushort_last2first(
-    unsigned nr,
-    void *_out )
-{
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (ushort)(0);
-      (out+j)[1] = (ushort)(i+1);
-      (out+j)[2] = (ushort)(i+2);
-   }
-}
-static void generate_points_ushort_last2last(
-    unsigned nr,
-    void *_out )
-{
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i++) { 
-      (out+i)[0] = (ushort)(i);
-   }
-}
-static void generate_lines_ushort_last2last(
-    unsigned nr,
-    void *_out )
-{
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i+=2) { 
-      (out+i)[0] = (ushort)(i);
-      (out+i)[1] = (ushort)(i+1);
-   }
-}
-static void generate_linestrip_ushort_last2last(
-    unsigned nr,
-    void *_out )
-{
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=2, i++) { 
-      (out+j)[0] = (ushort)(i);
-      (out+j)[1] = (ushort)(i+1);
-   }
-}
-static void generate_lineloop_ushort_last2last(
-    unsigned nr,
-    void *_out )
-{
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr - 2; j+=2, i++) { 
-      (out+j)[0] = (ushort)(i);
-      (out+j)[1] = (ushort)(i+1);
-   }
-      (out+j)[0] = (ushort)(i);
-      (out+j)[1] = (ushort)(0);
-}
-static void generate_tris_ushort_last2last(
-    unsigned nr,
-    void *_out )
-{
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i+=3) { 
-      (out+i)[0] = (ushort)(i);
-      (out+i)[1] = (ushort)(i+1);
-      (out+i)[2] = (ushort)(i+2);
-   }
-}
-static void generate_tristrip_ushort_last2last(
-    unsigned nr,
-    void *_out )
-{
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (ushort)(i+(i&1));
-      (out+j)[1] = (ushort)(i+1-(i&1));
-      (out+j)[2] = (ushort)(i+2);
-   }
-}
-static void generate_trifan_ushort_last2last(
-    unsigned nr,
-    void *_out )
-{
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (ushort)(0);
-      (out+j)[1] = (ushort)(i+1);
-      (out+j)[2] = (ushort)(i+2);
-   }
-}
-static void generate_quads_ushort_last2last(
-    unsigned nr,
-    void *_out )
-{
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=6, i+=4) { 
-      (out+j+0)[0] = (ushort)(i+0);
-      (out+j+0)[1] = (ushort)(i+1);
-      (out+j+0)[2] = (ushort)(i+3);
-      (out+j+3)[0] = (ushort)(i+1);
-      (out+j+3)[1] = (ushort)(i+2);
-      (out+j+3)[2] = (ushort)(i+3);
-   }
-}
-static void generate_quadstrip_ushort_last2last(
-    unsigned nr,
-    void *_out )
-{
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=6, i+=2) { 
-      (out+j+0)[0] = (ushort)(i+2);
-      (out+j+0)[1] = (ushort)(i+0);
-      (out+j+0)[2] = (ushort)(i+3);
-      (out+j+3)[0] = (ushort)(i+0);
-      (out+j+3)[1] = (ushort)(i+1);
-      (out+j+3)[2] = (ushort)(i+3);
-   }
-}
-static void generate_polygon_ushort_last2last(
-    unsigned nr,
-    void *_out )
-{
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (ushort)(i+1);
-      (out+j)[1] = (ushort)(i+2);
-      (out+j)[2] = (ushort)(0);
-   }
-}
-static void generate_points_uint_first2first(
-    unsigned nr,
-    void *_out )
-{
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i++) { 
-      (out+i)[0] = (uint)(i);
-   }
-}
-static void generate_lines_uint_first2first(
-    unsigned nr,
-    void *_out )
-{
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i+=2) { 
-      (out+i)[0] = (uint)(i);
-      (out+i)[1] = (uint)(i+1);
-   }
-}
-static void generate_linestrip_uint_first2first(
-    unsigned nr,
-    void *_out )
-{
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=2, i++) { 
-      (out+j)[0] = (uint)(i);
-      (out+j)[1] = (uint)(i+1);
-   }
-}
-static void generate_lineloop_uint_first2first(
-    unsigned nr,
-    void *_out )
-{
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr - 2; j+=2, i++) { 
-      (out+j)[0] = (uint)(i);
-      (out+j)[1] = (uint)(i+1);
-   }
-      (out+j)[0] = (uint)(i);
-      (out+j)[1] = (uint)(0);
-}
-static void generate_tris_uint_first2first(
-    unsigned nr,
-    void *_out )
-{
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i+=3) { 
-      (out+i)[0] = (uint)(i);
-      (out+i)[1] = (uint)(i+1);
-      (out+i)[2] = (uint)(i+2);
-   }
-}
-static void generate_tristrip_uint_first2first(
-    unsigned nr,
-    void *_out )
-{
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (uint)(i);
-      (out+j)[1] = (uint)(i+1+(i&1));
-      (out+j)[2] = (uint)(i+2-(i&1));
-   }
-}
-static void generate_trifan_uint_first2first(
-    unsigned nr,
-    void *_out )
-{
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (uint)(0);
-      (out+j)[1] = (uint)(i+1);
-      (out+j)[2] = (uint)(i+2);
-   }
-}
-static void generate_quads_uint_first2first(
-    unsigned nr,
-    void *_out )
-{
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=6, i+=4) { 
-      (out+j+0)[0] = (uint)(i+0);
-      (out+j+0)[1] = (uint)(i+1);
-      (out+j+0)[2] = (uint)(i+3);
-      (out+j+3)[0] = (uint)(i+1);
-      (out+j+3)[1] = (uint)(i+2);
-      (out+j+3)[2] = (uint)(i+3);
-   }
-}
-static void generate_quadstrip_uint_first2first(
-    unsigned nr,
-    void *_out )
-{
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=6, i+=2) { 
-      (out+j+0)[0] = (uint)(i+2);
-      (out+j+0)[1] = (uint)(i+0);
-      (out+j+0)[2] = (uint)(i+3);
-      (out+j+3)[0] = (uint)(i+0);
-      (out+j+3)[1] = (uint)(i+1);
-      (out+j+3)[2] = (uint)(i+3);
-   }
-}
-static void generate_polygon_uint_first2first(
-    unsigned nr,
-    void *_out )
-{
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (uint)(0);
-      (out+j)[1] = (uint)(i+1);
-      (out+j)[2] = (uint)(i+2);
-   }
-}
-static void generate_points_uint_first2last(
-    unsigned nr,
-    void *_out )
-{
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i++) { 
-      (out+i)[0] = (uint)(i);
-   }
-}
-static void generate_lines_uint_first2last(
-    unsigned nr,
-    void *_out )
-{
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i+=2) { 
-      (out+i)[0] = (uint)(i+1);
-      (out+i)[1] = (uint)(i);
-   }
-}
-static void generate_linestrip_uint_first2last(
-    unsigned nr,
-    void *_out )
-{
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=2, i++) { 
-      (out+j)[0] = (uint)(i+1);
-      (out+j)[1] = (uint)(i);
-   }
-}
-static void generate_lineloop_uint_first2last(
-    unsigned nr,
-    void *_out )
-{
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr - 2; j+=2, i++) { 
-      (out+j)[0] = (uint)(i+1);
-      (out+j)[1] = (uint)(i);
-   }
-      (out+j)[0] = (uint)(0);
-      (out+j)[1] = (uint)(i);
-}
-static void generate_tris_uint_first2last(
-    unsigned nr,
-    void *_out )
-{
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i+=3) { 
-      (out+i)[0] = (uint)(i+1);
-      (out+i)[1] = (uint)(i+2);
-      (out+i)[2] = (uint)(i);
-   }
-}
-static void generate_tristrip_uint_first2last(
-    unsigned nr,
-    void *_out )
-{
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (uint)(i+1+(i&1));
-      (out+j)[1] = (uint)(i+2-(i&1));
-      (out+j)[2] = (uint)(i);
-   }
-}
-static void generate_trifan_uint_first2last(
-    unsigned nr,
-    void *_out )
-{
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (uint)(i+1);
-      (out+j)[1] = (uint)(i+2);
-      (out+j)[2] = (uint)(0);
-   }
-}
-static void generate_quads_uint_first2last(
-    unsigned nr,
-    void *_out )
-{
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=6, i+=4) { 
-      (out+j+0)[0] = (uint)(i+1);
-      (out+j+0)[1] = (uint)(i+3);
-      (out+j+0)[2] = (uint)(i+0);
-      (out+j+3)[0] = (uint)(i+2);
-      (out+j+3)[1] = (uint)(i+3);
-      (out+j+3)[2] = (uint)(i+1);
-   }
-}
-static void generate_quadstrip_uint_first2last(
-    unsigned nr,
-    void *_out )
-{
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=6, i+=2) { 
-      (out+j+0)[0] = (uint)(i+0);
-      (out+j+0)[1] = (uint)(i+3);
-      (out+j+0)[2] = (uint)(i+2);
-      (out+j+3)[0] = (uint)(i+1);
-      (out+j+3)[1] = (uint)(i+3);
-      (out+j+3)[2] = (uint)(i+0);
-   }
-}
-static void generate_polygon_uint_first2last(
-    unsigned nr,
-    void *_out )
-{
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (uint)(i+1);
-      (out+j)[1] = (uint)(i+2);
-      (out+j)[2] = (uint)(0);
-   }
-}
-static void generate_points_uint_last2first(
-    unsigned nr,
-    void *_out )
-{
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i++) { 
-      (out+i)[0] = (uint)(i);
-   }
-}
-static void generate_lines_uint_last2first(
-    unsigned nr,
-    void *_out )
-{
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i+=2) { 
-      (out+i)[0] = (uint)(i+1);
-      (out+i)[1] = (uint)(i);
-   }
-}
-static void generate_linestrip_uint_last2first(
-    unsigned nr,
-    void *_out )
-{
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=2, i++) { 
-      (out+j)[0] = (uint)(i+1);
-      (out+j)[1] = (uint)(i);
-   }
-}
-static void generate_lineloop_uint_last2first(
-    unsigned nr,
-    void *_out )
-{
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr - 2; j+=2, i++) { 
-      (out+j)[0] = (uint)(i+1);
-      (out+j)[1] = (uint)(i);
-   }
-      (out+j)[0] = (uint)(0);
-      (out+j)[1] = (uint)(i);
-}
-static void generate_tris_uint_last2first(
-    unsigned nr,
-    void *_out )
-{
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i+=3) { 
-      (out+i)[0] = (uint)(i+2);
-      (out+i)[1] = (uint)(i);
-      (out+i)[2] = (uint)(i+1);
-   }
-}
-static void generate_tristrip_uint_last2first(
-    unsigned nr,
-    void *_out )
-{
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (uint)(i+2);
-      (out+j)[1] = (uint)(i+(i&1));
-      (out+j)[2] = (uint)(i+1-(i&1));
-   }
-}
-static void generate_trifan_uint_last2first(
-    unsigned nr,
-    void *_out )
-{
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (uint)(i+2);
-      (out+j)[1] = (uint)(0);
-      (out+j)[2] = (uint)(i+1);
-   }
-}
-static void generate_quads_uint_last2first(
-    unsigned nr,
-    void *_out )
-{
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=6, i+=4) { 
-      (out+j+0)[0] = (uint)(i+3);
-      (out+j+0)[1] = (uint)(i+0);
-      (out+j+0)[2] = (uint)(i+1);
-      (out+j+3)[0] = (uint)(i+3);
-      (out+j+3)[1] = (uint)(i+1);
-      (out+j+3)[2] = (uint)(i+2);
-   }
-}
-static void generate_quadstrip_uint_last2first(
-    unsigned nr,
-    void *_out )
-{
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=6, i+=2) { 
-      (out+j+0)[0] = (uint)(i+3);
-      (out+j+0)[1] = (uint)(i+2);
-      (out+j+0)[2] = (uint)(i+0);
-      (out+j+3)[0] = (uint)(i+3);
-      (out+j+3)[1] = (uint)(i+0);
-      (out+j+3)[2] = (uint)(i+1);
-   }
-}
-static void generate_polygon_uint_last2first(
-    unsigned nr,
-    void *_out )
-{
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (uint)(0);
-      (out+j)[1] = (uint)(i+1);
-      (out+j)[2] = (uint)(i+2);
-   }
-}
-static void generate_points_uint_last2last(
-    unsigned nr,
-    void *_out )
-{
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i++) { 
-      (out+i)[0] = (uint)(i);
-   }
-}
-static void generate_lines_uint_last2last(
-    unsigned nr,
-    void *_out )
-{
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i+=2) { 
-      (out+i)[0] = (uint)(i);
-      (out+i)[1] = (uint)(i+1);
-   }
-}
-static void generate_linestrip_uint_last2last(
-    unsigned nr,
-    void *_out )
-{
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=2, i++) { 
-      (out+j)[0] = (uint)(i);
-      (out+j)[1] = (uint)(i+1);
-   }
-}
-static void generate_lineloop_uint_last2last(
-    unsigned nr,
-    void *_out )
-{
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr - 2; j+=2, i++) { 
-      (out+j)[0] = (uint)(i);
-      (out+j)[1] = (uint)(i+1);
-   }
-      (out+j)[0] = (uint)(i);
-      (out+j)[1] = (uint)(0);
-}
-static void generate_tris_uint_last2last(
-    unsigned nr,
-    void *_out )
-{
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i+=3) { 
-      (out+i)[0] = (uint)(i);
-      (out+i)[1] = (uint)(i+1);
-      (out+i)[2] = (uint)(i+2);
-   }
-}
-static void generate_tristrip_uint_last2last(
-    unsigned nr,
-    void *_out )
-{
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (uint)(i+(i&1));
-      (out+j)[1] = (uint)(i+1-(i&1));
-      (out+j)[2] = (uint)(i+2);
-   }
-}
-static void generate_trifan_uint_last2last(
-    unsigned nr,
-    void *_out )
-{
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (uint)(0);
-      (out+j)[1] = (uint)(i+1);
-      (out+j)[2] = (uint)(i+2);
-   }
-}
-static void generate_quads_uint_last2last(
-    unsigned nr,
-    void *_out )
-{
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=6, i+=4) { 
-      (out+j+0)[0] = (uint)(i+0);
-      (out+j+0)[1] = (uint)(i+1);
-      (out+j+0)[2] = (uint)(i+3);
-      (out+j+3)[0] = (uint)(i+1);
-      (out+j+3)[1] = (uint)(i+2);
-      (out+j+3)[2] = (uint)(i+3);
-   }
-}
-static void generate_quadstrip_uint_last2last(
-    unsigned nr,
-    void *_out )
-{
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=6, i+=2) { 
-      (out+j+0)[0] = (uint)(i+2);
-      (out+j+0)[1] = (uint)(i+0);
-      (out+j+0)[2] = (uint)(i+3);
-      (out+j+3)[0] = (uint)(i+0);
-      (out+j+3)[1] = (uint)(i+1);
-      (out+j+3)[2] = (uint)(i+3);
-   }
-}
-static void generate_polygon_uint_last2last(
-    unsigned nr,
-    void *_out )
-{
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (uint)(i+1);
-      (out+j)[1] = (uint)(i+2);
-      (out+j)[2] = (uint)(0);
-   }
-}
-static void translate_points_ubyte2ushort_first2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i++) { 
-      (out+i)[0] = (ushort)in[i];
-   }
-}
-static void translate_lines_ubyte2ushort_first2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i+=2) { 
-      (out+i)[0] = (ushort)in[i];
-      (out+i)[1] = (ushort)in[i+1];
-   }
-}
-static void translate_linestrip_ubyte2ushort_first2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=2, i++) { 
-      (out+j)[0] = (ushort)in[i];
-      (out+j)[1] = (ushort)in[i+1];
-   }
-}
-static void translate_lineloop_ubyte2ushort_first2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr - 2; j+=2, i++) { 
-      (out+j)[0] = (ushort)in[i];
-      (out+j)[1] = (ushort)in[i+1];
-   }
-      (out+j)[0] = (ushort)in[i];
-      (out+j)[1] = (ushort)in[0];
-}
-static void translate_tris_ubyte2ushort_first2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i+=3) { 
-      (out+i)[0] = (ushort)in[i];
-      (out+i)[1] = (ushort)in[i+1];
-      (out+i)[2] = (ushort)in[i+2];
-   }
-}
-static void translate_tristrip_ubyte2ushort_first2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (ushort)in[i];
-      (out+j)[1] = (ushort)in[i+1+(i&1)];
-      (out+j)[2] = (ushort)in[i+2-(i&1)];
-   }
-}
-static void translate_trifan_ubyte2ushort_first2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (ushort)in[0];
-      (out+j)[1] = (ushort)in[i+1];
-      (out+j)[2] = (ushort)in[i+2];
-   }
-}
-static void translate_quads_ubyte2ushort_first2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=6, i+=4) { 
-      (out+j+0)[0] = (ushort)in[i+0];
-      (out+j+0)[1] = (ushort)in[i+1];
-      (out+j+0)[2] = (ushort)in[i+3];
-      (out+j+3)[0] = (ushort)in[i+1];
-      (out+j+3)[1] = (ushort)in[i+2];
-      (out+j+3)[2] = (ushort)in[i+3];
-   }
-}
-static void translate_quadstrip_ubyte2ushort_first2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=6, i+=2) { 
-      (out+j+0)[0] = (ushort)in[i+2];
-      (out+j+0)[1] = (ushort)in[i+0];
-      (out+j+0)[2] = (ushort)in[i+3];
-      (out+j+3)[0] = (ushort)in[i+0];
-      (out+j+3)[1] = (ushort)in[i+1];
-      (out+j+3)[2] = (ushort)in[i+3];
-   }
-}
-static void translate_polygon_ubyte2ushort_first2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (ushort)in[0];
-      (out+j)[1] = (ushort)in[i+1];
-      (out+j)[2] = (ushort)in[i+2];
-   }
-}
-static void translate_points_ubyte2ushort_first2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i++) { 
-      (out+i)[0] = (ushort)in[i];
-   }
-}
-static void translate_lines_ubyte2ushort_first2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i+=2) { 
-      (out+i)[0] = (ushort)in[i+1];
-      (out+i)[1] = (ushort)in[i];
-   }
-}
-static void translate_linestrip_ubyte2ushort_first2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=2, i++) { 
-      (out+j)[0] = (ushort)in[i+1];
-      (out+j)[1] = (ushort)in[i];
-   }
-}
-static void translate_lineloop_ubyte2ushort_first2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr - 2; j+=2, i++) { 
-      (out+j)[0] = (ushort)in[i+1];
-      (out+j)[1] = (ushort)in[i];
-   }
-      (out+j)[0] = (ushort)in[0];
-      (out+j)[1] = (ushort)in[i];
-}
-static void translate_tris_ubyte2ushort_first2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i+=3) { 
-      (out+i)[0] = (ushort)in[i+1];
-      (out+i)[1] = (ushort)in[i+2];
-      (out+i)[2] = (ushort)in[i];
-   }
-}
-static void translate_tristrip_ubyte2ushort_first2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (ushort)in[i+1+(i&1)];
-      (out+j)[1] = (ushort)in[i+2-(i&1)];
-      (out+j)[2] = (ushort)in[i];
-   }
-}
-static void translate_trifan_ubyte2ushort_first2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (ushort)in[i+1];
-      (out+j)[1] = (ushort)in[i+2];
-      (out+j)[2] = (ushort)in[0];
-   }
-}
-static void translate_quads_ubyte2ushort_first2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=6, i+=4) { 
-      (out+j+0)[0] = (ushort)in[i+1];
-      (out+j+0)[1] = (ushort)in[i+3];
-      (out+j+0)[2] = (ushort)in[i+0];
-      (out+j+3)[0] = (ushort)in[i+2];
-      (out+j+3)[1] = (ushort)in[i+3];
-      (out+j+3)[2] = (ushort)in[i+1];
-   }
-}
-static void translate_quadstrip_ubyte2ushort_first2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=6, i+=2) { 
-      (out+j+0)[0] = (ushort)in[i+0];
-      (out+j+0)[1] = (ushort)in[i+3];
-      (out+j+0)[2] = (ushort)in[i+2];
-      (out+j+3)[0] = (ushort)in[i+1];
-      (out+j+3)[1] = (ushort)in[i+3];
-      (out+j+3)[2] = (ushort)in[i+0];
-   }
-}
-static void translate_polygon_ubyte2ushort_first2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (ushort)in[i+1];
-      (out+j)[1] = (ushort)in[i+2];
-      (out+j)[2] = (ushort)in[0];
-   }
-}
-static void translate_points_ubyte2ushort_last2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i++) { 
-      (out+i)[0] = (ushort)in[i];
-   }
-}
-static void translate_lines_ubyte2ushort_last2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i+=2) { 
-      (out+i)[0] = (ushort)in[i+1];
-      (out+i)[1] = (ushort)in[i];
-   }
-}
-static void translate_linestrip_ubyte2ushort_last2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=2, i++) { 
-      (out+j)[0] = (ushort)in[i+1];
-      (out+j)[1] = (ushort)in[i];
-   }
-}
-static void translate_lineloop_ubyte2ushort_last2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr - 2; j+=2, i++) { 
-      (out+j)[0] = (ushort)in[i+1];
-      (out+j)[1] = (ushort)in[i];
-   }
-      (out+j)[0] = (ushort)in[0];
-      (out+j)[1] = (ushort)in[i];
-}
-static void translate_tris_ubyte2ushort_last2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i+=3) { 
-      (out+i)[0] = (ushort)in[i+2];
-      (out+i)[1] = (ushort)in[i];
-      (out+i)[2] = (ushort)in[i+1];
-   }
-}
-static void translate_tristrip_ubyte2ushort_last2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (ushort)in[i+2];
-      (out+j)[1] = (ushort)in[i+(i&1)];
-      (out+j)[2] = (ushort)in[i+1-(i&1)];
-   }
-}
-static void translate_trifan_ubyte2ushort_last2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (ushort)in[i+2];
-      (out+j)[1] = (ushort)in[0];
-      (out+j)[2] = (ushort)in[i+1];
-   }
-}
-static void translate_quads_ubyte2ushort_last2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=6, i+=4) { 
-      (out+j+0)[0] = (ushort)in[i+3];
-      (out+j+0)[1] = (ushort)in[i+0];
-      (out+j+0)[2] = (ushort)in[i+1];
-      (out+j+3)[0] = (ushort)in[i+3];
-      (out+j+3)[1] = (ushort)in[i+1];
-      (out+j+3)[2] = (ushort)in[i+2];
-   }
-}
-static void translate_quadstrip_ubyte2ushort_last2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=6, i+=2) { 
-      (out+j+0)[0] = (ushort)in[i+3];
-      (out+j+0)[1] = (ushort)in[i+2];
-      (out+j+0)[2] = (ushort)in[i+0];
-      (out+j+3)[0] = (ushort)in[i+3];
-      (out+j+3)[1] = (ushort)in[i+0];
-      (out+j+3)[2] = (ushort)in[i+1];
-   }
-}
-static void translate_polygon_ubyte2ushort_last2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (ushort)in[0];
-      (out+j)[1] = (ushort)in[i+1];
-      (out+j)[2] = (ushort)in[i+2];
-   }
-}
-static void translate_points_ubyte2ushort_last2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i++) { 
-      (out+i)[0] = (ushort)in[i];
-   }
-}
-static void translate_lines_ubyte2ushort_last2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i+=2) { 
-      (out+i)[0] = (ushort)in[i];
-      (out+i)[1] = (ushort)in[i+1];
-   }
-}
-static void translate_linestrip_ubyte2ushort_last2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=2, i++) { 
-      (out+j)[0] = (ushort)in[i];
-      (out+j)[1] = (ushort)in[i+1];
-   }
-}
-static void translate_lineloop_ubyte2ushort_last2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr - 2; j+=2, i++) { 
-      (out+j)[0] = (ushort)in[i];
-      (out+j)[1] = (ushort)in[i+1];
-   }
-      (out+j)[0] = (ushort)in[i];
-      (out+j)[1] = (ushort)in[0];
-}
-static void translate_tris_ubyte2ushort_last2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i+=3) { 
-      (out+i)[0] = (ushort)in[i];
-      (out+i)[1] = (ushort)in[i+1];
-      (out+i)[2] = (ushort)in[i+2];
-   }
-}
-static void translate_tristrip_ubyte2ushort_last2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (ushort)in[i+(i&1)];
-      (out+j)[1] = (ushort)in[i+1-(i&1)];
-      (out+j)[2] = (ushort)in[i+2];
-   }
-}
-static void translate_trifan_ubyte2ushort_last2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (ushort)in[0];
-      (out+j)[1] = (ushort)in[i+1];
-      (out+j)[2] = (ushort)in[i+2];
-   }
-}
-static void translate_quads_ubyte2ushort_last2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=6, i+=4) { 
-      (out+j+0)[0] = (ushort)in[i+0];
-      (out+j+0)[1] = (ushort)in[i+1];
-      (out+j+0)[2] = (ushort)in[i+3];
-      (out+j+3)[0] = (ushort)in[i+1];
-      (out+j+3)[1] = (ushort)in[i+2];
-      (out+j+3)[2] = (ushort)in[i+3];
-   }
-}
-static void translate_quadstrip_ubyte2ushort_last2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=6, i+=2) { 
-      (out+j+0)[0] = (ushort)in[i+2];
-      (out+j+0)[1] = (ushort)in[i+0];
-      (out+j+0)[2] = (ushort)in[i+3];
-      (out+j+3)[0] = (ushort)in[i+0];
-      (out+j+3)[1] = (ushort)in[i+1];
-      (out+j+3)[2] = (ushort)in[i+3];
-   }
-}
-static void translate_polygon_ubyte2ushort_last2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (ushort)in[i+1];
-      (out+j)[1] = (ushort)in[i+2];
-      (out+j)[2] = (ushort)in[0];
-   }
-}
-static void translate_points_ubyte2uint_first2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i++) { 
-      (out+i)[0] = (uint)in[i];
-   }
-}
-static void translate_lines_ubyte2uint_first2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i+=2) { 
-      (out+i)[0] = (uint)in[i];
-      (out+i)[1] = (uint)in[i+1];
-   }
-}
-static void translate_linestrip_ubyte2uint_first2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=2, i++) { 
-      (out+j)[0] = (uint)in[i];
-      (out+j)[1] = (uint)in[i+1];
-   }
-}
-static void translate_lineloop_ubyte2uint_first2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr - 2; j+=2, i++) { 
-      (out+j)[0] = (uint)in[i];
-      (out+j)[1] = (uint)in[i+1];
-   }
-      (out+j)[0] = (uint)in[i];
-      (out+j)[1] = (uint)in[0];
-}
-static void translate_tris_ubyte2uint_first2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i+=3) { 
-      (out+i)[0] = (uint)in[i];
-      (out+i)[1] = (uint)in[i+1];
-      (out+i)[2] = (uint)in[i+2];
-   }
-}
-static void translate_tristrip_ubyte2uint_first2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (uint)in[i];
-      (out+j)[1] = (uint)in[i+1+(i&1)];
-      (out+j)[2] = (uint)in[i+2-(i&1)];
-   }
-}
-static void translate_trifan_ubyte2uint_first2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (uint)in[0];
-      (out+j)[1] = (uint)in[i+1];
-      (out+j)[2] = (uint)in[i+2];
-   }
-}
-static void translate_quads_ubyte2uint_first2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=6, i+=4) { 
-      (out+j+0)[0] = (uint)in[i+0];
-      (out+j+0)[1] = (uint)in[i+1];
-      (out+j+0)[2] = (uint)in[i+3];
-      (out+j+3)[0] = (uint)in[i+1];
-      (out+j+3)[1] = (uint)in[i+2];
-      (out+j+3)[2] = (uint)in[i+3];
-   }
-}
-static void translate_quadstrip_ubyte2uint_first2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=6, i+=2) { 
-      (out+j+0)[0] = (uint)in[i+2];
-      (out+j+0)[1] = (uint)in[i+0];
-      (out+j+0)[2] = (uint)in[i+3];
-      (out+j+3)[0] = (uint)in[i+0];
-      (out+j+3)[1] = (uint)in[i+1];
-      (out+j+3)[2] = (uint)in[i+3];
-   }
-}
-static void translate_polygon_ubyte2uint_first2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (uint)in[0];
-      (out+j)[1] = (uint)in[i+1];
-      (out+j)[2] = (uint)in[i+2];
-   }
-}
-static void translate_points_ubyte2uint_first2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i++) { 
-      (out+i)[0] = (uint)in[i];
-   }
-}
-static void translate_lines_ubyte2uint_first2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i+=2) { 
-      (out+i)[0] = (uint)in[i+1];
-      (out+i)[1] = (uint)in[i];
-   }
-}
-static void translate_linestrip_ubyte2uint_first2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=2, i++) { 
-      (out+j)[0] = (uint)in[i+1];
-      (out+j)[1] = (uint)in[i];
-   }
-}
-static void translate_lineloop_ubyte2uint_first2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr - 2; j+=2, i++) { 
-      (out+j)[0] = (uint)in[i+1];
-      (out+j)[1] = (uint)in[i];
-   }
-      (out+j)[0] = (uint)in[0];
-      (out+j)[1] = (uint)in[i];
-}
-static void translate_tris_ubyte2uint_first2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i+=3) { 
-      (out+i)[0] = (uint)in[i+1];
-      (out+i)[1] = (uint)in[i+2];
-      (out+i)[2] = (uint)in[i];
-   }
-}
-static void translate_tristrip_ubyte2uint_first2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (uint)in[i+1+(i&1)];
-      (out+j)[1] = (uint)in[i+2-(i&1)];
-      (out+j)[2] = (uint)in[i];
-   }
-}
-static void translate_trifan_ubyte2uint_first2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (uint)in[i+1];
-      (out+j)[1] = (uint)in[i+2];
-      (out+j)[2] = (uint)in[0];
-   }
-}
-static void translate_quads_ubyte2uint_first2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=6, i+=4) { 
-      (out+j+0)[0] = (uint)in[i+1];
-      (out+j+0)[1] = (uint)in[i+3];
-      (out+j+0)[2] = (uint)in[i+0];
-      (out+j+3)[0] = (uint)in[i+2];
-      (out+j+3)[1] = (uint)in[i+3];
-      (out+j+3)[2] = (uint)in[i+1];
-   }
-}
-static void translate_quadstrip_ubyte2uint_first2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=6, i+=2) { 
-      (out+j+0)[0] = (uint)in[i+0];
-      (out+j+0)[1] = (uint)in[i+3];
-      (out+j+0)[2] = (uint)in[i+2];
-      (out+j+3)[0] = (uint)in[i+1];
-      (out+j+3)[1] = (uint)in[i+3];
-      (out+j+3)[2] = (uint)in[i+0];
-   }
-}
-static void translate_polygon_ubyte2uint_first2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (uint)in[i+1];
-      (out+j)[1] = (uint)in[i+2];
-      (out+j)[2] = (uint)in[0];
-   }
-}
-static void translate_points_ubyte2uint_last2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i++) { 
-      (out+i)[0] = (uint)in[i];
-   }
-}
-static void translate_lines_ubyte2uint_last2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i+=2) { 
-      (out+i)[0] = (uint)in[i+1];
-      (out+i)[1] = (uint)in[i];
-   }
-}
-static void translate_linestrip_ubyte2uint_last2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=2, i++) { 
-      (out+j)[0] = (uint)in[i+1];
-      (out+j)[1] = (uint)in[i];
-   }
-}
-static void translate_lineloop_ubyte2uint_last2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr - 2; j+=2, i++) { 
-      (out+j)[0] = (uint)in[i+1];
-      (out+j)[1] = (uint)in[i];
-   }
-      (out+j)[0] = (uint)in[0];
-      (out+j)[1] = (uint)in[i];
-}
-static void translate_tris_ubyte2uint_last2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i+=3) { 
-      (out+i)[0] = (uint)in[i+2];
-      (out+i)[1] = (uint)in[i];
-      (out+i)[2] = (uint)in[i+1];
-   }
-}
-static void translate_tristrip_ubyte2uint_last2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (uint)in[i+2];
-      (out+j)[1] = (uint)in[i+(i&1)];
-      (out+j)[2] = (uint)in[i+1-(i&1)];
-   }
-}
-static void translate_trifan_ubyte2uint_last2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (uint)in[i+2];
-      (out+j)[1] = (uint)in[0];
-      (out+j)[2] = (uint)in[i+1];
-   }
-}
-static void translate_quads_ubyte2uint_last2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=6, i+=4) { 
-      (out+j+0)[0] = (uint)in[i+3];
-      (out+j+0)[1] = (uint)in[i+0];
-      (out+j+0)[2] = (uint)in[i+1];
-      (out+j+3)[0] = (uint)in[i+3];
-      (out+j+3)[1] = (uint)in[i+1];
-      (out+j+3)[2] = (uint)in[i+2];
-   }
-}
-static void translate_quadstrip_ubyte2uint_last2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=6, i+=2) { 
-      (out+j+0)[0] = (uint)in[i+3];
-      (out+j+0)[1] = (uint)in[i+2];
-      (out+j+0)[2] = (uint)in[i+0];
-      (out+j+3)[0] = (uint)in[i+3];
-      (out+j+3)[1] = (uint)in[i+0];
-      (out+j+3)[2] = (uint)in[i+1];
-   }
-}
-static void translate_polygon_ubyte2uint_last2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (uint)in[0];
-      (out+j)[1] = (uint)in[i+1];
-      (out+j)[2] = (uint)in[i+2];
-   }
-}
-static void translate_points_ubyte2uint_last2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i++) { 
-      (out+i)[0] = (uint)in[i];
-   }
-}
-static void translate_lines_ubyte2uint_last2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i+=2) { 
-      (out+i)[0] = (uint)in[i];
-      (out+i)[1] = (uint)in[i+1];
-   }
-}
-static void translate_linestrip_ubyte2uint_last2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=2, i++) { 
-      (out+j)[0] = (uint)in[i];
-      (out+j)[1] = (uint)in[i+1];
-   }
-}
-static void translate_lineloop_ubyte2uint_last2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr - 2; j+=2, i++) { 
-      (out+j)[0] = (uint)in[i];
-      (out+j)[1] = (uint)in[i+1];
-   }
-      (out+j)[0] = (uint)in[i];
-      (out+j)[1] = (uint)in[0];
-}
-static void translate_tris_ubyte2uint_last2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i+=3) { 
-      (out+i)[0] = (uint)in[i];
-      (out+i)[1] = (uint)in[i+1];
-      (out+i)[2] = (uint)in[i+2];
-   }
-}
-static void translate_tristrip_ubyte2uint_last2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (uint)in[i+(i&1)];
-      (out+j)[1] = (uint)in[i+1-(i&1)];
-      (out+j)[2] = (uint)in[i+2];
-   }
-}
-static void translate_trifan_ubyte2uint_last2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (uint)in[0];
-      (out+j)[1] = (uint)in[i+1];
-      (out+j)[2] = (uint)in[i+2];
-   }
-}
-static void translate_quads_ubyte2uint_last2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=6, i+=4) { 
-      (out+j+0)[0] = (uint)in[i+0];
-      (out+j+0)[1] = (uint)in[i+1];
-      (out+j+0)[2] = (uint)in[i+3];
-      (out+j+3)[0] = (uint)in[i+1];
-      (out+j+3)[1] = (uint)in[i+2];
-      (out+j+3)[2] = (uint)in[i+3];
-   }
-}
-static void translate_quadstrip_ubyte2uint_last2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=6, i+=2) { 
-      (out+j+0)[0] = (uint)in[i+2];
-      (out+j+0)[1] = (uint)in[i+0];
-      (out+j+0)[2] = (uint)in[i+3];
-      (out+j+3)[0] = (uint)in[i+0];
-      (out+j+3)[1] = (uint)in[i+1];
-      (out+j+3)[2] = (uint)in[i+3];
-   }
-}
-static void translate_polygon_ubyte2uint_last2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (uint)in[i+1];
-      (out+j)[1] = (uint)in[i+2];
-      (out+j)[2] = (uint)in[0];
-   }
-}
-static void translate_points_ushort2ushort_first2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i++) { 
-      (out+i)[0] = (ushort)in[i];
-   }
-}
-static void translate_lines_ushort2ushort_first2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i+=2) { 
-      (out+i)[0] = (ushort)in[i];
-      (out+i)[1] = (ushort)in[i+1];
-   }
-}
-static void translate_linestrip_ushort2ushort_first2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=2, i++) { 
-      (out+j)[0] = (ushort)in[i];
-      (out+j)[1] = (ushort)in[i+1];
-   }
-}
-static void translate_lineloop_ushort2ushort_first2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr - 2; j+=2, i++) { 
-      (out+j)[0] = (ushort)in[i];
-      (out+j)[1] = (ushort)in[i+1];
-   }
-      (out+j)[0] = (ushort)in[i];
-      (out+j)[1] = (ushort)in[0];
-}
-static void translate_tris_ushort2ushort_first2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i+=3) { 
-      (out+i)[0] = (ushort)in[i];
-      (out+i)[1] = (ushort)in[i+1];
-      (out+i)[2] = (ushort)in[i+2];
-   }
-}
-static void translate_tristrip_ushort2ushort_first2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (ushort)in[i];
-      (out+j)[1] = (ushort)in[i+1+(i&1)];
-      (out+j)[2] = (ushort)in[i+2-(i&1)];
-   }
-}
-static void translate_trifan_ushort2ushort_first2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (ushort)in[0];
-      (out+j)[1] = (ushort)in[i+1];
-      (out+j)[2] = (ushort)in[i+2];
-   }
-}
-static void translate_quads_ushort2ushort_first2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=6, i+=4) { 
-      (out+j+0)[0] = (ushort)in[i+0];
-      (out+j+0)[1] = (ushort)in[i+1];
-      (out+j+0)[2] = (ushort)in[i+3];
-      (out+j+3)[0] = (ushort)in[i+1];
-      (out+j+3)[1] = (ushort)in[i+2];
-      (out+j+3)[2] = (ushort)in[i+3];
-   }
-}
-static void translate_quadstrip_ushort2ushort_first2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=6, i+=2) { 
-      (out+j+0)[0] = (ushort)in[i+2];
-      (out+j+0)[1] = (ushort)in[i+0];
-      (out+j+0)[2] = (ushort)in[i+3];
-      (out+j+3)[0] = (ushort)in[i+0];
-      (out+j+3)[1] = (ushort)in[i+1];
-      (out+j+3)[2] = (ushort)in[i+3];
-   }
-}
-static void translate_polygon_ushort2ushort_first2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (ushort)in[0];
-      (out+j)[1] = (ushort)in[i+1];
-      (out+j)[2] = (ushort)in[i+2];
-   }
-}
-static void translate_points_ushort2ushort_first2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i++) { 
-      (out+i)[0] = (ushort)in[i];
-   }
-}
-static void translate_lines_ushort2ushort_first2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i+=2) { 
-      (out+i)[0] = (ushort)in[i+1];
-      (out+i)[1] = (ushort)in[i];
-   }
-}
-static void translate_linestrip_ushort2ushort_first2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=2, i++) { 
-      (out+j)[0] = (ushort)in[i+1];
-      (out+j)[1] = (ushort)in[i];
-   }
-}
-static void translate_lineloop_ushort2ushort_first2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr - 2; j+=2, i++) { 
-      (out+j)[0] = (ushort)in[i+1];
-      (out+j)[1] = (ushort)in[i];
-   }
-      (out+j)[0] = (ushort)in[0];
-      (out+j)[1] = (ushort)in[i];
-}
-static void translate_tris_ushort2ushort_first2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i+=3) { 
-      (out+i)[0] = (ushort)in[i+1];
-      (out+i)[1] = (ushort)in[i+2];
-      (out+i)[2] = (ushort)in[i];
-   }
-}
-static void translate_tristrip_ushort2ushort_first2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (ushort)in[i+1+(i&1)];
-      (out+j)[1] = (ushort)in[i+2-(i&1)];
-      (out+j)[2] = (ushort)in[i];
-   }
-}
-static void translate_trifan_ushort2ushort_first2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (ushort)in[i+1];
-      (out+j)[1] = (ushort)in[i+2];
-      (out+j)[2] = (ushort)in[0];
-   }
-}
-static void translate_quads_ushort2ushort_first2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=6, i+=4) { 
-      (out+j+0)[0] = (ushort)in[i+1];
-      (out+j+0)[1] = (ushort)in[i+3];
-      (out+j+0)[2] = (ushort)in[i+0];
-      (out+j+3)[0] = (ushort)in[i+2];
-      (out+j+3)[1] = (ushort)in[i+3];
-      (out+j+3)[2] = (ushort)in[i+1];
-   }
-}
-static void translate_quadstrip_ushort2ushort_first2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=6, i+=2) { 
-      (out+j+0)[0] = (ushort)in[i+0];
-      (out+j+0)[1] = (ushort)in[i+3];
-      (out+j+0)[2] = (ushort)in[i+2];
-      (out+j+3)[0] = (ushort)in[i+1];
-      (out+j+3)[1] = (ushort)in[i+3];
-      (out+j+3)[2] = (ushort)in[i+0];
-   }
-}
-static void translate_polygon_ushort2ushort_first2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (ushort)in[i+1];
-      (out+j)[1] = (ushort)in[i+2];
-      (out+j)[2] = (ushort)in[0];
-   }
-}
-static void translate_points_ushort2ushort_last2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i++) { 
-      (out+i)[0] = (ushort)in[i];
-   }
-}
-static void translate_lines_ushort2ushort_last2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i+=2) { 
-      (out+i)[0] = (ushort)in[i+1];
-      (out+i)[1] = (ushort)in[i];
-   }
-}
-static void translate_linestrip_ushort2ushort_last2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=2, i++) { 
-      (out+j)[0] = (ushort)in[i+1];
-      (out+j)[1] = (ushort)in[i];
-   }
-}
-static void translate_lineloop_ushort2ushort_last2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr - 2; j+=2, i++) { 
-      (out+j)[0] = (ushort)in[i+1];
-      (out+j)[1] = (ushort)in[i];
-   }
-      (out+j)[0] = (ushort)in[0];
-      (out+j)[1] = (ushort)in[i];
-}
-static void translate_tris_ushort2ushort_last2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i+=3) { 
-      (out+i)[0] = (ushort)in[i+2];
-      (out+i)[1] = (ushort)in[i];
-      (out+i)[2] = (ushort)in[i+1];
-   }
-}
-static void translate_tristrip_ushort2ushort_last2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (ushort)in[i+2];
-      (out+j)[1] = (ushort)in[i+(i&1)];
-      (out+j)[2] = (ushort)in[i+1-(i&1)];
-   }
-}
-static void translate_trifan_ushort2ushort_last2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (ushort)in[i+2];
-      (out+j)[1] = (ushort)in[0];
-      (out+j)[2] = (ushort)in[i+1];
-   }
-}
-static void translate_quads_ushort2ushort_last2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=6, i+=4) { 
-      (out+j+0)[0] = (ushort)in[i+3];
-      (out+j+0)[1] = (ushort)in[i+0];
-      (out+j+0)[2] = (ushort)in[i+1];
-      (out+j+3)[0] = (ushort)in[i+3];
-      (out+j+3)[1] = (ushort)in[i+1];
-      (out+j+3)[2] = (ushort)in[i+2];
-   }
-}
-static void translate_quadstrip_ushort2ushort_last2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=6, i+=2) { 
-      (out+j+0)[0] = (ushort)in[i+3];
-      (out+j+0)[1] = (ushort)in[i+2];
-      (out+j+0)[2] = (ushort)in[i+0];
-      (out+j+3)[0] = (ushort)in[i+3];
-      (out+j+3)[1] = (ushort)in[i+0];
-      (out+j+3)[2] = (ushort)in[i+1];
-   }
-}
-static void translate_polygon_ushort2ushort_last2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (ushort)in[0];
-      (out+j)[1] = (ushort)in[i+1];
-      (out+j)[2] = (ushort)in[i+2];
-   }
-}
-static void translate_points_ushort2ushort_last2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i++) { 
-      (out+i)[0] = (ushort)in[i];
-   }
-}
-static void translate_lines_ushort2ushort_last2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i+=2) { 
-      (out+i)[0] = (ushort)in[i];
-      (out+i)[1] = (ushort)in[i+1];
-   }
-}
-static void translate_linestrip_ushort2ushort_last2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=2, i++) { 
-      (out+j)[0] = (ushort)in[i];
-      (out+j)[1] = (ushort)in[i+1];
-   }
-}
-static void translate_lineloop_ushort2ushort_last2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr - 2; j+=2, i++) { 
-      (out+j)[0] = (ushort)in[i];
-      (out+j)[1] = (ushort)in[i+1];
-   }
-      (out+j)[0] = (ushort)in[i];
-      (out+j)[1] = (ushort)in[0];
-}
-static void translate_tris_ushort2ushort_last2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i+=3) { 
-      (out+i)[0] = (ushort)in[i];
-      (out+i)[1] = (ushort)in[i+1];
-      (out+i)[2] = (ushort)in[i+2];
-   }
-}
-static void translate_tristrip_ushort2ushort_last2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (ushort)in[i+(i&1)];
-      (out+j)[1] = (ushort)in[i+1-(i&1)];
-      (out+j)[2] = (ushort)in[i+2];
-   }
-}
-static void translate_trifan_ushort2ushort_last2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (ushort)in[0];
-      (out+j)[1] = (ushort)in[i+1];
-      (out+j)[2] = (ushort)in[i+2];
-   }
-}
-static void translate_quads_ushort2ushort_last2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=6, i+=4) { 
-      (out+j+0)[0] = (ushort)in[i+0];
-      (out+j+0)[1] = (ushort)in[i+1];
-      (out+j+0)[2] = (ushort)in[i+3];
-      (out+j+3)[0] = (ushort)in[i+1];
-      (out+j+3)[1] = (ushort)in[i+2];
-      (out+j+3)[2] = (ushort)in[i+3];
-   }
-}
-static void translate_quadstrip_ushort2ushort_last2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=6, i+=2) { 
-      (out+j+0)[0] = (ushort)in[i+2];
-      (out+j+0)[1] = (ushort)in[i+0];
-      (out+j+0)[2] = (ushort)in[i+3];
-      (out+j+3)[0] = (ushort)in[i+0];
-      (out+j+3)[1] = (ushort)in[i+1];
-      (out+j+3)[2] = (ushort)in[i+3];
-   }
-}
-static void translate_polygon_ushort2ushort_last2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (ushort)in[i+1];
-      (out+j)[1] = (ushort)in[i+2];
-      (out+j)[2] = (ushort)in[0];
-   }
-}
-static void translate_points_ushort2uint_first2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i++) { 
-      (out+i)[0] = (uint)in[i];
-   }
-}
-static void translate_lines_ushort2uint_first2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i+=2) { 
-      (out+i)[0] = (uint)in[i];
-      (out+i)[1] = (uint)in[i+1];
-   }
-}
-static void translate_linestrip_ushort2uint_first2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=2, i++) { 
-      (out+j)[0] = (uint)in[i];
-      (out+j)[1] = (uint)in[i+1];
-   }
-}
-static void translate_lineloop_ushort2uint_first2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr - 2; j+=2, i++) { 
-      (out+j)[0] = (uint)in[i];
-      (out+j)[1] = (uint)in[i+1];
-   }
-      (out+j)[0] = (uint)in[i];
-      (out+j)[1] = (uint)in[0];
-}
-static void translate_tris_ushort2uint_first2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i+=3) { 
-      (out+i)[0] = (uint)in[i];
-      (out+i)[1] = (uint)in[i+1];
-      (out+i)[2] = (uint)in[i+2];
-   }
-}
-static void translate_tristrip_ushort2uint_first2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (uint)in[i];
-      (out+j)[1] = (uint)in[i+1+(i&1)];
-      (out+j)[2] = (uint)in[i+2-(i&1)];
-   }
-}
-static void translate_trifan_ushort2uint_first2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (uint)in[0];
-      (out+j)[1] = (uint)in[i+1];
-      (out+j)[2] = (uint)in[i+2];
-   }
-}
-static void translate_quads_ushort2uint_first2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=6, i+=4) { 
-      (out+j+0)[0] = (uint)in[i+0];
-      (out+j+0)[1] = (uint)in[i+1];
-      (out+j+0)[2] = (uint)in[i+3];
-      (out+j+3)[0] = (uint)in[i+1];
-      (out+j+3)[1] = (uint)in[i+2];
-      (out+j+3)[2] = (uint)in[i+3];
-   }
-}
-static void translate_quadstrip_ushort2uint_first2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=6, i+=2) { 
-      (out+j+0)[0] = (uint)in[i+2];
-      (out+j+0)[1] = (uint)in[i+0];
-      (out+j+0)[2] = (uint)in[i+3];
-      (out+j+3)[0] = (uint)in[i+0];
-      (out+j+3)[1] = (uint)in[i+1];
-      (out+j+3)[2] = (uint)in[i+3];
-   }
-}
-static void translate_polygon_ushort2uint_first2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (uint)in[0];
-      (out+j)[1] = (uint)in[i+1];
-      (out+j)[2] = (uint)in[i+2];
-   }
-}
-static void translate_points_ushort2uint_first2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i++) { 
-      (out+i)[0] = (uint)in[i];
-   }
-}
-static void translate_lines_ushort2uint_first2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i+=2) { 
-      (out+i)[0] = (uint)in[i+1];
-      (out+i)[1] = (uint)in[i];
-   }
-}
-static void translate_linestrip_ushort2uint_first2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=2, i++) { 
-      (out+j)[0] = (uint)in[i+1];
-      (out+j)[1] = (uint)in[i];
-   }
-}
-static void translate_lineloop_ushort2uint_first2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr - 2; j+=2, i++) { 
-      (out+j)[0] = (uint)in[i+1];
-      (out+j)[1] = (uint)in[i];
-   }
-      (out+j)[0] = (uint)in[0];
-      (out+j)[1] = (uint)in[i];
-}
-static void translate_tris_ushort2uint_first2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i+=3) { 
-      (out+i)[0] = (uint)in[i+1];
-      (out+i)[1] = (uint)in[i+2];
-      (out+i)[2] = (uint)in[i];
-   }
-}
-static void translate_tristrip_ushort2uint_first2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (uint)in[i+1+(i&1)];
-      (out+j)[1] = (uint)in[i+2-(i&1)];
-      (out+j)[2] = (uint)in[i];
-   }
-}
-static void translate_trifan_ushort2uint_first2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (uint)in[i+1];
-      (out+j)[1] = (uint)in[i+2];
-      (out+j)[2] = (uint)in[0];
-   }
-}
-static void translate_quads_ushort2uint_first2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=6, i+=4) { 
-      (out+j+0)[0] = (uint)in[i+1];
-      (out+j+0)[1] = (uint)in[i+3];
-      (out+j+0)[2] = (uint)in[i+0];
-      (out+j+3)[0] = (uint)in[i+2];
-      (out+j+3)[1] = (uint)in[i+3];
-      (out+j+3)[2] = (uint)in[i+1];
-   }
-}
-static void translate_quadstrip_ushort2uint_first2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=6, i+=2) { 
-      (out+j+0)[0] = (uint)in[i+0];
-      (out+j+0)[1] = (uint)in[i+3];
-      (out+j+0)[2] = (uint)in[i+2];
-      (out+j+3)[0] = (uint)in[i+1];
-      (out+j+3)[1] = (uint)in[i+3];
-      (out+j+3)[2] = (uint)in[i+0];
-   }
-}
-static void translate_polygon_ushort2uint_first2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (uint)in[i+1];
-      (out+j)[1] = (uint)in[i+2];
-      (out+j)[2] = (uint)in[0];
-   }
-}
-static void translate_points_ushort2uint_last2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i++) { 
-      (out+i)[0] = (uint)in[i];
-   }
-}
-static void translate_lines_ushort2uint_last2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i+=2) { 
-      (out+i)[0] = (uint)in[i+1];
-      (out+i)[1] = (uint)in[i];
-   }
-}
-static void translate_linestrip_ushort2uint_last2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=2, i++) { 
-      (out+j)[0] = (uint)in[i+1];
-      (out+j)[1] = (uint)in[i];
-   }
-}
-static void translate_lineloop_ushort2uint_last2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr - 2; j+=2, i++) { 
-      (out+j)[0] = (uint)in[i+1];
-      (out+j)[1] = (uint)in[i];
-   }
-      (out+j)[0] = (uint)in[0];
-      (out+j)[1] = (uint)in[i];
-}
-static void translate_tris_ushort2uint_last2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i+=3) { 
-      (out+i)[0] = (uint)in[i+2];
-      (out+i)[1] = (uint)in[i];
-      (out+i)[2] = (uint)in[i+1];
-   }
-}
-static void translate_tristrip_ushort2uint_last2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (uint)in[i+2];
-      (out+j)[1] = (uint)in[i+(i&1)];
-      (out+j)[2] = (uint)in[i+1-(i&1)];
-   }
-}
-static void translate_trifan_ushort2uint_last2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (uint)in[i+2];
-      (out+j)[1] = (uint)in[0];
-      (out+j)[2] = (uint)in[i+1];
-   }
-}
-static void translate_quads_ushort2uint_last2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=6, i+=4) { 
-      (out+j+0)[0] = (uint)in[i+3];
-      (out+j+0)[1] = (uint)in[i+0];
-      (out+j+0)[2] = (uint)in[i+1];
-      (out+j+3)[0] = (uint)in[i+3];
-      (out+j+3)[1] = (uint)in[i+1];
-      (out+j+3)[2] = (uint)in[i+2];
-   }
-}
-static void translate_quadstrip_ushort2uint_last2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=6, i+=2) { 
-      (out+j+0)[0] = (uint)in[i+3];
-      (out+j+0)[1] = (uint)in[i+2];
-      (out+j+0)[2] = (uint)in[i+0];
-      (out+j+3)[0] = (uint)in[i+3];
-      (out+j+3)[1] = (uint)in[i+0];
-      (out+j+3)[2] = (uint)in[i+1];
-   }
-}
-static void translate_polygon_ushort2uint_last2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (uint)in[0];
-      (out+j)[1] = (uint)in[i+1];
-      (out+j)[2] = (uint)in[i+2];
-   }
-}
-static void translate_points_ushort2uint_last2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i++) { 
-      (out+i)[0] = (uint)in[i];
-   }
-}
-static void translate_lines_ushort2uint_last2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i+=2) { 
-      (out+i)[0] = (uint)in[i];
-      (out+i)[1] = (uint)in[i+1];
-   }
-}
-static void translate_linestrip_ushort2uint_last2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=2, i++) { 
-      (out+j)[0] = (uint)in[i];
-      (out+j)[1] = (uint)in[i+1];
-   }
-}
-static void translate_lineloop_ushort2uint_last2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr - 2; j+=2, i++) { 
-      (out+j)[0] = (uint)in[i];
-      (out+j)[1] = (uint)in[i+1];
-   }
-      (out+j)[0] = (uint)in[i];
-      (out+j)[1] = (uint)in[0];
-}
-static void translate_tris_ushort2uint_last2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i+=3) { 
-      (out+i)[0] = (uint)in[i];
-      (out+i)[1] = (uint)in[i+1];
-      (out+i)[2] = (uint)in[i+2];
-   }
-}
-static void translate_tristrip_ushort2uint_last2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (uint)in[i+(i&1)];
-      (out+j)[1] = (uint)in[i+1-(i&1)];
-      (out+j)[2] = (uint)in[i+2];
-   }
-}
-static void translate_trifan_ushort2uint_last2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (uint)in[0];
-      (out+j)[1] = (uint)in[i+1];
-      (out+j)[2] = (uint)in[i+2];
-   }
-}
-static void translate_quads_ushort2uint_last2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=6, i+=4) { 
-      (out+j+0)[0] = (uint)in[i+0];
-      (out+j+0)[1] = (uint)in[i+1];
-      (out+j+0)[2] = (uint)in[i+3];
-      (out+j+3)[0] = (uint)in[i+1];
-      (out+j+3)[1] = (uint)in[i+2];
-      (out+j+3)[2] = (uint)in[i+3];
-   }
-}
-static void translate_quadstrip_ushort2uint_last2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=6, i+=2) { 
-      (out+j+0)[0] = (uint)in[i+2];
-      (out+j+0)[1] = (uint)in[i+0];
-      (out+j+0)[2] = (uint)in[i+3];
-      (out+j+3)[0] = (uint)in[i+0];
-      (out+j+3)[1] = (uint)in[i+1];
-      (out+j+3)[2] = (uint)in[i+3];
-   }
-}
-static void translate_polygon_ushort2uint_last2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (uint)in[i+1];
-      (out+j)[1] = (uint)in[i+2];
-      (out+j)[2] = (uint)in[0];
-   }
-}
-static void translate_points_uint2ushort_first2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i++) { 
-      (out+i)[0] = (ushort)in[i];
-   }
-}
-static void translate_lines_uint2ushort_first2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i+=2) { 
-      (out+i)[0] = (ushort)in[i];
-      (out+i)[1] = (ushort)in[i+1];
-   }
-}
-static void translate_linestrip_uint2ushort_first2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=2, i++) { 
-      (out+j)[0] = (ushort)in[i];
-      (out+j)[1] = (ushort)in[i+1];
-   }
-}
-static void translate_lineloop_uint2ushort_first2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr - 2; j+=2, i++) { 
-      (out+j)[0] = (ushort)in[i];
-      (out+j)[1] = (ushort)in[i+1];
-   }
-      (out+j)[0] = (ushort)in[i];
-      (out+j)[1] = (ushort)in[0];
-}
-static void translate_tris_uint2ushort_first2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i+=3) { 
-      (out+i)[0] = (ushort)in[i];
-      (out+i)[1] = (ushort)in[i+1];
-      (out+i)[2] = (ushort)in[i+2];
-   }
-}
-static void translate_tristrip_uint2ushort_first2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (ushort)in[i];
-      (out+j)[1] = (ushort)in[i+1+(i&1)];
-      (out+j)[2] = (ushort)in[i+2-(i&1)];
-   }
-}
-static void translate_trifan_uint2ushort_first2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (ushort)in[0];
-      (out+j)[1] = (ushort)in[i+1];
-      (out+j)[2] = (ushort)in[i+2];
-   }
-}
-static void translate_quads_uint2ushort_first2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=6, i+=4) { 
-      (out+j+0)[0] = (ushort)in[i+0];
-      (out+j+0)[1] = (ushort)in[i+1];
-      (out+j+0)[2] = (ushort)in[i+3];
-      (out+j+3)[0] = (ushort)in[i+1];
-      (out+j+3)[1] = (ushort)in[i+2];
-      (out+j+3)[2] = (ushort)in[i+3];
-   }
-}
-static void translate_quadstrip_uint2ushort_first2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=6, i+=2) { 
-      (out+j+0)[0] = (ushort)in[i+2];
-      (out+j+0)[1] = (ushort)in[i+0];
-      (out+j+0)[2] = (ushort)in[i+3];
-      (out+j+3)[0] = (ushort)in[i+0];
-      (out+j+3)[1] = (ushort)in[i+1];
-      (out+j+3)[2] = (ushort)in[i+3];
-   }
-}
-static void translate_polygon_uint2ushort_first2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (ushort)in[0];
-      (out+j)[1] = (ushort)in[i+1];
-      (out+j)[2] = (ushort)in[i+2];
-   }
-}
-static void translate_points_uint2ushort_first2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i++) { 
-      (out+i)[0] = (ushort)in[i];
-   }
-}
-static void translate_lines_uint2ushort_first2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i+=2) { 
-      (out+i)[0] = (ushort)in[i+1];
-      (out+i)[1] = (ushort)in[i];
-   }
-}
-static void translate_linestrip_uint2ushort_first2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=2, i++) { 
-      (out+j)[0] = (ushort)in[i+1];
-      (out+j)[1] = (ushort)in[i];
-   }
-}
-static void translate_lineloop_uint2ushort_first2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr - 2; j+=2, i++) { 
-      (out+j)[0] = (ushort)in[i+1];
-      (out+j)[1] = (ushort)in[i];
-   }
-      (out+j)[0] = (ushort)in[0];
-      (out+j)[1] = (ushort)in[i];
-}
-static void translate_tris_uint2ushort_first2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i+=3) { 
-      (out+i)[0] = (ushort)in[i+1];
-      (out+i)[1] = (ushort)in[i+2];
-      (out+i)[2] = (ushort)in[i];
-   }
-}
-static void translate_tristrip_uint2ushort_first2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (ushort)in[i+1+(i&1)];
-      (out+j)[1] = (ushort)in[i+2-(i&1)];
-      (out+j)[2] = (ushort)in[i];
-   }
-}
-static void translate_trifan_uint2ushort_first2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (ushort)in[i+1];
-      (out+j)[1] = (ushort)in[i+2];
-      (out+j)[2] = (ushort)in[0];
-   }
-}
-static void translate_quads_uint2ushort_first2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=6, i+=4) { 
-      (out+j+0)[0] = (ushort)in[i+1];
-      (out+j+0)[1] = (ushort)in[i+3];
-      (out+j+0)[2] = (ushort)in[i+0];
-      (out+j+3)[0] = (ushort)in[i+2];
-      (out+j+3)[1] = (ushort)in[i+3];
-      (out+j+3)[2] = (ushort)in[i+1];
-   }
-}
-static void translate_quadstrip_uint2ushort_first2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=6, i+=2) { 
-      (out+j+0)[0] = (ushort)in[i+0];
-      (out+j+0)[1] = (ushort)in[i+3];
-      (out+j+0)[2] = (ushort)in[i+2];
-      (out+j+3)[0] = (ushort)in[i+1];
-      (out+j+3)[1] = (ushort)in[i+3];
-      (out+j+3)[2] = (ushort)in[i+0];
-   }
-}
-static void translate_polygon_uint2ushort_first2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (ushort)in[i+1];
-      (out+j)[1] = (ushort)in[i+2];
-      (out+j)[2] = (ushort)in[0];
-   }
-}
-static void translate_points_uint2ushort_last2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i++) { 
-      (out+i)[0] = (ushort)in[i];
-   }
-}
-static void translate_lines_uint2ushort_last2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i+=2) { 
-      (out+i)[0] = (ushort)in[i+1];
-      (out+i)[1] = (ushort)in[i];
-   }
-}
-static void translate_linestrip_uint2ushort_last2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=2, i++) { 
-      (out+j)[0] = (ushort)in[i+1];
-      (out+j)[1] = (ushort)in[i];
-   }
-}
-static void translate_lineloop_uint2ushort_last2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr - 2; j+=2, i++) { 
-      (out+j)[0] = (ushort)in[i+1];
-      (out+j)[1] = (ushort)in[i];
-   }
-      (out+j)[0] = (ushort)in[0];
-      (out+j)[1] = (ushort)in[i];
-}
-static void translate_tris_uint2ushort_last2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i+=3) { 
-      (out+i)[0] = (ushort)in[i+2];
-      (out+i)[1] = (ushort)in[i];
-      (out+i)[2] = (ushort)in[i+1];
-   }
-}
-static void translate_tristrip_uint2ushort_last2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (ushort)in[i+2];
-      (out+j)[1] = (ushort)in[i+(i&1)];
-      (out+j)[2] = (ushort)in[i+1-(i&1)];
-   }
-}
-static void translate_trifan_uint2ushort_last2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (ushort)in[i+2];
-      (out+j)[1] = (ushort)in[0];
-      (out+j)[2] = (ushort)in[i+1];
-   }
-}
-static void translate_quads_uint2ushort_last2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=6, i+=4) { 
-      (out+j+0)[0] = (ushort)in[i+3];
-      (out+j+0)[1] = (ushort)in[i+0];
-      (out+j+0)[2] = (ushort)in[i+1];
-      (out+j+3)[0] = (ushort)in[i+3];
-      (out+j+3)[1] = (ushort)in[i+1];
-      (out+j+3)[2] = (ushort)in[i+2];
-   }
-}
-static void translate_quadstrip_uint2ushort_last2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=6, i+=2) { 
-      (out+j+0)[0] = (ushort)in[i+3];
-      (out+j+0)[1] = (ushort)in[i+2];
-      (out+j+0)[2] = (ushort)in[i+0];
-      (out+j+3)[0] = (ushort)in[i+3];
-      (out+j+3)[1] = (ushort)in[i+0];
-      (out+j+3)[2] = (ushort)in[i+1];
-   }
-}
-static void translate_polygon_uint2ushort_last2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (ushort)in[0];
-      (out+j)[1] = (ushort)in[i+1];
-      (out+j)[2] = (ushort)in[i+2];
-   }
-}
-static void translate_points_uint2ushort_last2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i++) { 
-      (out+i)[0] = (ushort)in[i];
-   }
-}
-static void translate_lines_uint2ushort_last2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i+=2) { 
-      (out+i)[0] = (ushort)in[i];
-      (out+i)[1] = (ushort)in[i+1];
-   }
-}
-static void translate_linestrip_uint2ushort_last2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=2, i++) { 
-      (out+j)[0] = (ushort)in[i];
-      (out+j)[1] = (ushort)in[i+1];
-   }
-}
-static void translate_lineloop_uint2ushort_last2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr - 2; j+=2, i++) { 
-      (out+j)[0] = (ushort)in[i];
-      (out+j)[1] = (ushort)in[i+1];
-   }
-      (out+j)[0] = (ushort)in[i];
-      (out+j)[1] = (ushort)in[0];
-}
-static void translate_tris_uint2ushort_last2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i+=3) { 
-      (out+i)[0] = (ushort)in[i];
-      (out+i)[1] = (ushort)in[i+1];
-      (out+i)[2] = (ushort)in[i+2];
-   }
-}
-static void translate_tristrip_uint2ushort_last2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (ushort)in[i+(i&1)];
-      (out+j)[1] = (ushort)in[i+1-(i&1)];
-      (out+j)[2] = (ushort)in[i+2];
-   }
-}
-static void translate_trifan_uint2ushort_last2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (ushort)in[0];
-      (out+j)[1] = (ushort)in[i+1];
-      (out+j)[2] = (ushort)in[i+2];
-   }
-}
-static void translate_quads_uint2ushort_last2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=6, i+=4) { 
-      (out+j+0)[0] = (ushort)in[i+0];
-      (out+j+0)[1] = (ushort)in[i+1];
-      (out+j+0)[2] = (ushort)in[i+3];
-      (out+j+3)[0] = (ushort)in[i+1];
-      (out+j+3)[1] = (ushort)in[i+2];
-      (out+j+3)[2] = (ushort)in[i+3];
-   }
-}
-static void translate_quadstrip_uint2ushort_last2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=6, i+=2) { 
-      (out+j+0)[0] = (ushort)in[i+2];
-      (out+j+0)[1] = (ushort)in[i+0];
-      (out+j+0)[2] = (ushort)in[i+3];
-      (out+j+3)[0] = (ushort)in[i+0];
-      (out+j+3)[1] = (ushort)in[i+1];
-      (out+j+3)[2] = (ushort)in[i+3];
-   }
-}
-static void translate_polygon_uint2ushort_last2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (ushort)in[i+1];
-      (out+j)[1] = (ushort)in[i+2];
-      (out+j)[2] = (ushort)in[0];
-   }
-}
-static void translate_points_uint2uint_first2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i++) { 
-      (out+i)[0] = (uint)in[i];
-   }
-}
-static void translate_lines_uint2uint_first2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i+=2) { 
-      (out+i)[0] = (uint)in[i];
-      (out+i)[1] = (uint)in[i+1];
-   }
-}
-static void translate_linestrip_uint2uint_first2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=2, i++) { 
-      (out+j)[0] = (uint)in[i];
-      (out+j)[1] = (uint)in[i+1];
-   }
-}
-static void translate_lineloop_uint2uint_first2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr - 2; j+=2, i++) { 
-      (out+j)[0] = (uint)in[i];
-      (out+j)[1] = (uint)in[i+1];
-   }
-      (out+j)[0] = (uint)in[i];
-      (out+j)[1] = (uint)in[0];
-}
-static void translate_tris_uint2uint_first2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i+=3) { 
-      (out+i)[0] = (uint)in[i];
-      (out+i)[1] = (uint)in[i+1];
-      (out+i)[2] = (uint)in[i+2];
-   }
-}
-static void translate_tristrip_uint2uint_first2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (uint)in[i];
-      (out+j)[1] = (uint)in[i+1+(i&1)];
-      (out+j)[2] = (uint)in[i+2-(i&1)];
-   }
-}
-static void translate_trifan_uint2uint_first2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (uint)in[0];
-      (out+j)[1] = (uint)in[i+1];
-      (out+j)[2] = (uint)in[i+2];
-   }
-}
-static void translate_quads_uint2uint_first2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=6, i+=4) { 
-      (out+j+0)[0] = (uint)in[i+0];
-      (out+j+0)[1] = (uint)in[i+1];
-      (out+j+0)[2] = (uint)in[i+3];
-      (out+j+3)[0] = (uint)in[i+1];
-      (out+j+3)[1] = (uint)in[i+2];
-      (out+j+3)[2] = (uint)in[i+3];
-   }
-}
-static void translate_quadstrip_uint2uint_first2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=6, i+=2) { 
-      (out+j+0)[0] = (uint)in[i+2];
-      (out+j+0)[1] = (uint)in[i+0];
-      (out+j+0)[2] = (uint)in[i+3];
-      (out+j+3)[0] = (uint)in[i+0];
-      (out+j+3)[1] = (uint)in[i+1];
-      (out+j+3)[2] = (uint)in[i+3];
-   }
-}
-static void translate_polygon_uint2uint_first2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (uint)in[0];
-      (out+j)[1] = (uint)in[i+1];
-      (out+j)[2] = (uint)in[i+2];
-   }
-}
-static void translate_points_uint2uint_first2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i++) { 
-      (out+i)[0] = (uint)in[i];
-   }
-}
-static void translate_lines_uint2uint_first2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i+=2) { 
-      (out+i)[0] = (uint)in[i+1];
-      (out+i)[1] = (uint)in[i];
-   }
-}
-static void translate_linestrip_uint2uint_first2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=2, i++) { 
-      (out+j)[0] = (uint)in[i+1];
-      (out+j)[1] = (uint)in[i];
-   }
-}
-static void translate_lineloop_uint2uint_first2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr - 2; j+=2, i++) { 
-      (out+j)[0] = (uint)in[i+1];
-      (out+j)[1] = (uint)in[i];
-   }
-      (out+j)[0] = (uint)in[0];
-      (out+j)[1] = (uint)in[i];
-}
-static void translate_tris_uint2uint_first2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i+=3) { 
-      (out+i)[0] = (uint)in[i+1];
-      (out+i)[1] = (uint)in[i+2];
-      (out+i)[2] = (uint)in[i];
-   }
-}
-static void translate_tristrip_uint2uint_first2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (uint)in[i+1+(i&1)];
-      (out+j)[1] = (uint)in[i+2-(i&1)];
-      (out+j)[2] = (uint)in[i];
-   }
-}
-static void translate_trifan_uint2uint_first2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (uint)in[i+1];
-      (out+j)[1] = (uint)in[i+2];
-      (out+j)[2] = (uint)in[0];
-   }
-}
-static void translate_quads_uint2uint_first2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=6, i+=4) { 
-      (out+j+0)[0] = (uint)in[i+1];
-      (out+j+0)[1] = (uint)in[i+3];
-      (out+j+0)[2] = (uint)in[i+0];
-      (out+j+3)[0] = (uint)in[i+2];
-      (out+j+3)[1] = (uint)in[i+3];
-      (out+j+3)[2] = (uint)in[i+1];
-   }
-}
-static void translate_quadstrip_uint2uint_first2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=6, i+=2) { 
-      (out+j+0)[0] = (uint)in[i+0];
-      (out+j+0)[1] = (uint)in[i+3];
-      (out+j+0)[2] = (uint)in[i+2];
-      (out+j+3)[0] = (uint)in[i+1];
-      (out+j+3)[1] = (uint)in[i+3];
-      (out+j+3)[2] = (uint)in[i+0];
-   }
-}
-static void translate_polygon_uint2uint_first2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (uint)in[i+1];
-      (out+j)[1] = (uint)in[i+2];
-      (out+j)[2] = (uint)in[0];
-   }
-}
-static void translate_points_uint2uint_last2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i++) { 
-      (out+i)[0] = (uint)in[i];
-   }
-}
-static void translate_lines_uint2uint_last2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i+=2) { 
-      (out+i)[0] = (uint)in[i+1];
-      (out+i)[1] = (uint)in[i];
-   }
-}
-static void translate_linestrip_uint2uint_last2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=2, i++) { 
-      (out+j)[0] = (uint)in[i+1];
-      (out+j)[1] = (uint)in[i];
-   }
-}
-static void translate_lineloop_uint2uint_last2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr - 2; j+=2, i++) { 
-      (out+j)[0] = (uint)in[i+1];
-      (out+j)[1] = (uint)in[i];
-   }
-      (out+j)[0] = (uint)in[0];
-      (out+j)[1] = (uint)in[i];
-}
-static void translate_tris_uint2uint_last2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i+=3) { 
-      (out+i)[0] = (uint)in[i+2];
-      (out+i)[1] = (uint)in[i];
-      (out+i)[2] = (uint)in[i+1];
-   }
-}
-static void translate_tristrip_uint2uint_last2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (uint)in[i+2];
-      (out+j)[1] = (uint)in[i+(i&1)];
-      (out+j)[2] = (uint)in[i+1-(i&1)];
-   }
-}
-static void translate_trifan_uint2uint_last2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (uint)in[i+2];
-      (out+j)[1] = (uint)in[0];
-      (out+j)[2] = (uint)in[i+1];
-   }
-}
-static void translate_quads_uint2uint_last2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=6, i+=4) { 
-      (out+j+0)[0] = (uint)in[i+3];
-      (out+j+0)[1] = (uint)in[i+0];
-      (out+j+0)[2] = (uint)in[i+1];
-      (out+j+3)[0] = (uint)in[i+3];
-      (out+j+3)[1] = (uint)in[i+1];
-      (out+j+3)[2] = (uint)in[i+2];
-   }
-}
-static void translate_quadstrip_uint2uint_last2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=6, i+=2) { 
-      (out+j+0)[0] = (uint)in[i+3];
-      (out+j+0)[1] = (uint)in[i+2];
-      (out+j+0)[2] = (uint)in[i+0];
-      (out+j+3)[0] = (uint)in[i+3];
-      (out+j+3)[1] = (uint)in[i+0];
-      (out+j+3)[2] = (uint)in[i+1];
-   }
-}
-static void translate_polygon_uint2uint_last2first(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (uint)in[0];
-      (out+j)[1] = (uint)in[i+1];
-      (out+j)[2] = (uint)in[i+2];
-   }
-}
-static void translate_points_uint2uint_last2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i++) { 
-      (out+i)[0] = (uint)in[i];
-   }
-}
-static void translate_lines_uint2uint_last2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i+=2) { 
-      (out+i)[0] = (uint)in[i];
-      (out+i)[1] = (uint)in[i+1];
-   }
-}
-static void translate_linestrip_uint2uint_last2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=2, i++) { 
-      (out+j)[0] = (uint)in[i];
-      (out+j)[1] = (uint)in[i+1];
-   }
-}
-static void translate_lineloop_uint2uint_last2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr - 2; j+=2, i++) { 
-      (out+j)[0] = (uint)in[i];
-      (out+j)[1] = (uint)in[i+1];
-   }
-      (out+j)[0] = (uint)in[i];
-      (out+j)[1] = (uint)in[0];
-}
-static void translate_tris_uint2uint_last2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (i = 0; i < nr; i+=3) { 
-      (out+i)[0] = (uint)in[i];
-      (out+i)[1] = (uint)in[i+1];
-      (out+i)[2] = (uint)in[i+2];
-   }
-}
-static void translate_tristrip_uint2uint_last2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (uint)in[i+(i&1)];
-      (out+j)[1] = (uint)in[i+1-(i&1)];
-      (out+j)[2] = (uint)in[i+2];
-   }
-}
-static void translate_trifan_uint2uint_last2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (uint)in[0];
-      (out+j)[1] = (uint)in[i+1];
-      (out+j)[2] = (uint)in[i+2];
-   }
-}
-static void translate_quads_uint2uint_last2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=6, i+=4) { 
-      (out+j+0)[0] = (uint)in[i+0];
-      (out+j+0)[1] = (uint)in[i+1];
-      (out+j+0)[2] = (uint)in[i+3];
-      (out+j+3)[0] = (uint)in[i+1];
-      (out+j+3)[1] = (uint)in[i+2];
-      (out+j+3)[2] = (uint)in[i+3];
-   }
-}
-static void translate_quadstrip_uint2uint_last2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=6, i+=2) { 
-      (out+j+0)[0] = (uint)in[i+2];
-      (out+j+0)[1] = (uint)in[i+0];
-      (out+j+0)[2] = (uint)in[i+3];
-      (out+j+3)[0] = (uint)in[i+0];
-      (out+j+3)[1] = (uint)in[i+1];
-      (out+j+3)[2] = (uint)in[i+3];
-   }
-}
-static void translate_polygon_uint2uint_last2last(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=3, i++) { 
-      (out+j)[0] = (uint)in[i+1];
-      (out+j)[1] = (uint)in[i+2];
-      (out+j)[2] = (uint)in[0];
-   }
-}
-void u_index_init( void )
-{
-  static int firsttime = 1;
-  if (!firsttime) return;
-  firsttime = 0;
-generate[OUT_USHORT][PV_FIRST][PV_FIRST][PIPE_PRIM_POINTS] = generate_points_ushort_first2first;
-generate[OUT_USHORT][PV_FIRST][PV_FIRST][PIPE_PRIM_LINES] = generate_lines_ushort_first2first;
-generate[OUT_USHORT][PV_FIRST][PV_FIRST][PIPE_PRIM_LINE_STRIP] = generate_linestrip_ushort_first2first;
-generate[OUT_USHORT][PV_FIRST][PV_FIRST][PIPE_PRIM_LINE_LOOP] = generate_lineloop_ushort_first2first;
-generate[OUT_USHORT][PV_FIRST][PV_FIRST][PIPE_PRIM_TRIANGLES] = generate_tris_ushort_first2first;
-generate[OUT_USHORT][PV_FIRST][PV_FIRST][PIPE_PRIM_TRIANGLE_FAN] = generate_trifan_ushort_first2first;
-generate[OUT_USHORT][PV_FIRST][PV_FIRST][PIPE_PRIM_TRIANGLE_STRIP] = generate_tristrip_ushort_first2first;
-generate[OUT_USHORT][PV_FIRST][PV_FIRST][PIPE_PRIM_QUADS] = generate_quads_ushort_first2first;
-generate[OUT_USHORT][PV_FIRST][PV_FIRST][PIPE_PRIM_QUAD_STRIP] = generate_quadstrip_ushort_first2first;
-generate[OUT_USHORT][PV_FIRST][PV_FIRST][PIPE_PRIM_POLYGON] = generate_polygon_ushort_first2first;
-generate[OUT_USHORT][PV_FIRST][PV_LAST][PIPE_PRIM_POINTS] = generate_points_ushort_first2last;
-generate[OUT_USHORT][PV_FIRST][PV_LAST][PIPE_PRIM_LINES] = generate_lines_ushort_first2last;
-generate[OUT_USHORT][PV_FIRST][PV_LAST][PIPE_PRIM_LINE_STRIP] = generate_linestrip_ushort_first2last;
-generate[OUT_USHORT][PV_FIRST][PV_LAST][PIPE_PRIM_LINE_LOOP] = generate_lineloop_ushort_first2last;
-generate[OUT_USHORT][PV_FIRST][PV_LAST][PIPE_PRIM_TRIANGLES] = generate_tris_ushort_first2last;
-generate[OUT_USHORT][PV_FIRST][PV_LAST][PIPE_PRIM_TRIANGLE_FAN] = generate_trifan_ushort_first2last;
-generate[OUT_USHORT][PV_FIRST][PV_LAST][PIPE_PRIM_TRIANGLE_STRIP] = generate_tristrip_ushort_first2last;
-generate[OUT_USHORT][PV_FIRST][PV_LAST][PIPE_PRIM_QUADS] = generate_quads_ushort_first2last;
-generate[OUT_USHORT][PV_FIRST][PV_LAST][PIPE_PRIM_QUAD_STRIP] = generate_quadstrip_ushort_first2last;
-generate[OUT_USHORT][PV_FIRST][PV_LAST][PIPE_PRIM_POLYGON] = generate_polygon_ushort_first2last;
-generate[OUT_USHORT][PV_LAST][PV_FIRST][PIPE_PRIM_POINTS] = generate_points_ushort_last2first;
-generate[OUT_USHORT][PV_LAST][PV_FIRST][PIPE_PRIM_LINES] = generate_lines_ushort_last2first;
-generate[OUT_USHORT][PV_LAST][PV_FIRST][PIPE_PRIM_LINE_STRIP] = generate_linestrip_ushort_last2first;
-generate[OUT_USHORT][PV_LAST][PV_FIRST][PIPE_PRIM_LINE_LOOP] = generate_lineloop_ushort_last2first;
-generate[OUT_USHORT][PV_LAST][PV_FIRST][PIPE_PRIM_TRIANGLES] = generate_tris_ushort_last2first;
-generate[OUT_USHORT][PV_LAST][PV_FIRST][PIPE_PRIM_TRIANGLE_FAN] = generate_trifan_ushort_last2first;
-generate[OUT_USHORT][PV_LAST][PV_FIRST][PIPE_PRIM_TRIANGLE_STRIP] = generate_tristrip_ushort_last2first;
-generate[OUT_USHORT][PV_LAST][PV_FIRST][PIPE_PRIM_QUADS] = generate_quads_ushort_last2first;
-generate[OUT_USHORT][PV_LAST][PV_FIRST][PIPE_PRIM_QUAD_STRIP] = generate_quadstrip_ushort_last2first;
-generate[OUT_USHORT][PV_LAST][PV_FIRST][PIPE_PRIM_POLYGON] = generate_polygon_ushort_last2first;
-generate[OUT_USHORT][PV_LAST][PV_LAST][PIPE_PRIM_POINTS] = generate_points_ushort_last2last;
-generate[OUT_USHORT][PV_LAST][PV_LAST][PIPE_PRIM_LINES] = generate_lines_ushort_last2last;
-generate[OUT_USHORT][PV_LAST][PV_LAST][PIPE_PRIM_LINE_STRIP] = generate_linestrip_ushort_last2last;
-generate[OUT_USHORT][PV_LAST][PV_LAST][PIPE_PRIM_LINE_LOOP] = generate_lineloop_ushort_last2last;
-generate[OUT_USHORT][PV_LAST][PV_LAST][PIPE_PRIM_TRIANGLES] = generate_tris_ushort_last2last;
-generate[OUT_USHORT][PV_LAST][PV_LAST][PIPE_PRIM_TRIANGLE_FAN] = generate_trifan_ushort_last2last;
-generate[OUT_USHORT][PV_LAST][PV_LAST][PIPE_PRIM_TRIANGLE_STRIP] = generate_tristrip_ushort_last2last;
-generate[OUT_USHORT][PV_LAST][PV_LAST][PIPE_PRIM_QUADS] = generate_quads_ushort_last2last;
-generate[OUT_USHORT][PV_LAST][PV_LAST][PIPE_PRIM_QUAD_STRIP] = generate_quadstrip_ushort_last2last;
-generate[OUT_USHORT][PV_LAST][PV_LAST][PIPE_PRIM_POLYGON] = generate_polygon_ushort_last2last;
-generate[OUT_UINT][PV_FIRST][PV_FIRST][PIPE_PRIM_POINTS] = generate_points_uint_first2first;
-generate[OUT_UINT][PV_FIRST][PV_FIRST][PIPE_PRIM_LINES] = generate_lines_uint_first2first;
-generate[OUT_UINT][PV_FIRST][PV_FIRST][PIPE_PRIM_LINE_STRIP] = generate_linestrip_uint_first2first;
-generate[OUT_UINT][PV_FIRST][PV_FIRST][PIPE_PRIM_LINE_LOOP] = generate_lineloop_uint_first2first;
-generate[OUT_UINT][PV_FIRST][PV_FIRST][PIPE_PRIM_TRIANGLES] = generate_tris_uint_first2first;
-generate[OUT_UINT][PV_FIRST][PV_FIRST][PIPE_PRIM_TRIANGLE_FAN] = generate_trifan_uint_first2first;
-generate[OUT_UINT][PV_FIRST][PV_FIRST][PIPE_PRIM_TRIANGLE_STRIP] = generate_tristrip_uint_first2first;
-generate[OUT_UINT][PV_FIRST][PV_FIRST][PIPE_PRIM_QUADS] = generate_quads_uint_first2first;
-generate[OUT_UINT][PV_FIRST][PV_FIRST][PIPE_PRIM_QUAD_STRIP] = generate_quadstrip_uint_first2first;
-generate[OUT_UINT][PV_FIRST][PV_FIRST][PIPE_PRIM_POLYGON] = generate_polygon_uint_first2first;
-generate[OUT_UINT][PV_FIRST][PV_LAST][PIPE_PRIM_POINTS] = generate_points_uint_first2last;
-generate[OUT_UINT][PV_FIRST][PV_LAST][PIPE_PRIM_LINES] = generate_lines_uint_first2last;
-generate[OUT_UINT][PV_FIRST][PV_LAST][PIPE_PRIM_LINE_STRIP] = generate_linestrip_uint_first2last;
-generate[OUT_UINT][PV_FIRST][PV_LAST][PIPE_PRIM_LINE_LOOP] = generate_lineloop_uint_first2last;
-generate[OUT_UINT][PV_FIRST][PV_LAST][PIPE_PRIM_TRIANGLES] = generate_tris_uint_first2last;
-generate[OUT_UINT][PV_FIRST][PV_LAST][PIPE_PRIM_TRIANGLE_FAN] = generate_trifan_uint_first2last;
-generate[OUT_UINT][PV_FIRST][PV_LAST][PIPE_PRIM_TRIANGLE_STRIP] = generate_tristrip_uint_first2last;
-generate[OUT_UINT][PV_FIRST][PV_LAST][PIPE_PRIM_QUADS] = generate_quads_uint_first2last;
-generate[OUT_UINT][PV_FIRST][PV_LAST][PIPE_PRIM_QUAD_STRIP] = generate_quadstrip_uint_first2last;
-generate[OUT_UINT][PV_FIRST][PV_LAST][PIPE_PRIM_POLYGON] = generate_polygon_uint_first2last;
-generate[OUT_UINT][PV_LAST][PV_FIRST][PIPE_PRIM_POINTS] = generate_points_uint_last2first;
-generate[OUT_UINT][PV_LAST][PV_FIRST][PIPE_PRIM_LINES] = generate_lines_uint_last2first;
-generate[OUT_UINT][PV_LAST][PV_FIRST][PIPE_PRIM_LINE_STRIP] = generate_linestrip_uint_last2first;
-generate[OUT_UINT][PV_LAST][PV_FIRST][PIPE_PRIM_LINE_LOOP] = generate_lineloop_uint_last2first;
-generate[OUT_UINT][PV_LAST][PV_FIRST][PIPE_PRIM_TRIANGLES] = generate_tris_uint_last2first;
-generate[OUT_UINT][PV_LAST][PV_FIRST][PIPE_PRIM_TRIANGLE_FAN] = generate_trifan_uint_last2first;
-generate[OUT_UINT][PV_LAST][PV_FIRST][PIPE_PRIM_TRIANGLE_STRIP] = generate_tristrip_uint_last2first;
-generate[OUT_UINT][PV_LAST][PV_FIRST][PIPE_PRIM_QUADS] = generate_quads_uint_last2first;
-generate[OUT_UINT][PV_LAST][PV_FIRST][PIPE_PRIM_QUAD_STRIP] = generate_quadstrip_uint_last2first;
-generate[OUT_UINT][PV_LAST][PV_FIRST][PIPE_PRIM_POLYGON] = generate_polygon_uint_last2first;
-generate[OUT_UINT][PV_LAST][PV_LAST][PIPE_PRIM_POINTS] = generate_points_uint_last2last;
-generate[OUT_UINT][PV_LAST][PV_LAST][PIPE_PRIM_LINES] = generate_lines_uint_last2last;
-generate[OUT_UINT][PV_LAST][PV_LAST][PIPE_PRIM_LINE_STRIP] = generate_linestrip_uint_last2last;
-generate[OUT_UINT][PV_LAST][PV_LAST][PIPE_PRIM_LINE_LOOP] = generate_lineloop_uint_last2last;
-generate[OUT_UINT][PV_LAST][PV_LAST][PIPE_PRIM_TRIANGLES] = generate_tris_uint_last2last;
-generate[OUT_UINT][PV_LAST][PV_LAST][PIPE_PRIM_TRIANGLE_FAN] = generate_trifan_uint_last2last;
-generate[OUT_UINT][PV_LAST][PV_LAST][PIPE_PRIM_TRIANGLE_STRIP] = generate_tristrip_uint_last2last;
-generate[OUT_UINT][PV_LAST][PV_LAST][PIPE_PRIM_QUADS] = generate_quads_uint_last2last;
-generate[OUT_UINT][PV_LAST][PV_LAST][PIPE_PRIM_QUAD_STRIP] = generate_quadstrip_uint_last2last;
-generate[OUT_UINT][PV_LAST][PV_LAST][PIPE_PRIM_POLYGON] = generate_polygon_uint_last2last;
-translate[IN_UBYTE][OUT_USHORT][PV_FIRST][PV_FIRST][PIPE_PRIM_POINTS] = translate_points_ubyte2ushort_first2first;
-translate[IN_UBYTE][OUT_USHORT][PV_FIRST][PV_FIRST][PIPE_PRIM_LINES] = translate_lines_ubyte2ushort_first2first;
-translate[IN_UBYTE][OUT_USHORT][PV_FIRST][PV_FIRST][PIPE_PRIM_LINE_STRIP] = translate_linestrip_ubyte2ushort_first2first;
-translate[IN_UBYTE][OUT_USHORT][PV_FIRST][PV_FIRST][PIPE_PRIM_LINE_LOOP] = translate_lineloop_ubyte2ushort_first2first;
-translate[IN_UBYTE][OUT_USHORT][PV_FIRST][PV_FIRST][PIPE_PRIM_TRIANGLES] = translate_tris_ubyte2ushort_first2first;
-translate[IN_UBYTE][OUT_USHORT][PV_FIRST][PV_FIRST][PIPE_PRIM_TRIANGLE_FAN] = translate_trifan_ubyte2ushort_first2first;
-translate[IN_UBYTE][OUT_USHORT][PV_FIRST][PV_FIRST][PIPE_PRIM_TRIANGLE_STRIP] = translate_tristrip_ubyte2ushort_first2first;
-translate[IN_UBYTE][OUT_USHORT][PV_FIRST][PV_FIRST][PIPE_PRIM_QUADS] = translate_quads_ubyte2ushort_first2first;
-translate[IN_UBYTE][OUT_USHORT][PV_FIRST][PV_FIRST][PIPE_PRIM_QUAD_STRIP] = translate_quadstrip_ubyte2ushort_first2first;
-translate[IN_UBYTE][OUT_USHORT][PV_FIRST][PV_FIRST][PIPE_PRIM_POLYGON] = translate_polygon_ubyte2ushort_first2first;
-translate[IN_UBYTE][OUT_USHORT][PV_FIRST][PV_LAST][PIPE_PRIM_POINTS] = translate_points_ubyte2ushort_first2last;
-translate[IN_UBYTE][OUT_USHORT][PV_FIRST][PV_LAST][PIPE_PRIM_LINES] = translate_lines_ubyte2ushort_first2last;
-translate[IN_UBYTE][OUT_USHORT][PV_FIRST][PV_LAST][PIPE_PRIM_LINE_STRIP] = translate_linestrip_ubyte2ushort_first2last;
-translate[IN_UBYTE][OUT_USHORT][PV_FIRST][PV_LAST][PIPE_PRIM_LINE_LOOP] = translate_lineloop_ubyte2ushort_first2last;
-translate[IN_UBYTE][OUT_USHORT][PV_FIRST][PV_LAST][PIPE_PRIM_TRIANGLES] = translate_tris_ubyte2ushort_first2last;
-translate[IN_UBYTE][OUT_USHORT][PV_FIRST][PV_LAST][PIPE_PRIM_TRIANGLE_FAN] = translate_trifan_ubyte2ushort_first2last;
-translate[IN_UBYTE][OUT_USHORT][PV_FIRST][PV_LAST][PIPE_PRIM_TRIANGLE_STRIP] = translate_tristrip_ubyte2ushort_first2last;
-translate[IN_UBYTE][OUT_USHORT][PV_FIRST][PV_LAST][PIPE_PRIM_QUADS] = translate_quads_ubyte2ushort_first2last;
-translate[IN_UBYTE][OUT_USHORT][PV_FIRST][PV_LAST][PIPE_PRIM_QUAD_STRIP] = translate_quadstrip_ubyte2ushort_first2last;
-translate[IN_UBYTE][OUT_USHORT][PV_FIRST][PV_LAST][PIPE_PRIM_POLYGON] = translate_polygon_ubyte2ushort_first2last;
-translate[IN_UBYTE][OUT_USHORT][PV_LAST][PV_FIRST][PIPE_PRIM_POINTS] = translate_points_ubyte2ushort_last2first;
-translate[IN_UBYTE][OUT_USHORT][PV_LAST][PV_FIRST][PIPE_PRIM_LINES] = translate_lines_ubyte2ushort_last2first;
-translate[IN_UBYTE][OUT_USHORT][PV_LAST][PV_FIRST][PIPE_PRIM_LINE_STRIP] = translate_linestrip_ubyte2ushort_last2first;
-translate[IN_UBYTE][OUT_USHORT][PV_LAST][PV_FIRST][PIPE_PRIM_LINE_LOOP] = translate_lineloop_ubyte2ushort_last2first;
-translate[IN_UBYTE][OUT_USHORT][PV_LAST][PV_FIRST][PIPE_PRIM_TRIANGLES] = translate_tris_ubyte2ushort_last2first;
-translate[IN_UBYTE][OUT_USHORT][PV_LAST][PV_FIRST][PIPE_PRIM_TRIANGLE_FAN] = translate_trifan_ubyte2ushort_last2first;
-translate[IN_UBYTE][OUT_USHORT][PV_LAST][PV_FIRST][PIPE_PRIM_TRIANGLE_STRIP] = translate_tristrip_ubyte2ushort_last2first;
-translate[IN_UBYTE][OUT_USHORT][PV_LAST][PV_FIRST][PIPE_PRIM_QUADS] = translate_quads_ubyte2ushort_last2first;
-translate[IN_UBYTE][OUT_USHORT][PV_LAST][PV_FIRST][PIPE_PRIM_QUAD_STRIP] = translate_quadstrip_ubyte2ushort_last2first;
-translate[IN_UBYTE][OUT_USHORT][PV_LAST][PV_FIRST][PIPE_PRIM_POLYGON] = translate_polygon_ubyte2ushort_last2first;
-translate[IN_UBYTE][OUT_USHORT][PV_LAST][PV_LAST][PIPE_PRIM_POINTS] = translate_points_ubyte2ushort_last2last;
-translate[IN_UBYTE][OUT_USHORT][PV_LAST][PV_LAST][PIPE_PRIM_LINES] = translate_lines_ubyte2ushort_last2last;
-translate[IN_UBYTE][OUT_USHORT][PV_LAST][PV_LAST][PIPE_PRIM_LINE_STRIP] = translate_linestrip_ubyte2ushort_last2last;
-translate[IN_UBYTE][OUT_USHORT][PV_LAST][PV_LAST][PIPE_PRIM_LINE_LOOP] = translate_lineloop_ubyte2ushort_last2last;
-translate[IN_UBYTE][OUT_USHORT][PV_LAST][PV_LAST][PIPE_PRIM_TRIANGLES] = translate_tris_ubyte2ushort_last2last;
-translate[IN_UBYTE][OUT_USHORT][PV_LAST][PV_LAST][PIPE_PRIM_TRIANGLE_FAN] = translate_trifan_ubyte2ushort_last2last;
-translate[IN_UBYTE][OUT_USHORT][PV_LAST][PV_LAST][PIPE_PRIM_TRIANGLE_STRIP] = translate_tristrip_ubyte2ushort_last2last;
-translate[IN_UBYTE][OUT_USHORT][PV_LAST][PV_LAST][PIPE_PRIM_QUADS] = translate_quads_ubyte2ushort_last2last;
-translate[IN_UBYTE][OUT_USHORT][PV_LAST][PV_LAST][PIPE_PRIM_QUAD_STRIP] = translate_quadstrip_ubyte2ushort_last2last;
-translate[IN_UBYTE][OUT_USHORT][PV_LAST][PV_LAST][PIPE_PRIM_POLYGON] = translate_polygon_ubyte2ushort_last2last;
-translate[IN_UBYTE][OUT_UINT][PV_FIRST][PV_FIRST][PIPE_PRIM_POINTS] = translate_points_ubyte2uint_first2first;
-translate[IN_UBYTE][OUT_UINT][PV_FIRST][PV_FIRST][PIPE_PRIM_LINES] = translate_lines_ubyte2uint_first2first;
-translate[IN_UBYTE][OUT_UINT][PV_FIRST][PV_FIRST][PIPE_PRIM_LINE_STRIP] = translate_linestrip_ubyte2uint_first2first;
-translate[IN_UBYTE][OUT_UINT][PV_FIRST][PV_FIRST][PIPE_PRIM_LINE_LOOP] = translate_lineloop_ubyte2uint_first2first;
-translate[IN_UBYTE][OUT_UINT][PV_FIRST][PV_FIRST][PIPE_PRIM_TRIANGLES] = translate_tris_ubyte2uint_first2first;
-translate[IN_UBYTE][OUT_UINT][PV_FIRST][PV_FIRST][PIPE_PRIM_TRIANGLE_FAN] = translate_trifan_ubyte2uint_first2first;
-translate[IN_UBYTE][OUT_UINT][PV_FIRST][PV_FIRST][PIPE_PRIM_TRIANGLE_STRIP] = translate_tristrip_ubyte2uint_first2first;
-translate[IN_UBYTE][OUT_UINT][PV_FIRST][PV_FIRST][PIPE_PRIM_QUADS] = translate_quads_ubyte2uint_first2first;
-translate[IN_UBYTE][OUT_UINT][PV_FIRST][PV_FIRST][PIPE_PRIM_QUAD_STRIP] = translate_quadstrip_ubyte2uint_first2first;
-translate[IN_UBYTE][OUT_UINT][PV_FIRST][PV_FIRST][PIPE_PRIM_POLYGON] = translate_polygon_ubyte2uint_first2first;
-translate[IN_UBYTE][OUT_UINT][PV_FIRST][PV_LAST][PIPE_PRIM_POINTS] = translate_points_ubyte2uint_first2last;
-translate[IN_UBYTE][OUT_UINT][PV_FIRST][PV_LAST][PIPE_PRIM_LINES] = translate_lines_ubyte2uint_first2last;
-translate[IN_UBYTE][OUT_UINT][PV_FIRST][PV_LAST][PIPE_PRIM_LINE_STRIP] = translate_linestrip_ubyte2uint_first2last;
-translate[IN_UBYTE][OUT_UINT][PV_FIRST][PV_LAST][PIPE_PRIM_LINE_LOOP] = translate_lineloop_ubyte2uint_first2last;
-translate[IN_UBYTE][OUT_UINT][PV_FIRST][PV_LAST][PIPE_PRIM_TRIANGLES] = translate_tris_ubyte2uint_first2last;
-translate[IN_UBYTE][OUT_UINT][PV_FIRST][PV_LAST][PIPE_PRIM_TRIANGLE_FAN] = translate_trifan_ubyte2uint_first2last;
-translate[IN_UBYTE][OUT_UINT][PV_FIRST][PV_LAST][PIPE_PRIM_TRIANGLE_STRIP] = translate_tristrip_ubyte2uint_first2last;
-translate[IN_UBYTE][OUT_UINT][PV_FIRST][PV_LAST][PIPE_PRIM_QUADS] = translate_quads_ubyte2uint_first2last;
-translate[IN_UBYTE][OUT_UINT][PV_FIRST][PV_LAST][PIPE_PRIM_QUAD_STRIP] = translate_quadstrip_ubyte2uint_first2last;
-translate[IN_UBYTE][OUT_UINT][PV_FIRST][PV_LAST][PIPE_PRIM_POLYGON] = translate_polygon_ubyte2uint_first2last;
-translate[IN_UBYTE][OUT_UINT][PV_LAST][PV_FIRST][PIPE_PRIM_POINTS] = translate_points_ubyte2uint_last2first;
-translate[IN_UBYTE][OUT_UINT][PV_LAST][PV_FIRST][PIPE_PRIM_LINES] = translate_lines_ubyte2uint_last2first;
-translate[IN_UBYTE][OUT_UINT][PV_LAST][PV_FIRST][PIPE_PRIM_LINE_STRIP] = translate_linestrip_ubyte2uint_last2first;
-translate[IN_UBYTE][OUT_UINT][PV_LAST][PV_FIRST][PIPE_PRIM_LINE_LOOP] = translate_lineloop_ubyte2uint_last2first;
-translate[IN_UBYTE][OUT_UINT][PV_LAST][PV_FIRST][PIPE_PRIM_TRIANGLES] = translate_tris_ubyte2uint_last2first;
-translate[IN_UBYTE][OUT_UINT][PV_LAST][PV_FIRST][PIPE_PRIM_TRIANGLE_FAN] = translate_trifan_ubyte2uint_last2first;
-translate[IN_UBYTE][OUT_UINT][PV_LAST][PV_FIRST][PIPE_PRIM_TRIANGLE_STRIP] = translate_tristrip_ubyte2uint_last2first;
-translate[IN_UBYTE][OUT_UINT][PV_LAST][PV_FIRST][PIPE_PRIM_QUADS] = translate_quads_ubyte2uint_last2first;
-translate[IN_UBYTE][OUT_UINT][PV_LAST][PV_FIRST][PIPE_PRIM_QUAD_STRIP] = translate_quadstrip_ubyte2uint_last2first;
-translate[IN_UBYTE][OUT_UINT][PV_LAST][PV_FIRST][PIPE_PRIM_POLYGON] = translate_polygon_ubyte2uint_last2first;
-translate[IN_UBYTE][OUT_UINT][PV_LAST][PV_LAST][PIPE_PRIM_POINTS] = translate_points_ubyte2uint_last2last;
-translate[IN_UBYTE][OUT_UINT][PV_LAST][PV_LAST][PIPE_PRIM_LINES] = translate_lines_ubyte2uint_last2last;
-translate[IN_UBYTE][OUT_UINT][PV_LAST][PV_LAST][PIPE_PRIM_LINE_STRIP] = translate_linestrip_ubyte2uint_last2last;
-translate[IN_UBYTE][OUT_UINT][PV_LAST][PV_LAST][PIPE_PRIM_LINE_LOOP] = translate_lineloop_ubyte2uint_last2last;
-translate[IN_UBYTE][OUT_UINT][PV_LAST][PV_LAST][PIPE_PRIM_TRIANGLES] = translate_tris_ubyte2uint_last2last;
-translate[IN_UBYTE][OUT_UINT][PV_LAST][PV_LAST][PIPE_PRIM_TRIANGLE_FAN] = translate_trifan_ubyte2uint_last2last;
-translate[IN_UBYTE][OUT_UINT][PV_LAST][PV_LAST][PIPE_PRIM_TRIANGLE_STRIP] = translate_tristrip_ubyte2uint_last2last;
-translate[IN_UBYTE][OUT_UINT][PV_LAST][PV_LAST][PIPE_PRIM_QUADS] = translate_quads_ubyte2uint_last2last;
-translate[IN_UBYTE][OUT_UINT][PV_LAST][PV_LAST][PIPE_PRIM_QUAD_STRIP] = translate_quadstrip_ubyte2uint_last2last;
-translate[IN_UBYTE][OUT_UINT][PV_LAST][PV_LAST][PIPE_PRIM_POLYGON] = translate_polygon_ubyte2uint_last2last;
-translate[IN_USHORT][OUT_USHORT][PV_FIRST][PV_FIRST][PIPE_PRIM_POINTS] = translate_points_ushort2ushort_first2first;
-translate[IN_USHORT][OUT_USHORT][PV_FIRST][PV_FIRST][PIPE_PRIM_LINES] = translate_lines_ushort2ushort_first2first;
-translate[IN_USHORT][OUT_USHORT][PV_FIRST][PV_FIRST][PIPE_PRIM_LINE_STRIP] = translate_linestrip_ushort2ushort_first2first;
-translate[IN_USHORT][OUT_USHORT][PV_FIRST][PV_FIRST][PIPE_PRIM_LINE_LOOP] = translate_lineloop_ushort2ushort_first2first;
-translate[IN_USHORT][OUT_USHORT][PV_FIRST][PV_FIRST][PIPE_PRIM_TRIANGLES] = translate_tris_ushort2ushort_first2first;
-translate[IN_USHORT][OUT_USHORT][PV_FIRST][PV_FIRST][PIPE_PRIM_TRIANGLE_FAN] = translate_trifan_ushort2ushort_first2first;
-translate[IN_USHORT][OUT_USHORT][PV_FIRST][PV_FIRST][PIPE_PRIM_TRIANGLE_STRIP] = translate_tristrip_ushort2ushort_first2first;
-translate[IN_USHORT][OUT_USHORT][PV_FIRST][PV_FIRST][PIPE_PRIM_QUADS] = translate_quads_ushort2ushort_first2first;
-translate[IN_USHORT][OUT_USHORT][PV_FIRST][PV_FIRST][PIPE_PRIM_QUAD_STRIP] = translate_quadstrip_ushort2ushort_first2first;
-translate[IN_USHORT][OUT_USHORT][PV_FIRST][PV_FIRST][PIPE_PRIM_POLYGON] = translate_polygon_ushort2ushort_first2first;
-translate[IN_USHORT][OUT_USHORT][PV_FIRST][PV_LAST][PIPE_PRIM_POINTS] = translate_points_ushort2ushort_first2last;
-translate[IN_USHORT][OUT_USHORT][PV_FIRST][PV_LAST][PIPE_PRIM_LINES] = translate_lines_ushort2ushort_first2last;
-translate[IN_USHORT][OUT_USHORT][PV_FIRST][PV_LAST][PIPE_PRIM_LINE_STRIP] = translate_linestrip_ushort2ushort_first2last;
-translate[IN_USHORT][OUT_USHORT][PV_FIRST][PV_LAST][PIPE_PRIM_LINE_LOOP] = translate_lineloop_ushort2ushort_first2last;
-translate[IN_USHORT][OUT_USHORT][PV_FIRST][PV_LAST][PIPE_PRIM_TRIANGLES] = translate_tris_ushort2ushort_first2last;
-translate[IN_USHORT][OUT_USHORT][PV_FIRST][PV_LAST][PIPE_PRIM_TRIANGLE_FAN] = translate_trifan_ushort2ushort_first2last;
-translate[IN_USHORT][OUT_USHORT][PV_FIRST][PV_LAST][PIPE_PRIM_TRIANGLE_STRIP] = translate_tristrip_ushort2ushort_first2last;
-translate[IN_USHORT][OUT_USHORT][PV_FIRST][PV_LAST][PIPE_PRIM_QUADS] = translate_quads_ushort2ushort_first2last;
-translate[IN_USHORT][OUT_USHORT][PV_FIRST][PV_LAST][PIPE_PRIM_QUAD_STRIP] = translate_quadstrip_ushort2ushort_first2last;
-translate[IN_USHORT][OUT_USHORT][PV_FIRST][PV_LAST][PIPE_PRIM_POLYGON] = translate_polygon_ushort2ushort_first2last;
-translate[IN_USHORT][OUT_USHORT][PV_LAST][PV_FIRST][PIPE_PRIM_POINTS] = translate_points_ushort2ushort_last2first;
-translate[IN_USHORT][OUT_USHORT][PV_LAST][PV_FIRST][PIPE_PRIM_LINES] = translate_lines_ushort2ushort_last2first;
-translate[IN_USHORT][OUT_USHORT][PV_LAST][PV_FIRST][PIPE_PRIM_LINE_STRIP] = translate_linestrip_ushort2ushort_last2first;
-translate[IN_USHORT][OUT_USHORT][PV_LAST][PV_FIRST][PIPE_PRIM_LINE_LOOP] = translate_lineloop_ushort2ushort_last2first;
-translate[IN_USHORT][OUT_USHORT][PV_LAST][PV_FIRST][PIPE_PRIM_TRIANGLES] = translate_tris_ushort2ushort_last2first;
-translate[IN_USHORT][OUT_USHORT][PV_LAST][PV_FIRST][PIPE_PRIM_TRIANGLE_FAN] = translate_trifan_ushort2ushort_last2first;
-translate[IN_USHORT][OUT_USHORT][PV_LAST][PV_FIRST][PIPE_PRIM_TRIANGLE_STRIP] = translate_tristrip_ushort2ushort_last2first;
-translate[IN_USHORT][OUT_USHORT][PV_LAST][PV_FIRST][PIPE_PRIM_QUADS] = translate_quads_ushort2ushort_last2first;
-translate[IN_USHORT][OUT_USHORT][PV_LAST][PV_FIRST][PIPE_PRIM_QUAD_STRIP] = translate_quadstrip_ushort2ushort_last2first;
-translate[IN_USHORT][OUT_USHORT][PV_LAST][PV_FIRST][PIPE_PRIM_POLYGON] = translate_polygon_ushort2ushort_last2first;
-translate[IN_USHORT][OUT_USHORT][PV_LAST][PV_LAST][PIPE_PRIM_POINTS] = translate_points_ushort2ushort_last2last;
-translate[IN_USHORT][OUT_USHORT][PV_LAST][PV_LAST][PIPE_PRIM_LINES] = translate_lines_ushort2ushort_last2last;
-translate[IN_USHORT][OUT_USHORT][PV_LAST][PV_LAST][PIPE_PRIM_LINE_STRIP] = translate_linestrip_ushort2ushort_last2last;
-translate[IN_USHORT][OUT_USHORT][PV_LAST][PV_LAST][PIPE_PRIM_LINE_LOOP] = translate_lineloop_ushort2ushort_last2last;
-translate[IN_USHORT][OUT_USHORT][PV_LAST][PV_LAST][PIPE_PRIM_TRIANGLES] = translate_tris_ushort2ushort_last2last;
-translate[IN_USHORT][OUT_USHORT][PV_LAST][PV_LAST][PIPE_PRIM_TRIANGLE_FAN] = translate_trifan_ushort2ushort_last2last;
-translate[IN_USHORT][OUT_USHORT][PV_LAST][PV_LAST][PIPE_PRIM_TRIANGLE_STRIP] = translate_tristrip_ushort2ushort_last2last;
-translate[IN_USHORT][OUT_USHORT][PV_LAST][PV_LAST][PIPE_PRIM_QUADS] = translate_quads_ushort2ushort_last2last;
-translate[IN_USHORT][OUT_USHORT][PV_LAST][PV_LAST][PIPE_PRIM_QUAD_STRIP] = translate_quadstrip_ushort2ushort_last2last;
-translate[IN_USHORT][OUT_USHORT][PV_LAST][PV_LAST][PIPE_PRIM_POLYGON] = translate_polygon_ushort2ushort_last2last;
-translate[IN_USHORT][OUT_UINT][PV_FIRST][PV_FIRST][PIPE_PRIM_POINTS] = translate_points_ushort2uint_first2first;
-translate[IN_USHORT][OUT_UINT][PV_FIRST][PV_FIRST][PIPE_PRIM_LINES] = translate_lines_ushort2uint_first2first;
-translate[IN_USHORT][OUT_UINT][PV_FIRST][PV_FIRST][PIPE_PRIM_LINE_STRIP] = translate_linestrip_ushort2uint_first2first;
-translate[IN_USHORT][OUT_UINT][PV_FIRST][PV_FIRST][PIPE_PRIM_LINE_LOOP] = translate_lineloop_ushort2uint_first2first;
-translate[IN_USHORT][OUT_UINT][PV_FIRST][PV_FIRST][PIPE_PRIM_TRIANGLES] = translate_tris_ushort2uint_first2first;
-translate[IN_USHORT][OUT_UINT][PV_FIRST][PV_FIRST][PIPE_PRIM_TRIANGLE_FAN] = translate_trifan_ushort2uint_first2first;
-translate[IN_USHORT][OUT_UINT][PV_FIRST][PV_FIRST][PIPE_PRIM_TRIANGLE_STRIP] = translate_tristrip_ushort2uint_first2first;
-translate[IN_USHORT][OUT_UINT][PV_FIRST][PV_FIRST][PIPE_PRIM_QUADS] = translate_quads_ushort2uint_first2first;
-translate[IN_USHORT][OUT_UINT][PV_FIRST][PV_FIRST][PIPE_PRIM_QUAD_STRIP] = translate_quadstrip_ushort2uint_first2first;
-translate[IN_USHORT][OUT_UINT][PV_FIRST][PV_FIRST][PIPE_PRIM_POLYGON] = translate_polygon_ushort2uint_first2first;
-translate[IN_USHORT][OUT_UINT][PV_FIRST][PV_LAST][PIPE_PRIM_POINTS] = translate_points_ushort2uint_first2last;
-translate[IN_USHORT][OUT_UINT][PV_FIRST][PV_LAST][PIPE_PRIM_LINES] = translate_lines_ushort2uint_first2last;
-translate[IN_USHORT][OUT_UINT][PV_FIRST][PV_LAST][PIPE_PRIM_LINE_STRIP] = translate_linestrip_ushort2uint_first2last;
-translate[IN_USHORT][OUT_UINT][PV_FIRST][PV_LAST][PIPE_PRIM_LINE_LOOP] = translate_lineloop_ushort2uint_first2last;
-translate[IN_USHORT][OUT_UINT][PV_FIRST][PV_LAST][PIPE_PRIM_TRIANGLES] = translate_tris_ushort2uint_first2last;
-translate[IN_USHORT][OUT_UINT][PV_FIRST][PV_LAST][PIPE_PRIM_TRIANGLE_FAN] = translate_trifan_ushort2uint_first2last;
-translate[IN_USHORT][OUT_UINT][PV_FIRST][PV_LAST][PIPE_PRIM_TRIANGLE_STRIP] = translate_tristrip_ushort2uint_first2last;
-translate[IN_USHORT][OUT_UINT][PV_FIRST][PV_LAST][PIPE_PRIM_QUADS] = translate_quads_ushort2uint_first2last;
-translate[IN_USHORT][OUT_UINT][PV_FIRST][PV_LAST][PIPE_PRIM_QUAD_STRIP] = translate_quadstrip_ushort2uint_first2last;
-translate[IN_USHORT][OUT_UINT][PV_FIRST][PV_LAST][PIPE_PRIM_POLYGON] = translate_polygon_ushort2uint_first2last;
-translate[IN_USHORT][OUT_UINT][PV_LAST][PV_FIRST][PIPE_PRIM_POINTS] = translate_points_ushort2uint_last2first;
-translate[IN_USHORT][OUT_UINT][PV_LAST][PV_FIRST][PIPE_PRIM_LINES] = translate_lines_ushort2uint_last2first;
-translate[IN_USHORT][OUT_UINT][PV_LAST][PV_FIRST][PIPE_PRIM_LINE_STRIP] = translate_linestrip_ushort2uint_last2first;
-translate[IN_USHORT][OUT_UINT][PV_LAST][PV_FIRST][PIPE_PRIM_LINE_LOOP] = translate_lineloop_ushort2uint_last2first;
-translate[IN_USHORT][OUT_UINT][PV_LAST][PV_FIRST][PIPE_PRIM_TRIANGLES] = translate_tris_ushort2uint_last2first;
-translate[IN_USHORT][OUT_UINT][PV_LAST][PV_FIRST][PIPE_PRIM_TRIANGLE_FAN] = translate_trifan_ushort2uint_last2first;
-translate[IN_USHORT][OUT_UINT][PV_LAST][PV_FIRST][PIPE_PRIM_TRIANGLE_STRIP] = translate_tristrip_ushort2uint_last2first;
-translate[IN_USHORT][OUT_UINT][PV_LAST][PV_FIRST][PIPE_PRIM_QUADS] = translate_quads_ushort2uint_last2first;
-translate[IN_USHORT][OUT_UINT][PV_LAST][PV_FIRST][PIPE_PRIM_QUAD_STRIP] = translate_quadstrip_ushort2uint_last2first;
-translate[IN_USHORT][OUT_UINT][PV_LAST][PV_FIRST][PIPE_PRIM_POLYGON] = translate_polygon_ushort2uint_last2first;
-translate[IN_USHORT][OUT_UINT][PV_LAST][PV_LAST][PIPE_PRIM_POINTS] = translate_points_ushort2uint_last2last;
-translate[IN_USHORT][OUT_UINT][PV_LAST][PV_LAST][PIPE_PRIM_LINES] = translate_lines_ushort2uint_last2last;
-translate[IN_USHORT][OUT_UINT][PV_LAST][PV_LAST][PIPE_PRIM_LINE_STRIP] = translate_linestrip_ushort2uint_last2last;
-translate[IN_USHORT][OUT_UINT][PV_LAST][PV_LAST][PIPE_PRIM_LINE_LOOP] = translate_lineloop_ushort2uint_last2last;
-translate[IN_USHORT][OUT_UINT][PV_LAST][PV_LAST][PIPE_PRIM_TRIANGLES] = translate_tris_ushort2uint_last2last;
-translate[IN_USHORT][OUT_UINT][PV_LAST][PV_LAST][PIPE_PRIM_TRIANGLE_FAN] = translate_trifan_ushort2uint_last2last;
-translate[IN_USHORT][OUT_UINT][PV_LAST][PV_LAST][PIPE_PRIM_TRIANGLE_STRIP] = translate_tristrip_ushort2uint_last2last;
-translate[IN_USHORT][OUT_UINT][PV_LAST][PV_LAST][PIPE_PRIM_QUADS] = translate_quads_ushort2uint_last2last;
-translate[IN_USHORT][OUT_UINT][PV_LAST][PV_LAST][PIPE_PRIM_QUAD_STRIP] = translate_quadstrip_ushort2uint_last2last;
-translate[IN_USHORT][OUT_UINT][PV_LAST][PV_LAST][PIPE_PRIM_POLYGON] = translate_polygon_ushort2uint_last2last;
-translate[IN_UINT][OUT_USHORT][PV_FIRST][PV_FIRST][PIPE_PRIM_POINTS] = translate_points_uint2ushort_first2first;
-translate[IN_UINT][OUT_USHORT][PV_FIRST][PV_FIRST][PIPE_PRIM_LINES] = translate_lines_uint2ushort_first2first;
-translate[IN_UINT][OUT_USHORT][PV_FIRST][PV_FIRST][PIPE_PRIM_LINE_STRIP] = translate_linestrip_uint2ushort_first2first;
-translate[IN_UINT][OUT_USHORT][PV_FIRST][PV_FIRST][PIPE_PRIM_LINE_LOOP] = translate_lineloop_uint2ushort_first2first;
-translate[IN_UINT][OUT_USHORT][PV_FIRST][PV_FIRST][PIPE_PRIM_TRIANGLES] = translate_tris_uint2ushort_first2first;
-translate[IN_UINT][OUT_USHORT][PV_FIRST][PV_FIRST][PIPE_PRIM_TRIANGLE_FAN] = translate_trifan_uint2ushort_first2first;
-translate[IN_UINT][OUT_USHORT][PV_FIRST][PV_FIRST][PIPE_PRIM_TRIANGLE_STRIP] = translate_tristrip_uint2ushort_first2first;
-translate[IN_UINT][OUT_USHORT][PV_FIRST][PV_FIRST][PIPE_PRIM_QUADS] = translate_quads_uint2ushort_first2first;
-translate[IN_UINT][OUT_USHORT][PV_FIRST][PV_FIRST][PIPE_PRIM_QUAD_STRIP] = translate_quadstrip_uint2ushort_first2first;
-translate[IN_UINT][OUT_USHORT][PV_FIRST][PV_FIRST][PIPE_PRIM_POLYGON] = translate_polygon_uint2ushort_first2first;
-translate[IN_UINT][OUT_USHORT][PV_FIRST][PV_LAST][PIPE_PRIM_POINTS] = translate_points_uint2ushort_first2last;
-translate[IN_UINT][OUT_USHORT][PV_FIRST][PV_LAST][PIPE_PRIM_LINES] = translate_lines_uint2ushort_first2last;
-translate[IN_UINT][OUT_USHORT][PV_FIRST][PV_LAST][PIPE_PRIM_LINE_STRIP] = translate_linestrip_uint2ushort_first2last;
-translate[IN_UINT][OUT_USHORT][PV_FIRST][PV_LAST][PIPE_PRIM_LINE_LOOP] = translate_lineloop_uint2ushort_first2last;
-translate[IN_UINT][OUT_USHORT][PV_FIRST][PV_LAST][PIPE_PRIM_TRIANGLES] = translate_tris_uint2ushort_first2last;
-translate[IN_UINT][OUT_USHORT][PV_FIRST][PV_LAST][PIPE_PRIM_TRIANGLE_FAN] = translate_trifan_uint2ushort_first2last;
-translate[IN_UINT][OUT_USHORT][PV_FIRST][PV_LAST][PIPE_PRIM_TRIANGLE_STRIP] = translate_tristrip_uint2ushort_first2last;
-translate[IN_UINT][OUT_USHORT][PV_FIRST][PV_LAST][PIPE_PRIM_QUADS] = translate_quads_uint2ushort_first2last;
-translate[IN_UINT][OUT_USHORT][PV_FIRST][PV_LAST][PIPE_PRIM_QUAD_STRIP] = translate_quadstrip_uint2ushort_first2last;
-translate[IN_UINT][OUT_USHORT][PV_FIRST][PV_LAST][PIPE_PRIM_POLYGON] = translate_polygon_uint2ushort_first2last;
-translate[IN_UINT][OUT_USHORT][PV_LAST][PV_FIRST][PIPE_PRIM_POINTS] = translate_points_uint2ushort_last2first;
-translate[IN_UINT][OUT_USHORT][PV_LAST][PV_FIRST][PIPE_PRIM_LINES] = translate_lines_uint2ushort_last2first;
-translate[IN_UINT][OUT_USHORT][PV_LAST][PV_FIRST][PIPE_PRIM_LINE_STRIP] = translate_linestrip_uint2ushort_last2first;
-translate[IN_UINT][OUT_USHORT][PV_LAST][PV_FIRST][PIPE_PRIM_LINE_LOOP] = translate_lineloop_uint2ushort_last2first;
-translate[IN_UINT][OUT_USHORT][PV_LAST][PV_FIRST][PIPE_PRIM_TRIANGLES] = translate_tris_uint2ushort_last2first;
-translate[IN_UINT][OUT_USHORT][PV_LAST][PV_FIRST][PIPE_PRIM_TRIANGLE_FAN] = translate_trifan_uint2ushort_last2first;
-translate[IN_UINT][OUT_USHORT][PV_LAST][PV_FIRST][PIPE_PRIM_TRIANGLE_STRIP] = translate_tristrip_uint2ushort_last2first;
-translate[IN_UINT][OUT_USHORT][PV_LAST][PV_FIRST][PIPE_PRIM_QUADS] = translate_quads_uint2ushort_last2first;
-translate[IN_UINT][OUT_USHORT][PV_LAST][PV_FIRST][PIPE_PRIM_QUAD_STRIP] = translate_quadstrip_uint2ushort_last2first;
-translate[IN_UINT][OUT_USHORT][PV_LAST][PV_FIRST][PIPE_PRIM_POLYGON] = translate_polygon_uint2ushort_last2first;
-translate[IN_UINT][OUT_USHORT][PV_LAST][PV_LAST][PIPE_PRIM_POINTS] = translate_points_uint2ushort_last2last;
-translate[IN_UINT][OUT_USHORT][PV_LAST][PV_LAST][PIPE_PRIM_LINES] = translate_lines_uint2ushort_last2last;
-translate[IN_UINT][OUT_USHORT][PV_LAST][PV_LAST][PIPE_PRIM_LINE_STRIP] = translate_linestrip_uint2ushort_last2last;
-translate[IN_UINT][OUT_USHORT][PV_LAST][PV_LAST][PIPE_PRIM_LINE_LOOP] = translate_lineloop_uint2ushort_last2last;
-translate[IN_UINT][OUT_USHORT][PV_LAST][PV_LAST][PIPE_PRIM_TRIANGLES] = translate_tris_uint2ushort_last2last;
-translate[IN_UINT][OUT_USHORT][PV_LAST][PV_LAST][PIPE_PRIM_TRIANGLE_FAN] = translate_trifan_uint2ushort_last2last;
-translate[IN_UINT][OUT_USHORT][PV_LAST][PV_LAST][PIPE_PRIM_TRIANGLE_STRIP] = translate_tristrip_uint2ushort_last2last;
-translate[IN_UINT][OUT_USHORT][PV_LAST][PV_LAST][PIPE_PRIM_QUADS] = translate_quads_uint2ushort_last2last;
-translate[IN_UINT][OUT_USHORT][PV_LAST][PV_LAST][PIPE_PRIM_QUAD_STRIP] = translate_quadstrip_uint2ushort_last2last;
-translate[IN_UINT][OUT_USHORT][PV_LAST][PV_LAST][PIPE_PRIM_POLYGON] = translate_polygon_uint2ushort_last2last;
-translate[IN_UINT][OUT_UINT][PV_FIRST][PV_FIRST][PIPE_PRIM_POINTS] = translate_points_uint2uint_first2first;
-translate[IN_UINT][OUT_UINT][PV_FIRST][PV_FIRST][PIPE_PRIM_LINES] = translate_lines_uint2uint_first2first;
-translate[IN_UINT][OUT_UINT][PV_FIRST][PV_FIRST][PIPE_PRIM_LINE_STRIP] = translate_linestrip_uint2uint_first2first;
-translate[IN_UINT][OUT_UINT][PV_FIRST][PV_FIRST][PIPE_PRIM_LINE_LOOP] = translate_lineloop_uint2uint_first2first;
-translate[IN_UINT][OUT_UINT][PV_FIRST][PV_FIRST][PIPE_PRIM_TRIANGLES] = translate_tris_uint2uint_first2first;
-translate[IN_UINT][OUT_UINT][PV_FIRST][PV_FIRST][PIPE_PRIM_TRIANGLE_FAN] = translate_trifan_uint2uint_first2first;
-translate[IN_UINT][OUT_UINT][PV_FIRST][PV_FIRST][PIPE_PRIM_TRIANGLE_STRIP] = translate_tristrip_uint2uint_first2first;
-translate[IN_UINT][OUT_UINT][PV_FIRST][PV_FIRST][PIPE_PRIM_QUADS] = translate_quads_uint2uint_first2first;
-translate[IN_UINT][OUT_UINT][PV_FIRST][PV_FIRST][PIPE_PRIM_QUAD_STRIP] = translate_quadstrip_uint2uint_first2first;
-translate[IN_UINT][OUT_UINT][PV_FIRST][PV_FIRST][PIPE_PRIM_POLYGON] = translate_polygon_uint2uint_first2first;
-translate[IN_UINT][OUT_UINT][PV_FIRST][PV_LAST][PIPE_PRIM_POINTS] = translate_points_uint2uint_first2last;
-translate[IN_UINT][OUT_UINT][PV_FIRST][PV_LAST][PIPE_PRIM_LINES] = translate_lines_uint2uint_first2last;
-translate[IN_UINT][OUT_UINT][PV_FIRST][PV_LAST][PIPE_PRIM_LINE_STRIP] = translate_linestrip_uint2uint_first2last;
-translate[IN_UINT][OUT_UINT][PV_FIRST][PV_LAST][PIPE_PRIM_LINE_LOOP] = translate_lineloop_uint2uint_first2last;
-translate[IN_UINT][OUT_UINT][PV_FIRST][PV_LAST][PIPE_PRIM_TRIANGLES] = translate_tris_uint2uint_first2last;
-translate[IN_UINT][OUT_UINT][PV_FIRST][PV_LAST][PIPE_PRIM_TRIANGLE_FAN] = translate_trifan_uint2uint_first2last;
-translate[IN_UINT][OUT_UINT][PV_FIRST][PV_LAST][PIPE_PRIM_TRIANGLE_STRIP] = translate_tristrip_uint2uint_first2last;
-translate[IN_UINT][OUT_UINT][PV_FIRST][PV_LAST][PIPE_PRIM_QUADS] = translate_quads_uint2uint_first2last;
-translate[IN_UINT][OUT_UINT][PV_FIRST][PV_LAST][PIPE_PRIM_QUAD_STRIP] = translate_quadstrip_uint2uint_first2last;
-translate[IN_UINT][OUT_UINT][PV_FIRST][PV_LAST][PIPE_PRIM_POLYGON] = translate_polygon_uint2uint_first2last;
-translate[IN_UINT][OUT_UINT][PV_LAST][PV_FIRST][PIPE_PRIM_POINTS] = translate_points_uint2uint_last2first;
-translate[IN_UINT][OUT_UINT][PV_LAST][PV_FIRST][PIPE_PRIM_LINES] = translate_lines_uint2uint_last2first;
-translate[IN_UINT][OUT_UINT][PV_LAST][PV_FIRST][PIPE_PRIM_LINE_STRIP] = translate_linestrip_uint2uint_last2first;
-translate[IN_UINT][OUT_UINT][PV_LAST][PV_FIRST][PIPE_PRIM_LINE_LOOP] = translate_lineloop_uint2uint_last2first;
-translate[IN_UINT][OUT_UINT][PV_LAST][PV_FIRST][PIPE_PRIM_TRIANGLES] = translate_tris_uint2uint_last2first;
-translate[IN_UINT][OUT_UINT][PV_LAST][PV_FIRST][PIPE_PRIM_TRIANGLE_FAN] = translate_trifan_uint2uint_last2first;
-translate[IN_UINT][OUT_UINT][PV_LAST][PV_FIRST][PIPE_PRIM_TRIANGLE_STRIP] = translate_tristrip_uint2uint_last2first;
-translate[IN_UINT][OUT_UINT][PV_LAST][PV_FIRST][PIPE_PRIM_QUADS] = translate_quads_uint2uint_last2first;
-translate[IN_UINT][OUT_UINT][PV_LAST][PV_FIRST][PIPE_PRIM_QUAD_STRIP] = translate_quadstrip_uint2uint_last2first;
-translate[IN_UINT][OUT_UINT][PV_LAST][PV_FIRST][PIPE_PRIM_POLYGON] = translate_polygon_uint2uint_last2first;
-translate[IN_UINT][OUT_UINT][PV_LAST][PV_LAST][PIPE_PRIM_POINTS] = translate_points_uint2uint_last2last;
-translate[IN_UINT][OUT_UINT][PV_LAST][PV_LAST][PIPE_PRIM_LINES] = translate_lines_uint2uint_last2last;
-translate[IN_UINT][OUT_UINT][PV_LAST][PV_LAST][PIPE_PRIM_LINE_STRIP] = translate_linestrip_uint2uint_last2last;
-translate[IN_UINT][OUT_UINT][PV_LAST][PV_LAST][PIPE_PRIM_LINE_LOOP] = translate_lineloop_uint2uint_last2last;
-translate[IN_UINT][OUT_UINT][PV_LAST][PV_LAST][PIPE_PRIM_TRIANGLES] = translate_tris_uint2uint_last2last;
-translate[IN_UINT][OUT_UINT][PV_LAST][PV_LAST][PIPE_PRIM_TRIANGLE_FAN] = translate_trifan_uint2uint_last2last;
-translate[IN_UINT][OUT_UINT][PV_LAST][PV_LAST][PIPE_PRIM_TRIANGLE_STRIP] = translate_tristrip_uint2uint_last2last;
-translate[IN_UINT][OUT_UINT][PV_LAST][PV_LAST][PIPE_PRIM_QUADS] = translate_quads_uint2uint_last2last;
-translate[IN_UINT][OUT_UINT][PV_LAST][PV_LAST][PIPE_PRIM_QUAD_STRIP] = translate_quadstrip_uint2uint_last2last;
-translate[IN_UINT][OUT_UINT][PV_LAST][PV_LAST][PIPE_PRIM_POLYGON] = translate_polygon_uint2uint_last2last;
-}
-#include "indices/u_indices.c"
diff --git a/reactos/dll/opengl/mesa/generated/gallium/auxiliary/indices/u_unfilled_gen.c b/reactos/dll/opengl/mesa/generated/gallium/auxiliary/indices/u_unfilled_gen.c
deleted file mode 100644 (file)
index e71cd2f..0000000
+++ /dev/null
@@ -1,960 +0,0 @@
-/* File automatically generated by u_unfilled_gen.py */
-
-/*
- * Copyright 2009 VMware, Inc.
- * All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * 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
- * VMWARE 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
- * Functions to translate and generate index lists
- */
-
-#include "indices/u_indices.h"
-#include "indices/u_indices_priv.h"
-#include "pipe/p_compiler.h"
-#include "util/u_debug.h"
-#include "pipe/p_defines.h"
-#include "util/u_memory.h"
-
-
-static unsigned out_size_idx( unsigned index_size )
-{
-   switch (index_size) {
-   case 4: return OUT_UINT;
-   case 2: return OUT_USHORT;
-   default: assert(0); return OUT_USHORT;
-   }
-}
-
-static unsigned in_size_idx( unsigned index_size )
-{
-   switch (index_size) {
-   case 4: return IN_UINT;
-   case 2: return IN_USHORT;
-   case 1: return IN_UBYTE;
-   default: assert(0); return IN_UBYTE;
-   }
-}
-
-
-static u_generate_func generate_line[OUT_COUNT][PRIM_COUNT];
-static u_translate_func translate_line[IN_COUNT][OUT_COUNT][PRIM_COUNT];
-
-
-static void generate_tris_ushort(
-    unsigned nr,
-    void *_out )
-{
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=6, i+=3) { 
-      (out+j)[0] = (ushort)(i);
-      (out+j)[1] = (ushort)(i+1);
-      (out+j+2)[0] = (ushort)(i+1);
-      (out+j+2)[1] = (ushort)(i+2);
-      (out+j+4)[0] = (ushort)(i+2);
-      (out+j+4)[1] = (ushort)(i);
-   }
-}
-static void generate_tristrip_ushort(
-    unsigned nr,
-    void *_out )
-{
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=6, i++) { 
-      (out+j)[0] = (ushort)(i);
-      (out+j)[1] = (ushort)(i+1/*+(i&1)*/);
-      (out+j+2)[0] = (ushort)(i+1/*+(i&1)*/);
-      (out+j+2)[1] = (ushort)(i+2/*-(i&1)*/);
-      (out+j+4)[0] = (ushort)(i+2/*-(i&1)*/);
-      (out+j+4)[1] = (ushort)(i);
-   }
-}
-static void generate_trifan_ushort(
-    unsigned nr,
-    void *_out )
-{
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=6, i++) { 
-      (out+j)[0] = (ushort)(0);
-      (out+j)[1] = (ushort)(i+1);
-      (out+j+2)[0] = (ushort)(i+1);
-      (out+j+2)[1] = (ushort)(i+2);
-      (out+j+4)[0] = (ushort)(i+2);
-      (out+j+4)[1] = (ushort)(0);
-   }
-}
-static void generate_quads_ushort(
-    unsigned nr,
-    void *_out )
-{
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=8, i+=4) { 
-      (out+j)[0] = (ushort)(i+0);
-      (out+j)[1] = (ushort)(i+1);
-      (out+j+2)[0] = (ushort)(i+1);
-      (out+j+2)[1] = (ushort)(i+2);
-      (out+j+4)[0] = (ushort)(i+2);
-      (out+j+4)[1] = (ushort)(i+3);
-      (out+j+6)[0] = (ushort)(i+3);
-      (out+j+6)[1] = (ushort)(i+0);
-   }
-}
-static void generate_quadstrip_ushort(
-    unsigned nr,
-    void *_out )
-{
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=8, i+=2) { 
-      (out+j)[0] = (ushort)(i+2);
-      (out+j)[1] = (ushort)(i+0);
-      (out+j+2)[0] = (ushort)(i+0);
-      (out+j+2)[1] = (ushort)(i+1);
-      (out+j+4)[0] = (ushort)(i+1);
-      (out+j+4)[1] = (ushort)(i+3);
-      (out+j+6)[0] = (ushort)(i+3);
-      (out+j+6)[1] = (ushort)(i+2);
-   }
-}
-static void generate_polygon_ushort(
-    unsigned nr,
-    void *_out )
-{
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=2, i++) { 
-      (out+j)[0] = (ushort)(i);
-      (out+j)[1] = (ushort)((i+1)%(nr/2));
-   }
-}
-static void generate_tris_uint(
-    unsigned nr,
-    void *_out )
-{
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=6, i+=3) { 
-      (out+j)[0] = (uint)(i);
-      (out+j)[1] = (uint)(i+1);
-      (out+j+2)[0] = (uint)(i+1);
-      (out+j+2)[1] = (uint)(i+2);
-      (out+j+4)[0] = (uint)(i+2);
-      (out+j+4)[1] = (uint)(i);
-   }
-}
-static void generate_tristrip_uint(
-    unsigned nr,
-    void *_out )
-{
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=6, i++) { 
-      (out+j)[0] = (uint)(i);
-      (out+j)[1] = (uint)(i+1/*+(i&1)*/);
-      (out+j+2)[0] = (uint)(i+1/*+(i&1)*/);
-      (out+j+2)[1] = (uint)(i+2/*-(i&1)*/);
-      (out+j+4)[0] = (uint)(i+2/*-(i&1)*/);
-      (out+j+4)[1] = (uint)(i);
-   }
-}
-static void generate_trifan_uint(
-    unsigned nr,
-    void *_out )
-{
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=6, i++) { 
-      (out+j)[0] = (uint)(0);
-      (out+j)[1] = (uint)(i+1);
-      (out+j+2)[0] = (uint)(i+1);
-      (out+j+2)[1] = (uint)(i+2);
-      (out+j+4)[0] = (uint)(i+2);
-      (out+j+4)[1] = (uint)(0);
-   }
-}
-static void generate_quads_uint(
-    unsigned nr,
-    void *_out )
-{
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=8, i+=4) { 
-      (out+j)[0] = (uint)(i+0);
-      (out+j)[1] = (uint)(i+1);
-      (out+j+2)[0] = (uint)(i+1);
-      (out+j+2)[1] = (uint)(i+2);
-      (out+j+4)[0] = (uint)(i+2);
-      (out+j+4)[1] = (uint)(i+3);
-      (out+j+6)[0] = (uint)(i+3);
-      (out+j+6)[1] = (uint)(i+0);
-   }
-}
-static void generate_quadstrip_uint(
-    unsigned nr,
-    void *_out )
-{
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=8, i+=2) { 
-      (out+j)[0] = (uint)(i+2);
-      (out+j)[1] = (uint)(i+0);
-      (out+j+2)[0] = (uint)(i+0);
-      (out+j+2)[1] = (uint)(i+1);
-      (out+j+4)[0] = (uint)(i+1);
-      (out+j+4)[1] = (uint)(i+3);
-      (out+j+6)[0] = (uint)(i+3);
-      (out+j+6)[1] = (uint)(i+2);
-   }
-}
-static void generate_polygon_uint(
-    unsigned nr,
-    void *_out )
-{
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=2, i++) { 
-      (out+j)[0] = (uint)(i);
-      (out+j)[1] = (uint)((i+1)%(nr/2));
-   }
-}
-static void translate_tris_ubyte2ushort(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=6, i+=3) { 
-      (out+j)[0] = (ushort)in[i];
-      (out+j)[1] = (ushort)in[i+1];
-      (out+j+2)[0] = (ushort)in[i+1];
-      (out+j+2)[1] = (ushort)in[i+2];
-      (out+j+4)[0] = (ushort)in[i+2];
-      (out+j+4)[1] = (ushort)in[i];
-   }
-}
-static void translate_tristrip_ubyte2ushort(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=6, i++) { 
-      (out+j)[0] = (ushort)in[i];
-      (out+j)[1] = (ushort)in[i+1/*+(i&1)*/];
-      (out+j+2)[0] = (ushort)in[i+1/*+(i&1)*/];
-      (out+j+2)[1] = (ushort)in[i+2/*-(i&1)*/];
-      (out+j+4)[0] = (ushort)in[i+2/*-(i&1)*/];
-      (out+j+4)[1] = (ushort)in[i];
-   }
-}
-static void translate_trifan_ubyte2ushort(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=6, i++) { 
-      (out+j)[0] = (ushort)in[0];
-      (out+j)[1] = (ushort)in[i+1];
-      (out+j+2)[0] = (ushort)in[i+1];
-      (out+j+2)[1] = (ushort)in[i+2];
-      (out+j+4)[0] = (ushort)in[i+2];
-      (out+j+4)[1] = (ushort)in[0];
-   }
-}
-static void translate_quads_ubyte2ushort(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=8, i+=4) { 
-      (out+j)[0] = (ushort)in[i+0];
-      (out+j)[1] = (ushort)in[i+1];
-      (out+j+2)[0] = (ushort)in[i+1];
-      (out+j+2)[1] = (ushort)in[i+2];
-      (out+j+4)[0] = (ushort)in[i+2];
-      (out+j+4)[1] = (ushort)in[i+3];
-      (out+j+6)[0] = (ushort)in[i+3];
-      (out+j+6)[1] = (ushort)in[i+0];
-   }
-}
-static void translate_quadstrip_ubyte2ushort(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=8, i+=2) { 
-      (out+j)[0] = (ushort)in[i+2];
-      (out+j)[1] = (ushort)in[i+0];
-      (out+j+2)[0] = (ushort)in[i+0];
-      (out+j+2)[1] = (ushort)in[i+1];
-      (out+j+4)[0] = (ushort)in[i+1];
-      (out+j+4)[1] = (ushort)in[i+3];
-      (out+j+6)[0] = (ushort)in[i+3];
-      (out+j+6)[1] = (ushort)in[i+2];
-   }
-}
-static void translate_polygon_ubyte2ushort(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=2, i++) { 
-      (out+j)[0] = (ushort)in[i];
-      (out+j)[1] = (ushort)in[(i+1)%(nr/2)];
-   }
-}
-static void translate_tris_ubyte2uint(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=6, i+=3) { 
-      (out+j)[0] = (uint)in[i];
-      (out+j)[1] = (uint)in[i+1];
-      (out+j+2)[0] = (uint)in[i+1];
-      (out+j+2)[1] = (uint)in[i+2];
-      (out+j+4)[0] = (uint)in[i+2];
-      (out+j+4)[1] = (uint)in[i];
-   }
-}
-static void translate_tristrip_ubyte2uint(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=6, i++) { 
-      (out+j)[0] = (uint)in[i];
-      (out+j)[1] = (uint)in[i+1/*+(i&1)*/];
-      (out+j+2)[0] = (uint)in[i+1/*+(i&1)*/];
-      (out+j+2)[1] = (uint)in[i+2/*-(i&1)*/];
-      (out+j+4)[0] = (uint)in[i+2/*-(i&1)*/];
-      (out+j+4)[1] = (uint)in[i];
-   }
-}
-static void translate_trifan_ubyte2uint(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=6, i++) { 
-      (out+j)[0] = (uint)in[0];
-      (out+j)[1] = (uint)in[i+1];
-      (out+j+2)[0] = (uint)in[i+1];
-      (out+j+2)[1] = (uint)in[i+2];
-      (out+j+4)[0] = (uint)in[i+2];
-      (out+j+4)[1] = (uint)in[0];
-   }
-}
-static void translate_quads_ubyte2uint(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=8, i+=4) { 
-      (out+j)[0] = (uint)in[i+0];
-      (out+j)[1] = (uint)in[i+1];
-      (out+j+2)[0] = (uint)in[i+1];
-      (out+j+2)[1] = (uint)in[i+2];
-      (out+j+4)[0] = (uint)in[i+2];
-      (out+j+4)[1] = (uint)in[i+3];
-      (out+j+6)[0] = (uint)in[i+3];
-      (out+j+6)[1] = (uint)in[i+0];
-   }
-}
-static void translate_quadstrip_ubyte2uint(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=8, i+=2) { 
-      (out+j)[0] = (uint)in[i+2];
-      (out+j)[1] = (uint)in[i+0];
-      (out+j+2)[0] = (uint)in[i+0];
-      (out+j+2)[1] = (uint)in[i+1];
-      (out+j+4)[0] = (uint)in[i+1];
-      (out+j+4)[1] = (uint)in[i+3];
-      (out+j+6)[0] = (uint)in[i+3];
-      (out+j+6)[1] = (uint)in[i+2];
-   }
-}
-static void translate_polygon_ubyte2uint(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ubyte*in = (const ubyte*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=2, i++) { 
-      (out+j)[0] = (uint)in[i];
-      (out+j)[1] = (uint)in[(i+1)%(nr/2)];
-   }
-}
-static void translate_tris_ushort2ushort(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=6, i+=3) { 
-      (out+j)[0] = (ushort)in[i];
-      (out+j)[1] = (ushort)in[i+1];
-      (out+j+2)[0] = (ushort)in[i+1];
-      (out+j+2)[1] = (ushort)in[i+2];
-      (out+j+4)[0] = (ushort)in[i+2];
-      (out+j+4)[1] = (ushort)in[i];
-   }
-}
-static void translate_tristrip_ushort2ushort(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=6, i++) { 
-      (out+j)[0] = (ushort)in[i];
-      (out+j)[1] = (ushort)in[i+1/*+(i&1)*/];
-      (out+j+2)[0] = (ushort)in[i+1/*+(i&1)*/];
-      (out+j+2)[1] = (ushort)in[i+2/*-(i&1)*/];
-      (out+j+4)[0] = (ushort)in[i+2/*-(i&1)*/];
-      (out+j+4)[1] = (ushort)in[i];
-   }
-}
-static void translate_trifan_ushort2ushort(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=6, i++) { 
-      (out+j)[0] = (ushort)in[0];
-      (out+j)[1] = (ushort)in[i+1];
-      (out+j+2)[0] = (ushort)in[i+1];
-      (out+j+2)[1] = (ushort)in[i+2];
-      (out+j+4)[0] = (ushort)in[i+2];
-      (out+j+4)[1] = (ushort)in[0];
-   }
-}
-static void translate_quads_ushort2ushort(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=8, i+=4) { 
-      (out+j)[0] = (ushort)in[i+0];
-      (out+j)[1] = (ushort)in[i+1];
-      (out+j+2)[0] = (ushort)in[i+1];
-      (out+j+2)[1] = (ushort)in[i+2];
-      (out+j+4)[0] = (ushort)in[i+2];
-      (out+j+4)[1] = (ushort)in[i+3];
-      (out+j+6)[0] = (ushort)in[i+3];
-      (out+j+6)[1] = (ushort)in[i+0];
-   }
-}
-static void translate_quadstrip_ushort2ushort(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=8, i+=2) { 
-      (out+j)[0] = (ushort)in[i+2];
-      (out+j)[1] = (ushort)in[i+0];
-      (out+j+2)[0] = (ushort)in[i+0];
-      (out+j+2)[1] = (ushort)in[i+1];
-      (out+j+4)[0] = (ushort)in[i+1];
-      (out+j+4)[1] = (ushort)in[i+3];
-      (out+j+6)[0] = (ushort)in[i+3];
-      (out+j+6)[1] = (ushort)in[i+2];
-   }
-}
-static void translate_polygon_ushort2ushort(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=2, i++) { 
-      (out+j)[0] = (ushort)in[i];
-      (out+j)[1] = (ushort)in[(i+1)%(nr/2)];
-   }
-}
-static void translate_tris_ushort2uint(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=6, i+=3) { 
-      (out+j)[0] = (uint)in[i];
-      (out+j)[1] = (uint)in[i+1];
-      (out+j+2)[0] = (uint)in[i+1];
-      (out+j+2)[1] = (uint)in[i+2];
-      (out+j+4)[0] = (uint)in[i+2];
-      (out+j+4)[1] = (uint)in[i];
-   }
-}
-static void translate_tristrip_ushort2uint(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=6, i++) { 
-      (out+j)[0] = (uint)in[i];
-      (out+j)[1] = (uint)in[i+1/*+(i&1)*/];
-      (out+j+2)[0] = (uint)in[i+1/*+(i&1)*/];
-      (out+j+2)[1] = (uint)in[i+2/*-(i&1)*/];
-      (out+j+4)[0] = (uint)in[i+2/*-(i&1)*/];
-      (out+j+4)[1] = (uint)in[i];
-   }
-}
-static void translate_trifan_ushort2uint(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=6, i++) { 
-      (out+j)[0] = (uint)in[0];
-      (out+j)[1] = (uint)in[i+1];
-      (out+j+2)[0] = (uint)in[i+1];
-      (out+j+2)[1] = (uint)in[i+2];
-      (out+j+4)[0] = (uint)in[i+2];
-      (out+j+4)[1] = (uint)in[0];
-   }
-}
-static void translate_quads_ushort2uint(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=8, i+=4) { 
-      (out+j)[0] = (uint)in[i+0];
-      (out+j)[1] = (uint)in[i+1];
-      (out+j+2)[0] = (uint)in[i+1];
-      (out+j+2)[1] = (uint)in[i+2];
-      (out+j+4)[0] = (uint)in[i+2];
-      (out+j+4)[1] = (uint)in[i+3];
-      (out+j+6)[0] = (uint)in[i+3];
-      (out+j+6)[1] = (uint)in[i+0];
-   }
-}
-static void translate_quadstrip_ushort2uint(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=8, i+=2) { 
-      (out+j)[0] = (uint)in[i+2];
-      (out+j)[1] = (uint)in[i+0];
-      (out+j+2)[0] = (uint)in[i+0];
-      (out+j+2)[1] = (uint)in[i+1];
-      (out+j+4)[0] = (uint)in[i+1];
-      (out+j+4)[1] = (uint)in[i+3];
-      (out+j+6)[0] = (uint)in[i+3];
-      (out+j+6)[1] = (uint)in[i+2];
-   }
-}
-static void translate_polygon_ushort2uint(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const ushort*in = (const ushort*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=2, i++) { 
-      (out+j)[0] = (uint)in[i];
-      (out+j)[1] = (uint)in[(i+1)%(nr/2)];
-   }
-}
-static void translate_tris_uint2ushort(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=6, i+=3) { 
-      (out+j)[0] = (ushort)in[i];
-      (out+j)[1] = (ushort)in[i+1];
-      (out+j+2)[0] = (ushort)in[i+1];
-      (out+j+2)[1] = (ushort)in[i+2];
-      (out+j+4)[0] = (ushort)in[i+2];
-      (out+j+4)[1] = (ushort)in[i];
-   }
-}
-static void translate_tristrip_uint2ushort(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=6, i++) { 
-      (out+j)[0] = (ushort)in[i];
-      (out+j)[1] = (ushort)in[i+1/*+(i&1)*/];
-      (out+j+2)[0] = (ushort)in[i+1/*+(i&1)*/];
-      (out+j+2)[1] = (ushort)in[i+2/*-(i&1)*/];
-      (out+j+4)[0] = (ushort)in[i+2/*-(i&1)*/];
-      (out+j+4)[1] = (ushort)in[i];
-   }
-}
-static void translate_trifan_uint2ushort(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=6, i++) { 
-      (out+j)[0] = (ushort)in[0];
-      (out+j)[1] = (ushort)in[i+1];
-      (out+j+2)[0] = (ushort)in[i+1];
-      (out+j+2)[1] = (ushort)in[i+2];
-      (out+j+4)[0] = (ushort)in[i+2];
-      (out+j+4)[1] = (ushort)in[0];
-   }
-}
-static void translate_quads_uint2ushort(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=8, i+=4) { 
-      (out+j)[0] = (ushort)in[i+0];
-      (out+j)[1] = (ushort)in[i+1];
-      (out+j+2)[0] = (ushort)in[i+1];
-      (out+j+2)[1] = (ushort)in[i+2];
-      (out+j+4)[0] = (ushort)in[i+2];
-      (out+j+4)[1] = (ushort)in[i+3];
-      (out+j+6)[0] = (ushort)in[i+3];
-      (out+j+6)[1] = (ushort)in[i+0];
-   }
-}
-static void translate_quadstrip_uint2ushort(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=8, i+=2) { 
-      (out+j)[0] = (ushort)in[i+2];
-      (out+j)[1] = (ushort)in[i+0];
-      (out+j+2)[0] = (ushort)in[i+0];
-      (out+j+2)[1] = (ushort)in[i+1];
-      (out+j+4)[0] = (ushort)in[i+1];
-      (out+j+4)[1] = (ushort)in[i+3];
-      (out+j+6)[0] = (ushort)in[i+3];
-      (out+j+6)[1] = (ushort)in[i+2];
-   }
-}
-static void translate_polygon_uint2ushort(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  ushort *out = (ushort*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=2, i++) { 
-      (out+j)[0] = (ushort)in[i];
-      (out+j)[1] = (ushort)in[(i+1)%(nr/2)];
-   }
-}
-static void translate_tris_uint2uint(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=6, i+=3) { 
-      (out+j)[0] = (uint)in[i];
-      (out+j)[1] = (uint)in[i+1];
-      (out+j+2)[0] = (uint)in[i+1];
-      (out+j+2)[1] = (uint)in[i+2];
-      (out+j+4)[0] = (uint)in[i+2];
-      (out+j+4)[1] = (uint)in[i];
-   }
-}
-static void translate_tristrip_uint2uint(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=6, i++) { 
-      (out+j)[0] = (uint)in[i];
-      (out+j)[1] = (uint)in[i+1/*+(i&1)*/];
-      (out+j+2)[0] = (uint)in[i+1/*+(i&1)*/];
-      (out+j+2)[1] = (uint)in[i+2/*-(i&1)*/];
-      (out+j+4)[0] = (uint)in[i+2/*-(i&1)*/];
-      (out+j+4)[1] = (uint)in[i];
-   }
-}
-static void translate_trifan_uint2uint(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=6, i++) { 
-      (out+j)[0] = (uint)in[0];
-      (out+j)[1] = (uint)in[i+1];
-      (out+j+2)[0] = (uint)in[i+1];
-      (out+j+2)[1] = (uint)in[i+2];
-      (out+j+4)[0] = (uint)in[i+2];
-      (out+j+4)[1] = (uint)in[0];
-   }
-}
-static void translate_quads_uint2uint(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=8, i+=4) { 
-      (out+j)[0] = (uint)in[i+0];
-      (out+j)[1] = (uint)in[i+1];
-      (out+j+2)[0] = (uint)in[i+1];
-      (out+j+2)[1] = (uint)in[i+2];
-      (out+j+4)[0] = (uint)in[i+2];
-      (out+j+4)[1] = (uint)in[i+3];
-      (out+j+6)[0] = (uint)in[i+3];
-      (out+j+6)[1] = (uint)in[i+0];
-   }
-}
-static void translate_quadstrip_uint2uint(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=8, i+=2) { 
-      (out+j)[0] = (uint)in[i+2];
-      (out+j)[1] = (uint)in[i+0];
-      (out+j+2)[0] = (uint)in[i+0];
-      (out+j+2)[1] = (uint)in[i+1];
-      (out+j+4)[0] = (uint)in[i+1];
-      (out+j+4)[1] = (uint)in[i+3];
-      (out+j+6)[0] = (uint)in[i+3];
-      (out+j+6)[1] = (uint)in[i+2];
-   }
-}
-static void translate_polygon_uint2uint(
-    const void * _in,
-    unsigned nr,
-    void *_out )
-{
-  const uint*in = (const uint*)_in;
-  uint *out = (uint*)_out;
-  unsigned i, j;
-  (void)j;
-  for (j = i = 0; j < nr; j+=2, i++) { 
-      (out+j)[0] = (uint)in[i];
-      (out+j)[1] = (uint)in[(i+1)%(nr/2)];
-   }
-}
-void u_unfilled_init( void )
-{
-  static int firsttime = 1;
-  if (!firsttime) return;
-  firsttime = 0;
-generate_line[OUT_USHORT][PIPE_PRIM_TRIANGLES] = generate_tris_ushort;
-generate_line[OUT_USHORT][PIPE_PRIM_TRIANGLE_FAN] = generate_trifan_ushort;
-generate_line[OUT_USHORT][PIPE_PRIM_TRIANGLE_STRIP] = generate_tristrip_ushort;
-generate_line[OUT_USHORT][PIPE_PRIM_QUADS] = generate_quads_ushort;
-generate_line[OUT_USHORT][PIPE_PRIM_QUAD_STRIP] = generate_quadstrip_ushort;
-generate_line[OUT_USHORT][PIPE_PRIM_POLYGON] = generate_polygon_ushort;
-generate_line[OUT_UINT][PIPE_PRIM_TRIANGLES] = generate_tris_uint;
-generate_line[OUT_UINT][PIPE_PRIM_TRIANGLE_FAN] = generate_trifan_uint;
-generate_line[OUT_UINT][PIPE_PRIM_TRIANGLE_STRIP] = generate_tristrip_uint;
-generate_line[OUT_UINT][PIPE_PRIM_QUADS] = generate_quads_uint;
-generate_line[OUT_UINT][PIPE_PRIM_QUAD_STRIP] = generate_quadstrip_uint;
-generate_line[OUT_UINT][PIPE_PRIM_POLYGON] = generate_polygon_uint;
-translate_line[IN_UBYTE][OUT_USHORT][PIPE_PRIM_TRIANGLES] = translate_tris_ubyte2ushort;
-translate_line[IN_UBYTE][OUT_USHORT][PIPE_PRIM_TRIANGLE_FAN] = translate_trifan_ubyte2ushort;
-translate_line[IN_UBYTE][OUT_USHORT][PIPE_PRIM_TRIANGLE_STRIP] = translate_tristrip_ubyte2ushort;
-translate_line[IN_UBYTE][OUT_USHORT][PIPE_PRIM_QUADS] = translate_quads_ubyte2ushort;
-translate_line[IN_UBYTE][OUT_USHORT][PIPE_PRIM_QUAD_STRIP] = translate_quadstrip_ubyte2ushort;
-translate_line[IN_UBYTE][OUT_USHORT][PIPE_PRIM_POLYGON] = translate_polygon_ubyte2ushort;
-translate_line[IN_UBYTE][OUT_UINT][PIPE_PRIM_TRIANGLES] = translate_tris_ubyte2uint;
-translate_line[IN_UBYTE][OUT_UINT][PIPE_PRIM_TRIANGLE_FAN] = translate_trifan_ubyte2uint;
-translate_line[IN_UBYTE][OUT_UINT][PIPE_PRIM_TRIANGLE_STRIP] = translate_tristrip_ubyte2uint;
-translate_line[IN_UBYTE][OUT_UINT][PIPE_PRIM_QUADS] = translate_quads_ubyte2uint;
-translate_line[IN_UBYTE][OUT_UINT][PIPE_PRIM_QUAD_STRIP] = translate_quadstrip_ubyte2uint;
-translate_line[IN_UBYTE][OUT_UINT][PIPE_PRIM_POLYGON] = translate_polygon_ubyte2uint;
-translate_line[IN_USHORT][OUT_USHORT][PIPE_PRIM_TRIANGLES] = translate_tris_ushort2ushort;
-translate_line[IN_USHORT][OUT_USHORT][PIPE_PRIM_TRIANGLE_FAN] = translate_trifan_ushort2ushort;
-translate_line[IN_USHORT][OUT_USHORT][PIPE_PRIM_TRIANGLE_STRIP] = translate_tristrip_ushort2ushort;
-translate_line[IN_USHORT][OUT_USHORT][PIPE_PRIM_QUADS] = translate_quads_ushort2ushort;
-translate_line[IN_USHORT][OUT_USHORT][PIPE_PRIM_QUAD_STRIP] = translate_quadstrip_ushort2ushort;
-translate_line[IN_USHORT][OUT_USHORT][PIPE_PRIM_POLYGON] = translate_polygon_ushort2ushort;
-translate_line[IN_USHORT][OUT_UINT][PIPE_PRIM_TRIANGLES] = translate_tris_ushort2uint;
-translate_line[IN_USHORT][OUT_UINT][PIPE_PRIM_TRIANGLE_FAN] = translate_trifan_ushort2uint;
-translate_line[IN_USHORT][OUT_UINT][PIPE_PRIM_TRIANGLE_STRIP] = translate_tristrip_ushort2uint;
-translate_line[IN_USHORT][OUT_UINT][PIPE_PRIM_QUADS] = translate_quads_ushort2uint;
-translate_line[IN_USHORT][OUT_UINT][PIPE_PRIM_QUAD_STRIP] = translate_quadstrip_ushort2uint;
-translate_line[IN_USHORT][OUT_UINT][PIPE_PRIM_POLYGON] = translate_polygon_ushort2uint;
-translate_line[IN_UINT][OUT_USHORT][PIPE_PRIM_TRIANGLES] = translate_tris_uint2ushort;
-translate_line[IN_UINT][OUT_USHORT][PIPE_PRIM_TRIANGLE_FAN] = translate_trifan_uint2ushort;
-translate_line[IN_UINT][OUT_USHORT][PIPE_PRIM_TRIANGLE_STRIP] = translate_tristrip_uint2ushort;
-translate_line[IN_UINT][OUT_USHORT][PIPE_PRIM_QUADS] = translate_quads_uint2ushort;
-translate_line[IN_UINT][OUT_USHORT][PIPE_PRIM_QUAD_STRIP] = translate_quadstrip_uint2ushort;
-translate_line[IN_UINT][OUT_USHORT][PIPE_PRIM_POLYGON] = translate_polygon_uint2ushort;
-translate_line[IN_UINT][OUT_UINT][PIPE_PRIM_TRIANGLES] = translate_tris_uint2uint;
-translate_line[IN_UINT][OUT_UINT][PIPE_PRIM_TRIANGLE_FAN] = translate_trifan_uint2uint;
-translate_line[IN_UINT][OUT_UINT][PIPE_PRIM_TRIANGLE_STRIP] = translate_tristrip_uint2uint;
-translate_line[IN_UINT][OUT_UINT][PIPE_PRIM_QUADS] = translate_quads_uint2uint;
-translate_line[IN_UINT][OUT_UINT][PIPE_PRIM_QUAD_STRIP] = translate_quadstrip_uint2uint;
-translate_line[IN_UINT][OUT_UINT][PIPE_PRIM_POLYGON] = translate_polygon_uint2uint;
-}
-#include "indices/u_unfilled_indices.c"
diff --git a/reactos/dll/opengl/mesa/generated/gallium/auxiliary/util/u_format_srgb.c b/reactos/dll/opengl/mesa/generated/gallium/auxiliary/util/u_format_srgb.c
deleted file mode 100644 (file)
index 4ac8c7b..0000000
+++ /dev/null
@@ -1,148 +0,0 @@
-/* This file is autogenerated by u_format_srgb.py. Do not edit directly. */
-
-/**************************************************************************
- *
- * Copyright 2010 VMware, Inc.
- * All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, sub license, and/or sell copies of the Software, and to
- * permit persons to whom the Software is furnished to do so, subject to
- * the following conditions:
- *
- * The 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 VMWARE 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
- * SRGB translation.
- *
- * @author Brian Paul <brianp@vmware.com>
- * @author Michal Krol <michal@vmware.com>
- * @author Jose Fonseca <jfonseca@vmware.com>
- */
-
-#include "u_format_srgb.h"
-
-const float
-util_format_srgb_8unorm_to_linear_float_table[256] = {
-    0.0000000e+00, 3.0352698e-04, 6.0705397e-04, 9.1058095e-04,
-    1.2141079e-03, 1.5176349e-03, 1.8211619e-03, 2.1246889e-03,
-    2.4282159e-03, 2.7317429e-03, 3.0352698e-03, 3.3465358e-03,
-    3.6765073e-03, 4.0247170e-03, 4.3914420e-03, 4.7769535e-03,
-    5.1815167e-03, 5.6053916e-03, 6.0488330e-03, 6.5120908e-03,
-    6.9954102e-03, 7.4990320e-03, 8.0231930e-03, 8.5681256e-03,
-    9.1340587e-03, 9.7212173e-03, 1.0329823e-02, 1.0960094e-02,
-    1.1612245e-02, 1.2286488e-02, 1.2983032e-02, 1.3702083e-02,
-    1.4443844e-02, 1.5208514e-02, 1.5996293e-02, 1.6807376e-02,
-    1.7641954e-02, 1.8500220e-02, 1.9382361e-02, 2.0288563e-02,
-    2.1219010e-02, 2.2173885e-02, 2.3153366e-02, 2.4157632e-02,
-    2.5186860e-02, 2.6241222e-02, 2.7320892e-02, 2.8426040e-02,
-    2.9556834e-02, 3.0713444e-02, 3.1896033e-02, 3.3104767e-02,
-    3.4339807e-02, 3.5601315e-02, 3.6889450e-02, 3.8204372e-02,
-    3.9546235e-02, 4.0915197e-02, 4.2311411e-02, 4.3735029e-02,
-    4.5186204e-02, 4.6665086e-02, 4.8171824e-02, 4.9706566e-02,
-    5.1269458e-02, 5.2860647e-02, 5.4480276e-02, 5.6128490e-02,
-    5.7805430e-02, 5.9511238e-02, 6.1246054e-02, 6.3010018e-02,
-    6.4803267e-02, 6.6625939e-02, 6.8478170e-02, 7.0360096e-02,
-    7.2271851e-02, 7.4213568e-02, 7.6185381e-02, 7.8187422e-02,
-    8.0219820e-02, 8.2282707e-02, 8.4376212e-02, 8.6500462e-02,
-    8.8655586e-02, 9.0841711e-02, 9.3058963e-02, 9.5307467e-02,
-    9.7587347e-02, 9.9898728e-02, 1.0224173e-01, 1.0461648e-01,
-    1.0702310e-01, 1.0946171e-01, 1.1193243e-01, 1.1443537e-01,
-    1.1697067e-01, 1.1953843e-01, 1.2213877e-01, 1.2477182e-01,
-    1.2743768e-01, 1.3013648e-01, 1.3286832e-01, 1.3563333e-01,
-    1.3843162e-01, 1.4126329e-01, 1.4412847e-01, 1.4702727e-01,
-    1.4995979e-01, 1.5292615e-01, 1.5592646e-01, 1.5896084e-01,
-    1.6202938e-01, 1.6513219e-01, 1.6826940e-01, 1.7144110e-01,
-    1.7464740e-01, 1.7788842e-01, 1.8116424e-01, 1.8447499e-01,
-    1.8782077e-01, 1.9120168e-01, 1.9461783e-01, 1.9806932e-01,
-    2.0155625e-01, 2.0507874e-01, 2.0863687e-01, 2.1223076e-01,
-    2.1586050e-01, 2.1952620e-01, 2.2322796e-01, 2.2696587e-01,
-    2.3074005e-01, 2.3455058e-01, 2.3839757e-01, 2.4228112e-01,
-    2.4620133e-01, 2.5015828e-01, 2.5415209e-01, 2.5818285e-01,
-    2.6225066e-01, 2.6635560e-01, 2.7049779e-01, 2.7467731e-01,
-    2.7889426e-01, 2.8314874e-01, 2.8744084e-01, 2.9177065e-01,
-    2.9613827e-01, 3.0054379e-01, 3.0498731e-01, 3.0946892e-01,
-    3.1398871e-01, 3.1854678e-01, 3.2314321e-01, 3.2777810e-01,
-    3.3245154e-01, 3.3716362e-01, 3.4191442e-01, 3.4670406e-01,
-    3.5153260e-01, 3.5640014e-01, 3.6130678e-01, 3.6625260e-01,
-    3.7123768e-01, 3.7626212e-01, 3.8132601e-01, 3.8642943e-01,
-    3.9157248e-01, 3.9675523e-01, 4.0197778e-01, 4.0724021e-01,
-    4.1254261e-01, 4.1788507e-01, 4.2326767e-01, 4.2869050e-01,
-    4.3415364e-01, 4.3965717e-01, 4.4520119e-01, 4.5078578e-01,
-    4.5641102e-01, 4.6207700e-01, 4.6778380e-01, 4.7353150e-01,
-    4.7932018e-01, 4.8514994e-01, 4.9102085e-01, 4.9693300e-01,
-    5.0288646e-01, 5.0888132e-01, 5.1491767e-01, 5.2099557e-01,
-    5.2711513e-01, 5.3327640e-01, 5.3947949e-01, 5.4572446e-01,
-    5.5201140e-01, 5.5834039e-01, 5.6471151e-01, 5.7112483e-01,
-    5.7758044e-01, 5.8407842e-01, 5.9061884e-01, 5.9720179e-01,
-    6.0382734e-01, 6.1049557e-01, 6.1720656e-01, 6.2396039e-01,
-    6.3075714e-01, 6.3759687e-01, 6.4447968e-01, 6.5140564e-01,
-    6.5837482e-01, 6.6538730e-01, 6.7244316e-01, 6.7954247e-01,
-    6.8668531e-01, 6.9387176e-01, 7.0110189e-01, 7.0837578e-01,
-    7.1569350e-01, 7.2305513e-01, 7.3046074e-01, 7.3791041e-01,
-    7.4540421e-01, 7.5294222e-01, 7.6052450e-01, 7.6815115e-01,
-    7.7582222e-01, 7.8353779e-01, 7.9129794e-01, 7.9910274e-01,
-    8.0695226e-01, 8.1484657e-01, 8.2278575e-01, 8.3076988e-01,
-    8.3879901e-01, 8.4687323e-01, 8.5499261e-01, 8.6315721e-01,
-    8.7136712e-01, 8.7962240e-01, 8.8792312e-01, 8.9626935e-01,
-    9.0466117e-01, 9.1309865e-01, 9.2158186e-01, 9.3011086e-01,
-    9.3868573e-01, 9.4730654e-01, 9.5597335e-01, 9.6468625e-01,
-    9.7344529e-01, 9.8225055e-01, 9.9110210e-01, 1.0000000e+00,
-};
-
-const uint8_t
-util_format_srgb_to_linear_8unorm_table[256] = {
-      0,   0,   0,   0,   0,   0,   0,   1,   1,   1,   1,   1,   1,   1,   1,   1,
-      1,   1,   2,   2,   2,   2,   2,   2,   2,   2,   3,   3,   3,   3,   3,   3,
-      4,   4,   4,   4,   4,   5,   5,   5,   5,   6,   6,   6,   6,   7,   7,   7,
-      8,   8,   8,   8,   9,   9,   9,  10,  10,  10,  11,  11,  12,  12,  12,  13,
-     13,  13,  14,  14,  15,  15,  16,  16,  17,  17,  17,  18,  18,  19,  19,  20,
-     20,  21,  22,  22,  23,  23,  24,  24,  25,  25,  26,  27,  27,  28,  29,  29,
-     30,  30,  31,  32,  32,  33,  34,  35,  35,  36,  37,  37,  38,  39,  40,  41,
-     41,  42,  43,  44,  45,  45,  46,  47,  48,  49,  50,  51,  51,  52,  53,  54,
-     55,  56,  57,  58,  59,  60,  61,  62,  63,  64,  65,  66,  67,  68,  69,  70,
-     71,  72,  73,  74,  76,  77,  78,  79,  80,  81,  82,  84,  85,  86,  87,  88,
-     90,  91,  92,  93,  95,  96,  97,  99, 100, 101, 103, 104, 105, 107, 108, 109,
-    111, 112, 114, 115, 116, 118, 119, 121, 122, 124, 125, 127, 128, 130, 131, 133,
-    134, 136, 138, 139, 141, 142, 144, 146, 147, 149, 151, 152, 154, 156, 157, 159,
-    161, 163, 164, 166, 168, 170, 171, 173, 175, 177, 179, 181, 183, 184, 186, 188,
-    190, 192, 194, 196, 198, 200, 202, 204, 206, 208, 210, 212, 214, 216, 218, 220,
-    222, 224, 226, 229, 231, 233, 235, 237, 239, 242, 244, 246, 248, 250, 253, 255,
-};
-
-const uint8_t
-util_format_linear_to_srgb_8unorm_table[256] = {
-      0,  13,  22,  28,  34,  38,  42,  46,  50,  53,  56,  59,  61,  64,  66,  69,
-     71,  73,  75,  77,  79,  81,  83,  85,  86,  88,  90,  92,  93,  95,  96,  98,
-     99, 101, 102, 104, 105, 106, 108, 109, 110, 112, 113, 114, 115, 117, 118, 119,
-    120, 121, 122, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
-    137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 148, 149, 150, 151,
-    152, 153, 154, 155, 155, 156, 157, 158, 159, 159, 160, 161, 162, 163, 163, 164,
-    165, 166, 167, 167, 168, 169, 170, 170, 171, 172, 173, 173, 174, 175, 175, 176,
-    177, 178, 178, 179, 180, 180, 181, 182, 182, 183, 184, 185, 185, 186, 187, 187,
-    188, 189, 189, 190, 190, 191, 192, 192, 193, 194, 194, 195, 196, 196, 197, 197,
-    198, 199, 199, 200, 200, 201, 202, 202, 203, 203, 204, 205, 205, 206, 206, 207,
-    208, 208, 209, 209, 210, 210, 211, 212, 212, 213, 213, 214, 214, 215, 215, 216,
-    216, 217, 218, 218, 219, 219, 220, 220, 221, 221, 222, 222, 223, 223, 224, 224,
-    225, 226, 226, 227, 227, 228, 228, 229, 229, 230, 230, 231, 231, 232, 232, 233,
-    233, 234, 234, 235, 235, 236, 236, 237, 237, 238, 238, 238, 239, 239, 240, 240,
-    241, 241, 242, 242, 243, 243, 244, 244, 245, 245, 246, 246, 246, 247, 247, 248,
-    248, 249, 249, 250, 250, 251, 251, 251, 252, 252, 253, 253, 254, 254, 255, 255,
-};
-
diff --git a/reactos/dll/opengl/mesa/generated/gallium/auxiliary/util/u_format_table.c b/reactos/dll/opengl/mesa/generated/gallium/auxiliary/util/u_format_table.c
deleted file mode 100644 (file)
index 7acb3b0..0000000
+++ /dev/null
@@ -1,31334 +0,0 @@
-/* This file is autogenerated by u_format_table.py from u_format.csv. Do not edit directly. */
-
-/**************************************************************************
- *
- * Copyright 2010 VMware, Inc.
- * All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, sub license, and/or sell copies of the Software, and to
- * permit persons to whom the Software is furnished to do so, subject to
- * the following conditions:
- *
- * The 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 VMWARE 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 "u_format.h"
-#include "u_format_s3tc.h"
-#include "u_format_rgtc.h"
-#include "u_format_latc.h"
-#include "u_format_etc.h"
-
-
-#include "pipe/p_compiler.h"
-#include "u_math.h"
-#include "u_half.h"
-#include "u_format.h"
-#include "u_format_other.h"
-#include "u_format_srgb.h"
-#include "u_format_yuv.h"
-#include "u_format_zs.h"
-
-union util_format_none {
-   uint8_t value;
-   struct {
-      uint8_t r;
-   } chan;
-};
-
-static INLINE void
-util_format_none_unpack_rgba_float(float *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height)
-{
-   unsigned x, y;
-   for(y = 0; y < height; y += 1) {
-      float *dst = dst_row;
-      const uint8_t *src = src_row;
-      for(x = 0; x < width; x += 1) {
-         uint8_t value = *(const uint8_t *)src;
-         uint8_t r;
-         r = value;
-         dst[0] = (float)r; /* r */
-         dst[1] = 0; /* g */
-         dst[2] = 0; /* b */
-         dst[3] = 1; /* a */
-         src += 1;
-         dst += 4;
-      }
-      src_row += src_stride;
-      dst_row += dst_stride/sizeof(*dst_row);
-   }
-}
-
-static INLINE void
-util_format_none_pack_rgba_float(uint8_t *dst_row, unsigned dst_stride, const float *src_row, unsigned src_stride, unsigned width, unsigned height)
-{
-   unsigned x, y;
-   for(y = 0; y < height; y += 1) {
-      const float *src = src_row;
-      uint8_t *dst = dst_row;
-      for(x = 0; x < width; x += 1) {
-         uint8_t value = 0;
-         value |= (uint8_t)CLAMP(src[0], 0, 255);
-         *(uint8_t *)dst = value;
-         src += 4;
-         dst += 1;
-      }
-      dst_row += dst_stride;
-      src_row += src_stride/sizeof(*src_row);
-   }
-}
-
-static INLINE void
-util_format_none_fetch_rgba_float(float *dst, const uint8_t *src, unsigned i, unsigned j)
-{
-         uint8_t value = *(const uint8_t *)src;
-         uint8_t r;
-         r = value;
-         dst[0] = (float)r; /* r */
-         dst[1] = 0; /* g */
-         dst[2] = 0; /* b */
-         dst[3] = 1; /* a */
-}
-
-static INLINE void
-util_format_none_unpack_rgba_8unorm(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height)
-{
-   unsigned x, y;
-   for(y = 0; y < height; y += 1) {
-      uint8_t *dst = dst_row;
-      const uint8_t *src = src_row;
-      for(x = 0; x < width; x += 1) {
-         uint8_t value = *(const uint8_t *)src;
-         uint8_t r;
-         r = value;
-         dst[0] = (uint8_t)(((uint32_t)MIN2(r, 1)) * 0xff / 0x1); /* r */
-         dst[1] = 0; /* g */
-         dst[2] = 0; /* b */
-         dst[3] = 255; /* a */
-         src += 1;
-         dst += 4;
-      }
-      src_row += src_stride;
-      dst_row += dst_stride/sizeof(*dst_row);
-   }
-}
-
-static INLINE void
-util_format_none_pack_rgba_8unorm(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height)
-{
-   unsigned x, y;
-   for(y = 0; y < height; y += 1) {
-      const uint8_t *src = src_row;
-      uint8_t *dst = dst_row;
-      for(x = 0; x < width; x += 1) {
-         uint8_t value = 0;
-         value |= (uint8_t)(((uint32_t)src[0]) * 0x1 / 0xff);
-         *(uint8_t *)dst = value;
-         src += 4;
-         dst += 1;
-      }
-      dst_row += dst_stride;
-      src_row += src_stride/sizeof(*src_row);
-   }
-}
-
-union util_format_b8g8r8a8_unorm {
-   uint32_t value;
-   struct {
-      uint8_t b;
-      uint8_t g;
-      uint8_t r;
-      uint8_t a;
-   } chan;
-};
-
-static INLINE void
-util_format_b8g8r8a8_unorm_unpack_rgba_float(float *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height)
-{
-   unsigned x, y;
-   for(y = 0; y < height; y += 1) {
-      float *dst = dst_row;
-      const uint8_t *src = src_row;
-      for(x = 0; x < width; x += 1) {
-         uint32_t value = *(const uint32_t *)src;
-         uint32_t b;
-         uint32_t g;
-         uint32_t r;
-         uint32_t a;
-#ifdef PIPE_ARCH_BIG_ENDIAN
-         value = util_bswap32(value);
-#endif
-         b = (value) & 0xff;
-         g = (value >> 8) & 0xff;
-         r = (value >> 16) & 0xff;
-         a = value >> 24;
-         dst[0] = ubyte_to_float(r); /* r */
-         dst[1] = ubyte_to_float(g); /* g */
-         dst[2] = ubyte_to_float(b); /* b */
-         dst[3] = ubyte_to_float(a); /* a */
-         src += 4;
-         dst += 4;
-      }
-      src_row += src_stride;
-      dst_row += dst_stride/sizeof(*dst_row);
-   }
-}
-
-static INLINE void
-util_format_b8g8r8a8_unorm_pack_rgba_float(uint8_t *dst_row, unsigned dst_stride, const float *src_row, unsigned src_stride, unsigned width, unsigned height)
-{
-   unsigned x, y;
-   for(y = 0; y < height; y += 1) {
-      const float *src = src_row;
-      uint8_t *dst = dst_row;
-      for(x = 0; x < width; x += 1) {
-         uint32_t value = 0;
-         value |= (float_to_ubyte(src[2])) & 0xff;
-         value |= ((float_to_ubyte(src[1])) & 0xff) << 8;
-         value |= ((float_to_ubyte(src[0])) & 0xff) << 16;
-         value |= (float_to_ubyte(src[3])) << 24;
-#ifdef PIPE_ARCH_BIG_ENDIAN
-         value = util_bswap32(value);
-#endif
-         *(uint32_t *)dst = value;
-         src += 4;
-         dst += 4;
-      }
-      dst_row += dst_stride;
-      src_row += src_stride/sizeof(*src_row);
-   }
-}
-
-static INLINE void
-util_format_b8g8r8a8_unorm_fetch_rgba_float(float *dst, const uint8_t *src, unsigned i, unsigned j)
-{
-         uint32_t value = *(const uint32_t *)src;
-         uint32_t b;
-         uint32_t g;
-         uint32_t r;
-         uint32_t a;
-#ifdef PIPE_ARCH_BIG_ENDIAN
-         value = util_bswap32(value);
-#endif
-         b = (value) & 0xff;
-         g = (value >> 8) & 0xff;
-         r = (value >> 16) & 0xff;
-         a = value >> 24;
-         dst[0] = ubyte_to_float(r); /* r */
-         dst[1] = ubyte_to_float(g); /* g */
-         dst[2] = ubyte_to_float(b); /* b */
-         dst[3] = ubyte_to_float(a); /* a */
-}
-
-static INLINE void
-util_format_b8g8r8a8_unorm_unpack_rgba_8unorm(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height)
-{
-   unsigned x, y;
-   for(y = 0; y < height; y += 1) {
-      uint8_t *dst = dst_row;
-      const uint8_t *src = src_row;
-      for(x = 0; x < width; x += 1) {
-         uint32_t value = *(const uint32_t *)src;
-         uint32_t b;
-         uint32_t g;
-         uint32_t r;
-         uint32_t a;
-#ifdef PIPE_ARCH_BIG_ENDIAN
-         value = util_bswap32(value);
-#endif
-         b = (value) & 0xff;
-         g = (value >> 8) & 0xff;
-         r = (value >> 16) & 0xff;
-         a = value >> 24;
-         dst[0] = r; /* r */
-         dst[1] = g; /* g */
-         dst[2] = b; /* b */
-         dst[3] = a; /* a */
-         src += 4;
-         dst += 4;
-      }
-      src_row += src_stride;
-      dst_row += dst_stride/sizeof(*dst_row);
-   }
-}
-
-static INLINE void
-util_format_b8g8r8a8_unorm_pack_rgba_8unorm(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height)
-{
-   unsigned x, y;
-   for(y = 0; y < height; y += 1) {
-      const uint8_t *src = src_row;
-      uint8_t *dst = dst_row;
-      for(x = 0; x < width; x += 1) {
-         uint32_t value = 0;
-         value |= (src[2]) & 0xff;
-         value |= ((src[1]) & 0xff) << 8;
-         value |= ((src[0]) & 0xff) << 16;
-         value |= (src[3]) << 24;
-#ifdef PIPE_ARCH_BIG_ENDIAN
-         value = util_bswap32(value);
-#endif
-         *(uint32_t *)dst = value;
-         src += 4;
-         dst += 4;
-      }
-      dst_row += dst_stride;
-      src_row += src_stride/sizeof(*src_row);
-   }
-}
-
-union util_format_b8g8r8x8_unorm {
-   uint32_t value;
-   struct {
-      uint8_t b;
-      uint8_t g;
-      uint8_t r;
-      uint8_t x;
-   } chan;
-};
-
-static INLINE void
-util_format_b8g8r8x8_unorm_unpack_rgba_float(float *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height)
-{
-   unsigned x, y;
-   for(y = 0; y < height; y += 1) {
-      float *dst = dst_row;
-      const uint8_t *src = src_row;
-      for(x = 0; x < width; x += 1) {
-         uint32_t value = *(const uint32_t *)src;
-         uint32_t b;
-         uint32_t g;
-         uint32_t r;
-#ifdef PIPE_ARCH_BIG_ENDIAN
-         value = util_bswap32(value);
-#endif
-         b = (value) & 0xff;
-         g = (value >> 8) & 0xff;
-         r = (value >> 16) & 0xff;
-         dst[0] = ubyte_to_float(r); /* r */
-         dst[1] = ubyte_to_float(g); /* g */
-         dst[2] = ubyte_to_float(b); /* b */
-         dst[3] = 1; /* a */
-         src += 4;
-         dst += 4;
-      }
-      src_row += src_stride;
-      dst_row += dst_stride/sizeof(*dst_row);
-   }
-}
-
-static INLINE void
-util_format_b8g8r8x8_unorm_pack_rgba_float(uint8_t *dst_row, unsigned dst_stride, const float *src_row, unsigned src_stride, unsigned width, unsigned height)
-{
-   unsigned x, y;
-   for(y = 0; y < height; y += 1) {
-      const float *src = src_row;
-      uint8_t *dst = dst_row;
-      for(x = 0; x < width; x += 1) {
-         uint32_t value = 0;
-         value |= (float_to_ubyte(src[2])) & 0xff;
-         value |= ((float_to_ubyte(src[1])) & 0xff) << 8;
-         value |= ((float_to_ubyte(src[0])) & 0xff) << 16;
-#ifdef PIPE_ARCH_BIG_ENDIAN
-         value = util_bswap32(value);
-#endif
-         *(uint32_t *)dst = value;
-         src += 4;
-         dst += 4;
-      }
-      dst_row += dst_stride;
-      src_row += src_stride/sizeof(*src_row);
-   }
-}
-
-static INLINE void
-util_format_b8g8r8x8_unorm_fetch_rgba_float(float *dst, const uint8_t *src, unsigned i, unsigned j)
-{
-         uint32_t value = *(const uint32_t *)src;
-         uint32_t b;
-         uint32_t g;
-         uint32_t r;
-#ifdef PIPE_ARCH_BIG_ENDIAN
-         value = util_bswap32(value);
-#endif
-         b = (value) & 0xff;
-         g = (value >> 8) & 0xff;
-         r = (value >> 16) & 0xff;
-         dst[0] = ubyte_to_float(r); /* r */
-         dst[1] = ubyte_to_float(g); /* g */
-         dst[2] = ubyte_to_float(b); /* b */
-         dst[3] = 1; /* a */
-}
-
-static INLINE void
-util_format_b8g8r8x8_unorm_unpack_rgba_8unorm(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height)
-{
-   unsigned x, y;
-   for(y = 0; y < height; y += 1) {
-      uint8_t *dst = dst_row;
-      const uint8_t *src = src_row;
-      for(x = 0; x < width; x += 1) {
-         uint32_t value = *(const uint32_t *)src;
-         uint32_t b;
-         uint32_t g;
-         uint32_t r;
-#ifdef PIPE_ARCH_BIG_ENDIAN
-         value = util_bswap32(value);
-#endif
-         b = (value) & 0xff;
-         g = (value >> 8) & 0xff;
-         r = (value >> 16) & 0xff;
-         dst[0] = r; /* r */
-         dst[1] = g; /* g */
-         dst[2] = b; /* b */
-         dst[3] = 255; /* a */
-         src += 4;
-         dst += 4;
-      }
-      src_row += src_stride;
-      dst_row += dst_stride/sizeof(*dst_row);
-   }
-}
-
-static INLINE void
-util_format_b8g8r8x8_unorm_pack_rgba_8unorm(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height)
-{
-   unsigned x, y;
-   for(y = 0; y < height; y += 1) {
-      const uint8_t *src = src_row;
-      uint8_t *dst = dst_row;
-      for(x = 0; x < width; x += 1) {
-         uint32_t value = 0;
-         value |= (src[2]) & 0xff;
-         value |= ((src[1]) & 0xff) << 8;
-         value |= ((src[0]) & 0xff) << 16;
-#ifdef PIPE_ARCH_BIG_ENDIAN
-         value = util_bswap32(value);
-#endif
-         *(uint32_t *)dst = value;
-         src += 4;
-         dst += 4;
-      }
-      dst_row += dst_stride;
-      src_row += src_stride/sizeof(*src_row);
-   }
-}
-
-union util_format_a8r8g8b8_unorm {
-   uint32_t value;
-   struct {
-      uint8_t a;
-      uint8_t r;
-      uint8_t g;
-      uint8_t b;
-   } chan;
-};
-
-static INLINE void
-util_format_a8r8g8b8_unorm_unpack_rgba_float(float *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height)
-{
-   unsigned x, y;
-   for(y = 0; y < height; y += 1) {
-      float *dst = dst_row;
-      const uint8_t *src = src_row;
-      for(x = 0; x < width; x += 1) {
-         uint32_t value = *(const uint32_t *)src;
-         uint32_t a;
-         uint32_t r;
-         uint32_t g;
-         uint32_t b;
-#ifdef PIPE_ARCH_BIG_ENDIAN
-         value = util_bswap32(value);
-#endif
-         a = (value) & 0xff;
-         r = (value >> 8) & 0xff;
-         g = (value >> 16) & 0xff;
-         b = value >> 24;
-         dst[0] = ubyte_to_float(r); /* r */
-         dst[1] = ubyte_to_float(g); /* g */
-         dst[2] = ubyte_to_float(b); /* b */
-         dst[3] = ubyte_to_float(a); /* a */
-         src += 4;
-         dst += 4;
-      }
-      src_row += src_stride;
-      dst_row += dst_stride/sizeof(*dst_row);
-   }
-}
-
-static INLINE void
-util_format_a8r8g8b8_unorm_pack_rgba_float(uint8_t *dst_row, unsigned dst_stride, const float *src_row, unsigned src_stride, unsigned width, unsigned height)
-{
-   unsigned x, y;
-   for(y = 0; y < height; y += 1) {
-      const float *src = src_row;
-      uint8_t *dst = dst_row;
-      for(x = 0; x < width; x += 1) {
-         uint32_t value = 0;
-         value |= (float_to_ubyte(src[3])) & 0xff;
-         value |= ((float_to_ubyte(src[0])) & 0xff) << 8;
-         value |= ((float_to_ubyte(src[1])) & 0xff) << 16;
-         value |= (float_to_ubyte(src[2])) << 24;
-#ifdef PIPE_ARCH_BIG_ENDIAN
-         value = util_bswap32(value);
-#endif
-         *(uint32_t *)dst = value;
-         src += 4;
-         dst += 4;
-      }
-      dst_row += dst_stride;
-      src_row += src_stride/sizeof(*src_row);
-   }
-}
-
-static INLINE void
-util_format_a8r8g8b8_unorm_fetch_rgba_float(float *dst, const uint8_t *src, unsigned i, unsigned j)
-{
-         uint32_t value = *(const uint32_t *)src;
-         uint32_t a;
-         uint32_t r;
-         uint32_t g;
-         uint32_t b;
-#ifdef PIPE_ARCH_BIG_ENDIAN
-         value = util_bswap32(value);
-#endif
-         a = (value) & 0xff;
-         r = (value >> 8) & 0xff;
-         g = (value >> 16) & 0xff;
-         b = value >> 24;
-         dst[0] = ubyte_to_float(r); /* r */
-         dst[1] = ubyte_to_float(g); /* g */
-         dst[2] = ubyte_to_float(b); /* b */
-         dst[3] = ubyte_to_float(a); /* a */
-}
-
-static INLINE void
-util_format_a8r8g8b8_unorm_unpack_rgba_8unorm(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height)
-{
-   unsigned x, y;
-   for(y = 0; y < height; y += 1) {
-      uint8_t *dst = dst_row;
-      const uint8_t *src = src_row;
-      for(x = 0; x < width; x += 1) {
-         uint32_t value = *(const uint32_t *)src;
-         uint32_t a;
-         uint32_t r;
-         uint32_t g;
-         uint32_t b;
-#ifdef PIPE_ARCH_BIG_ENDIAN
-         value = util_bswap32(value);
-#endif
-         a = (value) & 0xff;
-         r = (value >> 8) & 0xff;
-         g = (value >> 16) & 0xff;
-         b = value >> 24;
-         dst[0] = r; /* r */
-         dst[1] = g; /* g */
-         dst[2] = b; /* b */
-         dst[3] = a; /* a */
-         src += 4;
-         dst += 4;
-      }
-      src_row += src_stride;
-      dst_row += dst_stride/sizeof(*dst_row);
-   }
-}
-
-static INLINE void
-util_format_a8r8g8b8_unorm_pack_rgba_8unorm(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height)
-{
-   unsigned x, y;
-   for(y = 0; y < height; y += 1) {
-      const uint8_t *src = src_row;
-      uint8_t *dst = dst_row;
-      for(x = 0; x < width; x += 1) {
-         uint32_t value = 0;
-         value |= (src[3]) & 0xff;
-         value |= ((src[0]) & 0xff) << 8;
-         value |= ((src[1]) & 0xff) << 16;
-         value |= (src[2]) << 24;
-#ifdef PIPE_ARCH_BIG_ENDIAN
-         value = util_bswap32(value);
-#endif
-         *(uint32_t *)dst = value;
-         src += 4;
-         dst += 4;
-      }
-      dst_row += dst_stride;
-      src_row += src_stride/sizeof(*src_row);
-   }
-}
-
-union util_format_x8r8g8b8_unorm {
-   uint32_t value;
-   struct {
-      uint8_t x;
-      uint8_t r;
-      uint8_t g;
-      uint8_t b;
-   } chan;
-};
-
-static INLINE void
-util_format_x8r8g8b8_unorm_unpack_rgba_float(float *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height)
-{
-   unsigned x, y;
-   for(y = 0; y < height; y += 1) {
-      float *dst = dst_row;
-      const uint8_t *src = src_row;
-      for(x = 0; x < width; x += 1) {
-         uint32_t value = *(const uint32_t *)src;
-         uint32_t r;
-         uint32_t g;
-         uint32_t b;
-#ifdef PIPE_ARCH_BIG_ENDIAN
-         value = util_bswap32(value);
-#endif
-         r = (value >> 8) & 0xff;
-         g = (value >> 16) & 0xff;
-         b = value >> 24;
-         dst[0] = ubyte_to_float(r); /* r */
-         dst[1] = ubyte_to_float(g); /* g */
-         dst[2] = ubyte_to_float(b); /* b */
-         dst[3] = 1; /* a */
-         src += 4;
-         dst += 4;
-      }
-      src_row += src_stride;
-      dst_row += dst_stride/sizeof(*dst_row);
-   }
-}
-
-static INLINE void
-util_format_x8r8g8b8_unorm_pack_rgba_float(uint8_t *dst_row, unsigned dst_stride, const float *src_row, unsigned src_stride, unsigned width, unsigned height)
-{
-   unsigned x, y;
-   for(y = 0; y < height; y += 1) {
-      const float *src = src_row;
-      uint8_t *dst = dst_row;
-      for(x = 0; x < width; x += 1) {
-         uint32_t value = 0;
-         value |= ((float_to_ubyte(src[0])) & 0xff) << 8;
-         value |= ((float_to_ubyte(src[1])) & 0xff) << 16;
-         value |= (float_to_ubyte(src[2])) << 24;
-#ifdef PIPE_ARCH_BIG_ENDIAN
-         value = util_bswap32(value);
-#endif
-         *(uint32_t *)dst = value;
-         src += 4;
-         dst += 4;
-      }
-      dst_row += dst_stride;
-      src_row += src_stride/sizeof(*src_row);
-   }
-}
-
-static INLINE void
-util_format_x8r8g8b8_unorm_fetch_rgba_float(float *dst, const uint8_t *src, unsigned i, unsigned j)
-{
-         uint32_t value = *(const uint32_t *)src;
-         uint32_t r;
-         uint32_t g;
-         uint32_t b;
-#ifdef PIPE_ARCH_BIG_ENDIAN
-         value = util_bswap32(value);
-#endif
-         r = (value >> 8) & 0xff;
-         g = (value >> 16) & 0xff;
-         b = value >> 24;
-         dst[0] = ubyte_to_float(r); /* r */
-         dst[1] = ubyte_to_float(g); /* g */
-         dst[2] = ubyte_to_float(b); /* b */
-         dst[3] = 1; /* a */
-}
-
-static INLINE void
-util_format_x8r8g8b8_unorm_unpack_rgba_8unorm(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height)
-{
-   unsigned x, y;
-   for(y = 0; y < height; y += 1) {
-      uint8_t *dst = dst_row;
-      const uint8_t *src = src_row;
-      for(x = 0; x < width; x += 1) {
-         uint32_t value = *(const uint32_t *)src;
-         uint32_t r;
-         uint32_t g;
-         uint32_t b;
-#ifdef PIPE_ARCH_BIG_ENDIAN
-         value = util_bswap32(value);
-#endif
-         r = (value >> 8) & 0xff;
-         g = (value >> 16) & 0xff;
-         b = value >> 24;
-         dst[0] = r; /* r */
-         dst[1] = g; /* g */
-         dst[2] = b; /* b */
-         dst[3] = 255; /* a */
-         src += 4;
-         dst += 4;
-      }
-      src_row += src_stride;
-      dst_row += dst_stride/sizeof(*dst_row);
-   }
-}
-
-static INLINE void
-util_format_x8r8g8b8_unorm_pack_rgba_8unorm(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height)
-{
-   unsigned x, y;
-   for(y = 0; y < height; y += 1) {
-      const uint8_t *src = src_row;
-      uint8_t *dst = dst_row;
-      for(x = 0; x < width; x += 1) {
-         uint32_t value = 0;
-         value |= ((src[0]) & 0xff) << 8;
-         value |= ((src[1]) & 0xff) << 16;
-         value |= (src[2]) << 24;
-#ifdef PIPE_ARCH_BIG_ENDIAN
-         value = util_bswap32(value);
-#endif
-         *(uint32_t *)dst = value;
-         src += 4;
-         dst += 4;
-      }
-      dst_row += dst_stride;
-      src_row += src_stride/sizeof(*src_row);
-   }
-}
-
-union util_format_a8b8g8r8_unorm {
-   uint32_t value;
-   struct {
-      uint8_t a;
-      uint8_t b;
-      uint8_t g;
-      uint8_t r;
-   } chan;
-};
-
-static INLINE void
-util_format_a8b8g8r8_unorm_unpack_rgba_float(float *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height)
-{
-   unsigned x, y;
-   for(y = 0; y < height; y += 1) {
-      float *dst = dst_row;
-      const uint8_t *src = src_row;
-      for(x = 0; x < width; x += 1) {
-         uint32_t value = *(const uint32_t *)src;
-         uint32_t a;
-         uint32_t b;
-         uint32_t g;
-         uint32_t r;
-#ifdef PIPE_ARCH_BIG_ENDIAN
-         value = util_bswap32(value);
-#endif
-         a = (value) & 0xff;
-         b = (value >> 8) & 0xff;
-         g = (value >> 16) & 0xff;
-         r = value >> 24;
-         dst[0] = ubyte_to_float(r); /* r */
-         dst[1] = ubyte_to_float(g); /* g */
-         dst[2] = ubyte_to_float(b); /* b */
-         dst[3] = ubyte_to_float(a); /* a */
-         src += 4;
-         dst += 4;
-      }
-      src_row += src_stride;
-      dst_row += dst_stride/sizeof(*dst_row);
-   }
-}
-
-static INLINE void
-util_format_a8b8g8r8_unorm_pack_rgba_float(uint8_t *dst_row, unsigned dst_stride, const float *src_row, unsigned src_stride, unsigned width, unsigned height)
-{
-   unsigned x, y;
-   for(y = 0; y < height; y += 1) {
-      const float *src = src_row;
-      uint8_t *dst = dst_row;
-      for(x = 0; x < width; x += 1) {
-         uint32_t value = 0;
-         value |= (float_to_ubyte(src[3])) & 0xff;
-         value |= ((float_to_ubyte(src[2])) & 0xff) << 8;
-         value |= ((float_to_ubyte(src[1])) & 0xff) << 16;
-         value |= (float_to_ubyte(src[0])) << 24;
-#ifdef PIPE_ARCH_BIG_ENDIAN
-         value = util_bswap32(value);
-#endif
-         *(uint32_t *)dst = value;
-         src += 4;
-         dst += 4;
-      }
-      dst_row += dst_stride;
-      src_row += src_stride/sizeof(*src_row);
-   }
-}
-
-static INLINE void
-util_format_a8b8g8r8_unorm_fetch_rgba_float(float *dst, const uint8_t *src, unsigned i, unsigned j)
-{
-         uint32_t value = *(const uint32_t *)src;
-         uint32_t a;
-         uint32_t b;
-         uint32_t g;
-         uint32_t r;
-#ifdef PIPE_ARCH_BIG_ENDIAN
-         value = util_bswap32(value);
-#endif
-         a = (value) & 0xff;
-         b = (value >> 8) & 0xff;
-         g = (value >> 16) & 0xff;
-         r = value >> 24;
-         dst[0] = ubyte_to_float(r); /* r */
-         dst[1] = ubyte_to_float(g); /* g */
-         dst[2] = ubyte_to_float(b); /* b */
-         dst[3] = ubyte_to_float(a); /* a */
-}
-
-static INLINE void
-util_format_a8b8g8r8_unorm_unpack_rgba_8unorm(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height)
-{
-   unsigned x, y;
-   for(y = 0; y < height; y += 1) {
-      uint8_t *dst = dst_row;
-      const uint8_t *src = src_row;
-      for(x = 0; x < width; x += 1) {
-         uint32_t value = *(const uint32_t *)src;
-         uint32_t a;
-         uint32_t b;
-         uint32_t g;
-         uint32_t r;
-#ifdef PIPE_ARCH_BIG_ENDIAN
-         value = util_bswap32(value);
-#endif
-         a = (value) & 0xff;
-         b = (value >> 8) & 0xff;
-         g = (value >> 16) & 0xff;
-         r = value >> 24;
-         dst[0] = r; /* r */
-         dst[1] = g; /* g */
-         dst[2] = b; /* b */
-         dst[3] = a; /* a */
-         src += 4;
-         dst += 4;
-      }
-      src_row += src_stride;
-      dst_row += dst_stride/sizeof(*dst_row);
-   }
-}
-
-static INLINE void
-util_format_a8b8g8r8_unorm_pack_rgba_8unorm(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height)
-{
-   unsigned x, y;
-   for(y = 0; y < height; y += 1) {
-      const uint8_t *src = src_row;
-      uint8_t *dst = dst_row;
-      for(x = 0; x < width; x += 1) {
-         uint32_t value = 0;
-         value |= (src[3]) & 0xff;
-         value |= ((src[2]) & 0xff) << 8;
-         value |= ((src[1]) & 0xff) << 16;
-         value |= (src[0]) << 24;
-#ifdef PIPE_ARCH_BIG_ENDIAN
-         value = util_bswap32(value);
-#endif
-         *(uint32_t *)dst = value;
-         src += 4;
-         dst += 4;
-      }
-      dst_row += dst_stride;
-      src_row += src_stride/sizeof(*src_row);
-   }
-}
-
-union util_format_x8b8g8r8_unorm {
-   uint32_t value;
-   struct {
-      uint8_t x;
-      uint8_t b;
-      uint8_t g;
-      uint8_t r;
-   } chan;
-};
-
-static INLINE void
-util_format_x8b8g8r8_unorm_unpack_rgba_float(float *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height)
-{
-   unsigned x, y;
-   for(y = 0; y < height; y += 1) {
-      float *dst = dst_row;
-      const uint8_t *src = src_row;
-      for(x = 0; x < width; x += 1) {
-         uint32_t value = *(const uint32_t *)src;
-         uint32_t b;
-         uint32_t g;
-         uint32_t r;
-#ifdef PIPE_ARCH_BIG_ENDIAN
-         value = util_bswap32(value);
-#endif
-         b = (value >> 8) & 0xff;
-         g = (value >> 16) & 0xff;
-         r = value >> 24;
-         dst[0] = ubyte_to_float(r); /* r */
-         dst[1] = ubyte_to_float(g); /* g */
-         dst[2] = ubyte_to_float(b); /* b */
-         dst[3] = 1; /* a */
-         src += 4;
-         dst += 4;
-      }
-      src_row += src_stride;
-      dst_row += dst_stride/sizeof(*dst_row);
-   }
-}
-
-static INLINE void
-util_format_x8b8g8r8_unorm_pack_rgba_float(uint8_t *dst_row, unsigned dst_stride, const float *src_row, unsigned src_stride, unsigned width, unsigned height)
-{
-   unsigned x, y;
-   for(y = 0; y < height; y += 1) {
-      const float *src = src_row;
-      uint8_t *dst = dst_row;
-      for(x = 0; x < width; x += 1) {
-         uint32_t value = 0;
-         value |= ((float_to_ubyte(src[2])) & 0xff) << 8;
-         value |= ((float_to_ubyte(src[1])) & 0xff) << 16;
-         value |= (float_to_ubyte(src[0])) << 24;
-#ifdef PIPE_ARCH_BIG_ENDIAN
-         value = util_bswap32(value);
-#endif
-         *(uint32_t *)dst = value;
-         src += 4;
-         dst += 4;
-      }
-      dst_row += dst_stride;
-      src_row += src_stride/sizeof(*src_row);
-   }
-}
-
-static INLINE void
-util_format_x8b8g8r8_unorm_fetch_rgba_float(float *dst, const uint8_t *src, unsigned i, unsigned j)
-{
-         uint32_t value = *(const uint32_t *)src;
-         uint32_t b;
-         uint32_t g;
-         uint32_t r;
-#ifdef PIPE_ARCH_BIG_ENDIAN
-         value = util_bswap32(value);
-#endif
-         b = (value >> 8) & 0xff;
-         g = (value >> 16) & 0xff;
-         r = value >> 24;
-         dst[0] = ubyte_to_float(r); /* r */
-         dst[1] = ubyte_to_float(g); /* g */
-         dst[2] = ubyte_to_float(b); /* b */
-         dst[3] = 1; /* a */
-}
-
-static INLINE void
-util_format_x8b8g8r8_unorm_unpack_rgba_8unorm(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height)
-{
-   unsigned x, y;
-   for(y = 0; y < height; y += 1) {
-      uint8_t *dst = dst_row;
-      const uint8_t *src = src_row;
-      for(x = 0; x < width; x += 1) {
-         uint32_t value = *(const uint32_t *)src;
-         uint32_t b;
-         uint32_t g;
-         uint32_t r;
-#ifdef PIPE_ARCH_BIG_ENDIAN
-         value = util_bswap32(value);
-#endif
-         b = (value >> 8) & 0xff;
-         g = (value >> 16) & 0xff;
-         r = value >> 24;
-         dst[0] = r; /* r */
-         dst[1] = g; /* g */
-         dst[2] = b; /* b */
-         dst[3] = 255; /* a */
-         src += 4;
-         dst += 4;
-      }
-      src_row += src_stride;
-      dst_row += dst_stride/sizeof(*dst_row);
-   }
-}
-
-static INLINE void
-util_format_x8b8g8r8_unorm_pack_rgba_8unorm(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height)
-{
-   unsigned x, y;
-   for(y = 0; y < height; y += 1) {
-      const uint8_t *src = src_row;
-      uint8_t *dst = dst_row;
-      for(x = 0; x < width; x += 1) {
-         uint32_t value = 0;
-         value |= ((src[2]) & 0xff) << 8;
-         value |= ((src[1]) & 0xff) << 16;
-         value |= (src[0]) << 24;
-#ifdef PIPE_ARCH_BIG_ENDIAN
-         value = util_bswap32(value);
-#endif
-         *(uint32_t *)dst = value;
-         src += 4;
-         dst += 4;
-      }
-      dst_row += dst_stride;
-      src_row += src_stride/sizeof(*src_row);
-   }
-}
-
-union util_format_r8g8b8x8_unorm {
-   uint32_t value;
-   struct {
-      uint8_t r;
-      uint8_t g;
-      uint8_t b;
-      uint8_t x;
-   } chan;
-};
-
-static INLINE void
-util_format_r8g8b8x8_unorm_unpack_rgba_float(float *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height)
-{
-   unsigned x, y;
-   for(y = 0; y < height; y += 1) {
-      float *dst = dst_row;
-      const uint8_t *src = src_row;
-      for(x = 0; x < width; x += 1) {
-         uint32_t value = *(const uint32_t *)src;
-         uint32_t r;
-         uint32_t g;
-         uint32_t b;
-#ifdef PIPE_ARCH_BIG_ENDIAN
-         value = util_bswap32(value);
-#endif
-         r = (value) & 0xff;
-         g = (value >> 8) & 0xff;
-         b = (value >> 16) & 0xff;
-         dst[0] = ubyte_to_float(r); /* r */
-         dst[1] = ubyte_to_float(g); /* g */
-         dst[2] = ubyte_to_float(b); /* b */
-         dst[3] = 1; /* a */
-         src += 4;
-         dst += 4;
-      }
-      src_row += src_stride;
-      dst_row += dst_stride/sizeof(*dst_row);
-   }
-}
-
-static INLINE void
-util_format_r8g8b8x8_unorm_pack_rgba_float(uint8_t *dst_row, unsigned dst_stride, const float *src_row, unsigned src_stride, unsigned width, unsigned height)
-{
-   unsigned x, y;
-   for(y = 0; y < height; y += 1) {
-      const float *src = src_row;
-      uint8_t *dst = dst_row;
-      for(x = 0; x < width; x += 1) {
-         uint32_t value = 0;
-         value |= (float_to_ubyte(src[0])) & 0xff;
-         value |= ((float_to_ubyte(src[1])) & 0xff) << 8;
-         value |= ((float_to_ubyte(src[2])) & 0xff) << 16;
-#ifdef PIPE_ARCH_BIG_ENDIAN
-         value = util_bswap32(value);
-#endif
-         *(uint32_t *)dst = value;
-         src += 4;
-         dst += 4;
-      }
-      dst_row += dst_stride;
-      src_row += src_stride/sizeof(*src_row);
-   }
-}
-
-static INLINE void
-util_format_r8g8b8x8_unorm_fetch_rgba_float(float *dst, const uint8_t *src, unsigned i, unsigned j)
-{
-         uint32_t value = *(const uint32_t *)src;
-         uint32_t r;
-         uint32_t g;
-         uint32_t b;
-#ifdef PIPE_ARCH_BIG_ENDIAN
-         value = util_bswap32(value);
-#endif
-         r = (value) & 0xff;
-         g = (value >> 8) & 0xff;
-         b = (value >> 16) & 0xff;
-         dst[0] = ubyte_to_float(r); /* r */
-         dst[1] = ubyte_to_float(g); /* g */
-         dst[2] = ubyte_to_float(b); /* b */
-         dst[3] = 1; /* a */
-}
-
-static INLINE void
-util_format_r8g8b8x8_unorm_unpack_rgba_8unorm(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height)
-{
-   unsigned x, y;
-   for(y = 0; y < height; y += 1) {
-      uint8_t *dst = dst_row;
-      const uint8_t *src = src_row;
-      for(x = 0; x < width; x += 1) {
-         uint32_t value = *(const uint32_t *)src;
-         uint32_t r;
-         uint32_t g;
-         uint32_t b;
-#ifdef PIPE_ARCH_BIG_ENDIAN
-         value = util_bswap32(value);
-#endif
-         r = (value) & 0xff;
-         g = (value >> 8) & 0xff;
-         b = (value >> 16) & 0xff;
-         dst[0] = r; /* r */
-         dst[1] = g; /* g */
-         dst[2] = b; /* b */
-         dst[3] = 255; /* a */
-         src += 4;
-         dst += 4;
-      }
-      src_row += src_stride;
-      dst_row += dst_stride/sizeof(*dst_row);
-   }
-}
-
-static INLINE void
-util_format_r8g8b8x8_unorm_pack_rgba_8unorm(uint8_t *dst_row, unsigned dst_stride, const uint8_t *src_row, unsigned src_stride, unsigned width, unsigned height)
-{
-   unsigned x, y;
-   for(y = 0; y < height; y += 1) {
-      const uint8_t *src = src_row;
-      uint8_t *dst = dst_row;
-      for(x = 0; x < width; x += 1) {
-         uint32_t value = 0;
-         value |= (src[0]) & 0xff;
-         value |= ((src[1]) & 0xff) << 8;
-         value |= ((src[2]) & 0xff) << 16;
-#ifdef PIPE_ARCH_BIG_ENDIAN
-         value = util_bswap32(value);
-#endif
-         *(uint32_t *)dst = value;
-         src += 4;
-         dst +=&n