m_translate.c revision 7b9fe820a3fba3849864682fbb1cb512362934ab
17b9fe820a3fba3849864682fbb1cb512362934abKarl Schultz/* $Id: m_translate.c,v 1.9 2001/09/18 23:06:14 kschultz Exp $ */
223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell/*
423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell * Mesa 3-D graphics library
574b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul * Version:  3.5
622144ab7552f0799bcfca506bf4ffa7f70a06649Gareth Hughes *
774b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul * Copyright (C) 1999-2001  Brian Paul   All Rights Reserved.
822144ab7552f0799bcfca506bf4ffa7f70a06649Gareth Hughes *
923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell * Permission is hereby granted, free of charge, to any person obtaining a
1023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell * copy of this software and associated documentation files (the "Software"),
1123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell * to deal in the Software without restriction, including without limitation
1223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell * the rights to use, copy, modify, merge, publish, distribute, sublicense,
1323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell * and/or sell copies of the Software, and to permit persons to whom the
1423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell * Software is furnished to do so, subject to the following conditions:
1522144ab7552f0799bcfca506bf4ffa7f70a06649Gareth Hughes *
1623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell * The above copyright notice and this permission notice shall be included
1723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell * in all copies or substantial portions of the Software.
1822144ab7552f0799bcfca506bf4ffa7f70a06649Gareth Hughes *
1923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
2023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
2123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
2223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
2323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
2423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
2523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell */
2623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
2723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell/*
2823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell * New (3.1) transformation code written by Keith Whitwell.
2923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell */
3023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
3123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
3223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "glheader.h"
334eebc90a174722422daea6352d4e980bc81b4bb2Keith Whitwell#include "mtypes.h"		/* GLchan hack */
3423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "colormac.h"
3523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "mem.h"
3623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "mmath.h"
3723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
3823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_translate.h"
3923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
40cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell
41cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell
42cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwelltypedef void (*trans_1f_func)(GLfloat *to,
43cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell			      CONST void *ptr,
44cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell			      GLuint stride,
4522144ab7552f0799bcfca506bf4ffa7f70a06649Gareth Hughes			      GLuint start,
46cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell			      GLuint n );
47cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell
48cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwelltypedef void (*trans_1ui_func)(GLuint *to,
49cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell			       CONST void *ptr,
50cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell			       GLuint stride,
5122144ab7552f0799bcfca506bf4ffa7f70a06649Gareth Hughes			       GLuint start,
52cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell			       GLuint n );
53cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell
54cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwelltypedef void (*trans_1ub_func)(GLubyte *to,
55cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell			       CONST void *ptr,
56cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell			       GLuint stride,
57cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell			       GLuint start,
58cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell			       GLuint n );
59cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell
60cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwelltypedef void (*trans_4ub_func)(GLubyte (*to)[4],
6174b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul                               CONST void *ptr,
6274b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul                               GLuint stride,
6374b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul                               GLuint start,
6474b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul                               GLuint n );
6574b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul
6674b493a5e61237de081a438e774e5d8139d4c6b7Brian Paultypedef void (*trans_4us_func)(GLushort (*to)[4],
6774b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul                               CONST void *ptr,
6874b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul                               GLuint stride,
6974b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul                               GLuint start,
7074b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul                               GLuint n );
71cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell
72cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwelltypedef void (*trans_4f_func)(GLfloat (*to)[4],
73cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell			      CONST void *ptr,
74cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell			      GLuint stride,
7522144ab7552f0799bcfca506bf4ffa7f70a06649Gareth Hughes			      GLuint start,
76cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell			      GLuint n );
77cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell
78cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwelltypedef void (*trans_3f_func)(GLfloat (*to)[3],
79cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell			      CONST void *ptr,
80cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell			      GLuint stride,
8122144ab7552f0799bcfca506bf4ffa7f70a06649Gareth Hughes			      GLuint start,
82cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell			      GLuint n );
83cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell
84cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell
85cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell
86cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell
87cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell#define TYPE_IDX(t) ((t) & 0xf)
88cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell#define MAX_TYPES TYPE_IDX(GL_DOUBLE)+1      /* 0xa + 1 */
89cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell
90cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell
9123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell/* This macro is used on other systems, so undefine it for this module */
9223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
9323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef	CHECK
9423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
95cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwellstatic trans_1f_func  _math_trans_1f_tab[MAX_TYPES];
96cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwellstatic trans_1ui_func _math_trans_1ui_tab[MAX_TYPES];
97cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwellstatic trans_1ub_func _math_trans_1ub_tab[MAX_TYPES];
98cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwellstatic trans_3f_func  _math_trans_3f_tab[MAX_TYPES];
99cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwellstatic trans_4ub_func _math_trans_4ub_tab[5][MAX_TYPES];
10074b493a5e61237de081a438e774e5d8139d4c6b7Brian Paulstatic trans_4us_func _math_trans_4us_tab[5][MAX_TYPES];
101cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwellstatic trans_4f_func  _math_trans_4f_tab[5][MAX_TYPES];
10223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
10323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
10423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define PTR_ELT(ptr, elt) (((SRC *)ptr)[elt])
10523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
10623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
107cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell#define TAB(x) _math_trans##x##_tab
10823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define ARGS   GLuint start, GLuint n
10923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SRC_START  start
11023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DST_START  0
11123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define STRIDE stride
11223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define NEXT_F f += stride
11323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define NEXT_F2
11423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define CHECK
11523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
11623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
11723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
11823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
11923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell/* GL_BYTE
12023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell */
12123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SRC GLbyte
12223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SRC_IDX TYPE_IDX(GL_BYTE)
12323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define TRX_3F(f,n)   BYTE_TO_FLOAT( PTR_ELT(f,n) )
1245f2230c7bf9432187103ab6c890c0d560c203d5cKeith Whitwell#define TRX_4F(f,n)   BYTE_TO_FLOAT( PTR_ELT(f,n) )
12523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define TRX_UB(ub, f,n)  ub = BYTE_TO_UBYTE( PTR_ELT(f,n) )
12674b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#define TRX_US(ch, f,n)  ch = BYTE_TO_USHORT( PTR_ELT(f,n) )
12723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define TRX_UI(f,n)  (PTR_ELT(f,n) < 0 ? 0 : (GLuint)  PTR_ELT(f,n))
12823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
12923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
13023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ 4
13123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define INIT init_trans_4_GLbyte_raw
13223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4F trans_4_GLbyte_4f_raw
13323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4UB trans_4_GLbyte_4ub_raw
13474b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#define DEST_4US trans_4_GLbyte_4us_raw
13523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h"
13623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
13723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ 3
13823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define INIT init_trans_3_GLbyte_raw
13923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4F trans_3_GLbyte_4f_raw
14023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4UB trans_3_GLbyte_4ub_raw
14174b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#define DEST_4US trans_3_GLbyte_4us_raw
14223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_3F trans_3_GLbyte_3f_raw
14323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h"
14423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
14523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ 2
14623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define INIT init_trans_2_GLbyte_raw
14723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4F trans_2_GLbyte_4f_raw
14823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h"
14923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
15023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ 1
15123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define INIT init_trans_1_GLbyte_raw
15223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4F trans_1_GLbyte_4f_raw
15323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_1UB trans_1_GLbyte_1ub_raw
15423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_1UI trans_1_GLbyte_1ui_raw
15523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h"
15623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
15723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef SRC
15823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef TRX_3F
15923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef TRX_4F
16023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef TRX_UB
16174b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#undef TRX_US
16223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef TRX_UI
16323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef SRC_IDX
16423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
16574b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul
16623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell/* GL_UNSIGNED_BYTE
16723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell */
16823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SRC GLubyte
16923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SRC_IDX TYPE_IDX(GL_UNSIGNED_BYTE)
17051c0c71811508b6658e0d5dcff8426b618322a73Keith Whitwell#define TRX_3F(f,n)	     UBYTE_TO_FLOAT(PTR_ELT(f,n))
17151c0c71811508b6658e0d5dcff8426b618322a73Keith Whitwell#define TRX_4F(f,n)	     UBYTE_TO_FLOAT(PTR_ELT(f,n))
17223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define TRX_UB(ub, f,n)	     ub = PTR_ELT(f,n)
17374b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#define TRX_US(us, f,n)      us = UBYTE_TO_USHORT(PTR_ELT(f,n))
17423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define TRX_UI(f,n)          (GLuint)PTR_ELT(f,n)
17523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
17623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell/* 4ub->4ub handled in special case below.
17723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell */
17851c0c71811508b6658e0d5dcff8426b618322a73Keith Whitwell#define SZ 4
17951c0c71811508b6658e0d5dcff8426b618322a73Keith Whitwell#define INIT init_trans_4_GLubyte_raw
18051c0c71811508b6658e0d5dcff8426b618322a73Keith Whitwell#define DEST_4F trans_4_GLubyte_4f_raw
18151c0c71811508b6658e0d5dcff8426b618322a73Keith Whitwell#define DEST_4US trans_4_GLubyte_4us_raw
18251c0c71811508b6658e0d5dcff8426b618322a73Keith Whitwell#include "m_trans_tmp.h"
18351c0c71811508b6658e0d5dcff8426b618322a73Keith Whitwell
18423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
18523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ 3
18623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define INIT init_trans_3_GLubyte_raw
18723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4UB trans_3_GLubyte_4ub_raw
18874b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#define DEST_4US trans_3_GLubyte_4us_raw
18951c0c71811508b6658e0d5dcff8426b618322a73Keith Whitwell#define DEST_3F trans_3_GLubyte_3f_raw
19051c0c71811508b6658e0d5dcff8426b618322a73Keith Whitwell#define DEST_4F trans_3_GLubyte_4f_raw
19123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h"
19223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
19323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
19423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ 1
19523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define INIT init_trans_1_GLubyte_raw
19623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_1UI trans_1_GLubyte_1ui_raw
19723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_1UB trans_1_GLubyte_1ub_raw
19823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h"
19923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
20023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef SRC
20123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef SRC_IDX
20223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef TRX_3F
20323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef TRX_4F
20423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef TRX_UB
20574b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#undef TRX_US
20623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef TRX_UI
20723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
20823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
20923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell/* GL_SHORT
21023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell */
21123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SRC GLshort
21223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SRC_IDX TYPE_IDX(GL_SHORT)
21323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define TRX_3F(f,n)   SHORT_TO_FLOAT( PTR_ELT(f,n) )
21423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define TRX_4F(f,n)   (GLfloat)( PTR_ELT(f,n) )
21523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define TRX_UB(ub, f,n)  ub = SHORT_TO_UBYTE(PTR_ELT(f,n))
21674b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#define TRX_US(us, f,n)  us = SHORT_TO_USHORT(PTR_ELT(f,n))
21723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define TRX_UI(f,n)  (PTR_ELT(f,n) < 0 ? 0 : (GLuint)  PTR_ELT(f,n))
21823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
21923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
22023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ  4
22123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define INIT init_trans_4_GLshort_raw
22223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4F trans_4_GLshort_4f_raw
22323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4UB trans_4_GLshort_4ub_raw
22474b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#define DEST_4US trans_4_GLshort_4us_raw
22523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h"
22623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
22723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ 3
22823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define INIT init_trans_3_GLshort_raw
22923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4F trans_3_GLshort_4f_raw
23023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4UB trans_3_GLshort_4ub_raw
23174b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#define DEST_4US trans_3_GLshort_4us_raw
23223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_3F trans_3_GLshort_3f_raw
23323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h"
23423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
23523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ 2
23623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define INIT init_trans_2_GLshort_raw
23723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4F trans_2_GLshort_4f_raw
23823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h"
23923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
24023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ 1
24123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define INIT init_trans_1_GLshort_raw
24223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4F trans_1_GLshort_4f_raw
24323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_1UB trans_1_GLshort_1ub_raw
24423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_1UI trans_1_GLshort_1ui_raw
24523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h"
24623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
24723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
24823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef SRC
24923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef SRC_IDX
25023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef TRX_3F
25123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef TRX_4F
25223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef TRX_UB
25374b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#undef TRX_US
25423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef TRX_UI
25523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
25623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
25723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell/* GL_UNSIGNED_SHORT
25823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell */
25923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SRC GLushort
26023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SRC_IDX TYPE_IDX(GL_UNSIGNED_SHORT)
26123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define TRX_3F(f,n)   USHORT_TO_FLOAT( PTR_ELT(f,n) )
26223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define TRX_4F(f,n)   (GLfloat)( PTR_ELT(f,n) )
26323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define TRX_UB(ub,f,n)  ub = (GLubyte) (PTR_ELT(f,n) >> 8)
26474b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#define TRX_US(us,f,n)  us = (GLushort) (PTR_ELT(f,n) >> 8)
26523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define TRX_UI(f,n)  (GLuint)   PTR_ELT(f,n)
26623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
26723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
26823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ 4
26923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define INIT init_trans_4_GLushort_raw
27023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4F trans_4_GLushort_4f_raw
27123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4UB trans_4_GLushort_4ub_raw
27274b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#define DEST_4US trans_4_GLushort_4us_raw
27323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h"
27423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
27523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ 3
27623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define INIT init_trans_3_GLushort_raw
27723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4F trans_3_GLushort_4f_raw
27823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4UB trans_3_GLushort_4ub_raw
27974b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#define DEST_4US trans_3_GLushort_4us_raw
28023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_3F trans_3_GLushort_3f_raw
28123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h"
28223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
28323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ 2
28423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define INIT init_trans_2_GLushort_raw
28523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4F trans_2_GLushort_4f_raw
28623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h"
28723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
28823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ 1
28923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define INIT init_trans_1_GLushort_raw
29023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4F trans_1_GLushort_4f_raw
29123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_1UB trans_1_GLushort_1ub_raw
29223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_1UI trans_1_GLushort_1ui_raw
29323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h"
29423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
29523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef SRC
29623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef SRC_IDX
29723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef TRX_3F
29823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef TRX_4F
29923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef TRX_UB
30074b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#undef TRX_US
30123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef TRX_UI
30223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
30323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
30423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell/* GL_INT
30523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell */
30623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SRC GLint
30723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SRC_IDX TYPE_IDX(GL_INT)
30823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define TRX_3F(f,n)   INT_TO_FLOAT( PTR_ELT(f,n) )
30923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define TRX_4F(f,n)   (GLfloat)( PTR_ELT(f,n) )
31023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define TRX_UB(ub, f,n)  ub = INT_TO_UBYTE(PTR_ELT(f,n))
31174b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#define TRX_US(us, f,n)  us = INT_TO_USHORT(PTR_ELT(f,n))
31223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define TRX_UI(f,n)  (PTR_ELT(f,n) < 0 ? 0 : (GLuint)  PTR_ELT(f,n))
31323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
31423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
31523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ 4
31623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define INIT init_trans_4_GLint_raw
31723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4F trans_4_GLint_4f_raw
31823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4UB trans_4_GLint_4ub_raw
31974b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#define DEST_4US trans_4_GLint_4us_raw
32023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h"
32123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
32223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ 3
32323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define INIT init_trans_3_GLint_raw
32423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4F trans_3_GLint_4f_raw
32523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4UB trans_3_GLint_4ub_raw
32674b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#define DEST_4US trans_3_GLint_4us_raw
32723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_3F trans_3_GLint_3f_raw
32823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h"
32923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
33023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ 2
33123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define INIT init_trans_2_GLint_raw
33223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4F trans_2_GLint_4f_raw
33323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h"
33423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
33523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ 1
33623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define INIT init_trans_1_GLint_raw
33723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4F trans_1_GLint_4f_raw
33823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_1UB trans_1_GLint_1ub_raw
33923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_1UI trans_1_GLint_1ui_raw
34023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h"
34123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
34223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
34323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef SRC
34423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef SRC_IDX
34523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef TRX_3F
34623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef TRX_4F
34723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef TRX_UB
34874b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#undef TRX_US
34923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef TRX_UI
35023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
35123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
35223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell/* GL_UNSIGNED_INT
35323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell */
35423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SRC GLuint
35523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SRC_IDX TYPE_IDX(GL_UNSIGNED_INT)
35623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define TRX_3F(f,n)   INT_TO_FLOAT( PTR_ELT(f,n) )
35723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define TRX_4F(f,n)   (GLfloat)( PTR_ELT(f,n) )
35823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define TRX_UB(ub, f,n)  ub = (GLubyte) (PTR_ELT(f,n) >> 24)
35974b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#define TRX_US(us, f,n)  us = (GLshort) (PTR_ELT(f,n) >> 16)
36023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define TRX_UI(f,n)		PTR_ELT(f,n)
36123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
36223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
36323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ 4
36423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define INIT init_trans_4_GLuint_raw
36523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4F trans_4_GLuint_4f_raw
36623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4UB trans_4_GLuint_4ub_raw
36774b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#define DEST_4US trans_4_GLuint_4us_raw
36823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h"
36923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
37023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ 3
37123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define INIT init_trans_3_GLuint_raw
37223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4F trans_3_GLuint_4f_raw
37323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4UB trans_3_GLuint_4ub_raw
37474b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#define DEST_4US trans_3_GLuint_4us_raw
37523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_3F trans_3_GLuint_3f_raw
37623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h"
37723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
37823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ 2
37923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define INIT init_trans_2_GLuint_raw
38023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4F trans_2_GLuint_4f_raw
38123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h"
38223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
38323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ 1
38423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define INIT init_trans_1_GLuint_raw
38523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4F trans_1_GLuint_4f_raw
38623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_1UB trans_1_GLuint_1ub_raw
38723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_1UI trans_1_GLuint_1ui_raw
38823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h"
38923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
39023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef SRC
39123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef SRC_IDX
39223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef TRX_3F
39323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef TRX_4F
39423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef TRX_UB
39574b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#undef TRX_US
39623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef TRX_UI
39723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
39823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
39923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell/* GL_DOUBLE
40023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell */
40123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SRC GLdouble
40223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SRC_IDX TYPE_IDX(GL_DOUBLE)
4037b9fe820a3fba3849864682fbb1cb512362934abKarl Schultz#define TRX_3F(f,n)   (GLfloat) PTR_ELT(f,n)
4047b9fe820a3fba3849864682fbb1cb512362934abKarl Schultz#define TRX_4F(f,n)   (GLfloat) PTR_ELT(f,n)
40574b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#define TRX_UB(ub,f,n) UNCLAMPED_FLOAT_TO_UBYTE(ub, PTR_ELT(f,n))
40674b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#define TRX_US(us,f,n) UNCLAMPED_FLOAT_TO_USHORT(us, PTR_ELT(f,n))
40723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define TRX_UI(f,n)  (GLuint) (GLint) PTR_ELT(f,n)
4087b9fe820a3fba3849864682fbb1cb512362934abKarl Schultz#define TRX_1F(f,n)   (GLfloat) PTR_ELT(f,n)
40923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
41023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
41123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ 4
41223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define INIT init_trans_4_GLdouble_raw
41323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4F trans_4_GLdouble_4f_raw
41423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4UB trans_4_GLdouble_4ub_raw
41574b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#define DEST_4US trans_4_GLdouble_4us_raw
41623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h"
41723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
41823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ 3
41923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define INIT init_trans_3_GLdouble_raw
42023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4F trans_3_GLdouble_4f_raw
42123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4UB trans_3_GLdouble_4ub_raw
42274b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#define DEST_4US trans_3_GLdouble_4us_raw
42323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_3F trans_3_GLdouble_3f_raw
42423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h"
42523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
42623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ 2
42723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define INIT init_trans_2_GLdouble_raw
42823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4F trans_2_GLdouble_4f_raw
42923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h"
43023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
43123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ 1
43223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define INIT init_trans_1_GLdouble_raw
43323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4F trans_1_GLdouble_4f_raw
43423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_1UB trans_1_GLdouble_1ub_raw
43523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_1UI trans_1_GLdouble_1ui_raw
43623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_1F trans_1_GLdouble_1f_raw
43723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h"
43823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
43923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef SRC
44023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef SRC_IDX
44123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
44223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell/* GL_FLOAT
44323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell */
44423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SRC GLfloat
44523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SRC_IDX TYPE_IDX(GL_FLOAT)
44623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ 4
44722144ab7552f0799bcfca506bf4ffa7f70a06649Gareth Hughes#define INIT init_trans_4_GLfloat_raw
44822144ab7552f0799bcfca506bf4ffa7f70a06649Gareth Hughes#define DEST_4UB trans_4_GLfloat_4ub_raw
44922144ab7552f0799bcfca506bf4ffa7f70a06649Gareth Hughes#define DEST_4US trans_4_GLfloat_4us_raw
45023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4F  trans_4_GLfloat_4f_raw
45123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h"
45223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
45323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ 3
45423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define INIT init_trans_3_GLfloat_raw
45523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4F  trans_3_GLfloat_4f_raw
45623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4UB trans_3_GLfloat_4ub_raw
45774b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#define DEST_4US trans_3_GLfloat_4us_raw
45823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_3F trans_3_GLfloat_3f_raw
45923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h"
46023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
46123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ 2
46223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define INIT init_trans_2_GLfloat_raw
46323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4F trans_2_GLfloat_4f_raw
46423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h"
46523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
46623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ 1
46723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define INIT init_trans_1_GLfloat_raw
46823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4F  trans_1_GLfloat_4f_raw
46923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_1UB trans_1_GLfloat_1ub_raw
47023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_1UI trans_1_GLfloat_1ui_raw
47123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_1F trans_1_GLfloat_1f_raw
47223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
47323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h"
47423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
47523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef SRC
47623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef SRC_IDX
47723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef TRX_3F
47823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef TRX_4F
47923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef TRX_UB
48074b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#undef TRX_US
48123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef TRX_UI
48223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
48323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
48474b493a5e61237de081a438e774e5d8139d4c6b7Brian Paulstatic void trans_4_GLubyte_4ub_raw(GLubyte (*t)[4],
48574b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul				    CONST void *Ptr,
48674b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul				    GLuint stride,
48774b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul				    ARGS )
48823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell{
48923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   const GLubyte *f = (GLubyte *) Ptr + SRC_START * stride;
49023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   GLuint i;
49123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
49222144ab7552f0799bcfca506bf4ffa7f70a06649Gareth Hughes   if (((((long) f | (long) stride)) & 3L) == 0L) {
49323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell      /* Aligned.
49423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell       */
49523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell      for (i = DST_START ; i < n ; i++, f += stride) {
49623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell	 COPY_4UBV( t[i], f );
49723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell      }
49823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   } else {
49923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell      for (i = DST_START ; i < n ; i++, f += stride) {
50023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell	 t[i][0] = f[0];
50123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell	 t[i][1] = f[1];
50223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell	 t[i][2] = f[2];
50323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell	 t[i][3] = f[3];
50423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell      }
50523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   }
50623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell}
50723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
50823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
50923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwellstatic void init_translate_raw(void)
51023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell{
51123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   MEMSET( TAB(_1ui), 0, sizeof(TAB(_1ui)) );
51223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   MEMSET( TAB(_1ub), 0, sizeof(TAB(_1ub)) );
51323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   MEMSET( TAB(_3f),  0, sizeof(TAB(_3f)) );
51423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   MEMSET( TAB(_4ub), 0, sizeof(TAB(_4ub)) );
51574b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul   MEMSET( TAB(_4us), 0, sizeof(TAB(_4us)) );
51623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   MEMSET( TAB(_4f),  0, sizeof(TAB(_4f)) );
51723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
51823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   init_trans_4_GLbyte_raw();
51923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   init_trans_3_GLbyte_raw();
52023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   init_trans_2_GLbyte_raw();
52123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   init_trans_1_GLbyte_raw();
52223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   init_trans_1_GLubyte_raw();
52323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   init_trans_3_GLubyte_raw();
52451c0c71811508b6658e0d5dcff8426b618322a73Keith Whitwell   init_trans_4_GLubyte_raw();
52523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   init_trans_4_GLshort_raw();
52623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   init_trans_3_GLshort_raw();
52723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   init_trans_2_GLshort_raw();
52823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   init_trans_1_GLshort_raw();
52923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   init_trans_4_GLushort_raw();
53023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   init_trans_3_GLushort_raw();
53123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   init_trans_2_GLushort_raw();
53223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   init_trans_1_GLushort_raw();
53323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   init_trans_4_GLint_raw();
53423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   init_trans_3_GLint_raw();
53523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   init_trans_2_GLint_raw();
53623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   init_trans_1_GLint_raw();
53723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   init_trans_4_GLuint_raw();
53823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   init_trans_3_GLuint_raw();
53923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   init_trans_2_GLuint_raw();
54023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   init_trans_1_GLuint_raw();
54123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   init_trans_4_GLdouble_raw();
54223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   init_trans_3_GLdouble_raw();
54323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   init_trans_2_GLdouble_raw();
54423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   init_trans_1_GLdouble_raw();
54523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   init_trans_4_GLfloat_raw();
54623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   init_trans_3_GLfloat_raw();
54723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   init_trans_2_GLfloat_raw();
54823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   init_trans_1_GLfloat_raw();
54951c0c71811508b6658e0d5dcff8426b618322a73Keith Whitwell
55051c0c71811508b6658e0d5dcff8426b618322a73Keith Whitwell   TAB(_4ub)[4][TYPE_IDX(GL_UNSIGNED_BYTE)] = trans_4_GLubyte_4ub_raw;
55123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell}
55223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
55323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
55423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef TAB
55523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef CLASS
55623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef ARGS
55723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef CHECK
55823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef SRC_START
55923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef DST_START
56023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef NEXT_F
56123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef NEXT_F2
56223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
56323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
56423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
56523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
56623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
567cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwellvoid _math_init_translate( void )
56823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell{
56923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   init_translate_raw();
57023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell}
571cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell
572cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell
573cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell
574cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwellvoid _math_trans_1f(GLfloat *to,
575cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell		    CONST void *ptr,
576cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell		    GLuint stride,
577cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell		    GLenum type,
578cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell		    GLuint start,
579cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell		    GLuint n )
580cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell{
581cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell   _math_trans_1f_tab[TYPE_IDX(type)]( to, ptr, stride, start, n );
582cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell}
583cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell
584cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwellvoid _math_trans_1ui(GLuint *to,
585cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell		     CONST void *ptr,
586cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell		     GLuint stride,
587cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell		     GLenum type,
588cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell		     GLuint start,
589cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell		     GLuint n )
590cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell{
59122144ab7552f0799bcfca506bf4ffa7f70a06649Gareth Hughes   _math_trans_1ui_tab[TYPE_IDX(type)]( to, ptr, stride, start, n );
592cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell}
593cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell
594cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwellvoid _math_trans_1ub(GLubyte *to,
595cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell		     CONST void *ptr,
596cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell		     GLuint stride,
597cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell		     GLenum type,
598cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell		     GLuint start,
599cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell		     GLuint n )
600cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell{
60122144ab7552f0799bcfca506bf4ffa7f70a06649Gareth Hughes   _math_trans_1ub_tab[TYPE_IDX(type)]( to, ptr, stride, start, n );
602cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell}
603cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell
604cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell
605cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwellvoid _math_trans_4ub(GLubyte (*to)[4],
606cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell		     CONST void *ptr,
607cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell		     GLuint stride,
608cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell		     GLenum type,
609cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell		     GLuint size,
610cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell		     GLuint start,
611cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell		     GLuint n )
612cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell{
61322144ab7552f0799bcfca506bf4ffa7f70a06649Gareth Hughes   _math_trans_4ub_tab[size][TYPE_IDX(type)]( to, ptr, stride, start, n );
614cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell}
615cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell
6164eebc90a174722422daea6352d4e980bc81b4bb2Keith Whitwellvoid _math_trans_4chan( GLchan (*to)[4],
6174eebc90a174722422daea6352d4e980bc81b4bb2Keith Whitwell			CONST void *ptr,
6184eebc90a174722422daea6352d4e980bc81b4bb2Keith Whitwell			GLuint stride,
6194eebc90a174722422daea6352d4e980bc81b4bb2Keith Whitwell			GLenum type,
6204eebc90a174722422daea6352d4e980bc81b4bb2Keith Whitwell			GLuint size,
6214eebc90a174722422daea6352d4e980bc81b4bb2Keith Whitwell			GLuint start,
6224eebc90a174722422daea6352d4e980bc81b4bb2Keith Whitwell			GLuint n )
6234eebc90a174722422daea6352d4e980bc81b4bb2Keith Whitwell{
6244eebc90a174722422daea6352d4e980bc81b4bb2Keith Whitwell#if CHAN_TYPE == GL_UNSIGNED_BYTE
6254eebc90a174722422daea6352d4e980bc81b4bb2Keith Whitwell   _math_trans_4ub( to, ptr, stride, type, size, start, n );
6264eebc90a174722422daea6352d4e980bc81b4bb2Keith Whitwell#elif CHAN_TYPE == GL_UNSIGNED_SHORT
6274eebc90a174722422daea6352d4e980bc81b4bb2Keith Whitwell   _math_trans_4us( to, ptr, stride, type, size, start, n );
6284eebc90a174722422daea6352d4e980bc81b4bb2Keith Whitwell#elif CHAN_TYPE == GL_FLOAT
6294eebc90a174722422daea6352d4e980bc81b4bb2Keith Whitwell   _math_trans_4f( to, ptr, stride, type, size, start, n );
6304eebc90a174722422daea6352d4e980bc81b4bb2Keith Whitwell#endif
6314eebc90a174722422daea6352d4e980bc81b4bb2Keith Whitwell}
6324eebc90a174722422daea6352d4e980bc81b4bb2Keith Whitwell
63374b493a5e61237de081a438e774e5d8139d4c6b7Brian Paulvoid _math_trans_4us(GLushort (*to)[4],
63474b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul		     CONST void *ptr,
63574b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul		     GLuint stride,
63674b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul		     GLenum type,
63774b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul		     GLuint size,
63874b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul		     GLuint start,
63974b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul		     GLuint n )
64074b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul{
64122144ab7552f0799bcfca506bf4ffa7f70a06649Gareth Hughes   _math_trans_4us_tab[size][TYPE_IDX(type)]( to, ptr, stride, start, n );
64274b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul}
64374b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul
644cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwellvoid _math_trans_4f(GLfloat (*to)[4],
645cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell		    CONST void *ptr,
646cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell		    GLuint stride,
647cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell		    GLenum type,
648cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell		    GLuint size,
649cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell		    GLuint start,
650cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell		    GLuint n )
651cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell{
65222144ab7552f0799bcfca506bf4ffa7f70a06649Gareth Hughes   _math_trans_4f_tab[size][TYPE_IDX(type)]( to, ptr, stride, start, n );
653cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell}
654cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell
655cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwellvoid _math_trans_3f(GLfloat (*to)[3],
656cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell		    CONST void *ptr,
657cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell		    GLuint stride,
658cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell		    GLenum type,
659cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell		    GLuint start,
660cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell		    GLuint n )
661cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell{
66222144ab7552f0799bcfca506bf4ffa7f70a06649Gareth Hughes   _math_trans_3f_tab[TYPE_IDX(type)]( to, ptr, stride, start, n );
663cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell}
664