m_translate.c revision d18c08fe890e100269be8d5cccbaf7cd7bf9916d
123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell/*
223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell * Mesa 3-D graphics library
3d18c08fe890e100269be8d5cccbaf7cd7bf9916dBrian Paul * Version:  5.1
422144ab7552f0799bcfca506bf4ffa7f70a06649Gareth Hughes *
5d18c08fe890e100269be8d5cccbaf7cd7bf9916dBrian Paul * Copyright (C) 1999-2003  Brian Paul   All Rights Reserved.
622144ab7552f0799bcfca506bf4ffa7f70a06649Gareth Hughes *
723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell * Permission is hereby granted, free of charge, to any person obtaining a
823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell * copy of this software and associated documentation files (the "Software"),
923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell * to deal in the Software without restriction, including without limitation
1023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell * the rights to use, copy, modify, merge, publish, distribute, sublicense,
1123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell * and/or sell copies of the Software, and to permit persons to whom the
1223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell * Software is furnished to do so, subject to the following conditions:
1322144ab7552f0799bcfca506bf4ffa7f70a06649Gareth Hughes *
1423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell * The above copyright notice and this permission notice shall be included
1523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell * in all copies or substantial portions of the Software.
1622144ab7552f0799bcfca506bf4ffa7f70a06649Gareth Hughes *
1723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
1823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
1923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
2023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
2123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
2223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
2323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell */
2423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
2523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell/*
2623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell * New (3.1) transformation code written by Keith Whitwell.
2723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell */
2823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
2923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
3023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "glheader.h"
314eebc90a174722422daea6352d4e980bc81b4bb2Keith Whitwell#include "mtypes.h"		/* GLchan hack */
3223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "colormac.h"
3323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
3423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_translate.h"
3523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
36cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell
37cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell
38cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwelltypedef void (*trans_1f_func)(GLfloat *to,
39cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell			      CONST void *ptr,
40cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell			      GLuint stride,
4122144ab7552f0799bcfca506bf4ffa7f70a06649Gareth Hughes			      GLuint start,
42cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell			      GLuint n );
43cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell
44cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwelltypedef void (*trans_1ui_func)(GLuint *to,
45cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell			       CONST void *ptr,
46cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell			       GLuint stride,
4722144ab7552f0799bcfca506bf4ffa7f70a06649Gareth Hughes			       GLuint start,
48cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell			       GLuint n );
49cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell
50cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwelltypedef void (*trans_1ub_func)(GLubyte *to,
51cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell			       CONST void *ptr,
52cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell			       GLuint stride,
53cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell			       GLuint start,
54cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell			       GLuint n );
55cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell
56cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwelltypedef void (*trans_4ub_func)(GLubyte (*to)[4],
5774b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul                               CONST void *ptr,
5874b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul                               GLuint stride,
5974b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul                               GLuint start,
6074b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul                               GLuint n );
6174b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul
6274b493a5e61237de081a438e774e5d8139d4c6b7Brian Paultypedef void (*trans_4us_func)(GLushort (*to)[4],
6374b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul                               CONST void *ptr,
6474b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul                               GLuint stride,
6574b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul                               GLuint start,
6674b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul                               GLuint n );
67cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell
68cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwelltypedef void (*trans_4f_func)(GLfloat (*to)[4],
69cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell			      CONST void *ptr,
70cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell			      GLuint stride,
7122144ab7552f0799bcfca506bf4ffa7f70a06649Gareth Hughes			      GLuint start,
72cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell			      GLuint n );
73cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell
74cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwelltypedef void (*trans_3f_func)(GLfloat (*to)[3],
75cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell			      CONST void *ptr,
76cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell			      GLuint stride,
7722144ab7552f0799bcfca506bf4ffa7f70a06649Gareth Hughes			      GLuint start,
78cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell			      GLuint n );
79cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell
80cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell
81cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell
82cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell
83cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell#define TYPE_IDX(t) ((t) & 0xf)
84cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell#define MAX_TYPES TYPE_IDX(GL_DOUBLE)+1      /* 0xa + 1 */
85cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell
86cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell
8723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell/* This macro is used on other systems, so undefine it for this module */
8823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
8923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef	CHECK
9023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
91cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwellstatic trans_1f_func  _math_trans_1f_tab[MAX_TYPES];
92cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwellstatic trans_1ui_func _math_trans_1ui_tab[MAX_TYPES];
93cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwellstatic trans_1ub_func _math_trans_1ub_tab[MAX_TYPES];
94cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwellstatic trans_3f_func  _math_trans_3f_tab[MAX_TYPES];
95cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwellstatic trans_4ub_func _math_trans_4ub_tab[5][MAX_TYPES];
9674b493a5e61237de081a438e774e5d8139d4c6b7Brian Paulstatic trans_4us_func _math_trans_4us_tab[5][MAX_TYPES];
97cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwellstatic trans_4f_func  _math_trans_4f_tab[5][MAX_TYPES];
9823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
9923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
10023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define PTR_ELT(ptr, elt) (((SRC *)ptr)[elt])
10123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
10223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
103cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell#define TAB(x) _math_trans##x##_tab
10423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define ARGS   GLuint start, GLuint n
10523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SRC_START  start
10623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DST_START  0
10723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define STRIDE stride
10823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define NEXT_F f += stride
10923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define NEXT_F2
11023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define CHECK
11123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
11223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
11323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
11423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
11523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell/* GL_BYTE
11623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell */
11723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SRC GLbyte
11823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SRC_IDX TYPE_IDX(GL_BYTE)
11923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define TRX_3F(f,n)   BYTE_TO_FLOAT( PTR_ELT(f,n) )
1205f2230c7bf9432187103ab6c890c0d560c203d5cKeith Whitwell#define TRX_4F(f,n)   BYTE_TO_FLOAT( PTR_ELT(f,n) )
12123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define TRX_UB(ub, f,n)  ub = BYTE_TO_UBYTE( PTR_ELT(f,n) )
12274b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#define TRX_US(ch, f,n)  ch = BYTE_TO_USHORT( PTR_ELT(f,n) )
12323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define TRX_UI(f,n)  (PTR_ELT(f,n) < 0 ? 0 : (GLuint)  PTR_ELT(f,n))
12423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
12523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
12623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ 4
12723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define INIT init_trans_4_GLbyte_raw
12823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4F trans_4_GLbyte_4f_raw
12923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4UB trans_4_GLbyte_4ub_raw
13074b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#define DEST_4US trans_4_GLbyte_4us_raw
13123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h"
13223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
13323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ 3
13423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define INIT init_trans_3_GLbyte_raw
13523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4F trans_3_GLbyte_4f_raw
13623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4UB trans_3_GLbyte_4ub_raw
13774b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#define DEST_4US trans_3_GLbyte_4us_raw
13823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_3F trans_3_GLbyte_3f_raw
13923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h"
14023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
14123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ 2
14223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define INIT init_trans_2_GLbyte_raw
14323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4F trans_2_GLbyte_4f_raw
14423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h"
14523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
14623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ 1
14723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define INIT init_trans_1_GLbyte_raw
14823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4F trans_1_GLbyte_4f_raw
14923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_1UB trans_1_GLbyte_1ub_raw
15023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_1UI trans_1_GLbyte_1ui_raw
15123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h"
15223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
15323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef SRC
15423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef TRX_3F
15523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef TRX_4F
15623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef TRX_UB
15774b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#undef TRX_US
15823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef TRX_UI
15923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef SRC_IDX
16023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
16174b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul
16223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell/* GL_UNSIGNED_BYTE
16323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell */
16423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SRC GLubyte
16523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SRC_IDX TYPE_IDX(GL_UNSIGNED_BYTE)
16651c0c71811508b6658e0d5dcff8426b618322a73Keith Whitwell#define TRX_3F(f,n)	     UBYTE_TO_FLOAT(PTR_ELT(f,n))
16751c0c71811508b6658e0d5dcff8426b618322a73Keith Whitwell#define TRX_4F(f,n)	     UBYTE_TO_FLOAT(PTR_ELT(f,n))
16823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define TRX_UB(ub, f,n)	     ub = PTR_ELT(f,n)
16974b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#define TRX_US(us, f,n)      us = UBYTE_TO_USHORT(PTR_ELT(f,n))
17023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define TRX_UI(f,n)          (GLuint)PTR_ELT(f,n)
17123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
17223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell/* 4ub->4ub handled in special case below.
17323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell */
17451c0c71811508b6658e0d5dcff8426b618322a73Keith Whitwell#define SZ 4
17551c0c71811508b6658e0d5dcff8426b618322a73Keith Whitwell#define INIT init_trans_4_GLubyte_raw
17651c0c71811508b6658e0d5dcff8426b618322a73Keith Whitwell#define DEST_4F trans_4_GLubyte_4f_raw
17751c0c71811508b6658e0d5dcff8426b618322a73Keith Whitwell#define DEST_4US trans_4_GLubyte_4us_raw
17851c0c71811508b6658e0d5dcff8426b618322a73Keith Whitwell#include "m_trans_tmp.h"
17951c0c71811508b6658e0d5dcff8426b618322a73Keith Whitwell
18023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
18123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ 3
18223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define INIT init_trans_3_GLubyte_raw
18323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4UB trans_3_GLubyte_4ub_raw
18474b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#define DEST_4US trans_3_GLubyte_4us_raw
18551c0c71811508b6658e0d5dcff8426b618322a73Keith Whitwell#define DEST_3F trans_3_GLubyte_3f_raw
18651c0c71811508b6658e0d5dcff8426b618322a73Keith Whitwell#define DEST_4F trans_3_GLubyte_4f_raw
18723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h"
18823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
18923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
19023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ 1
19123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define INIT init_trans_1_GLubyte_raw
19223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_1UI trans_1_GLubyte_1ui_raw
19323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_1UB trans_1_GLubyte_1ub_raw
19423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h"
19523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
19623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef SRC
19723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef SRC_IDX
19823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef TRX_3F
19923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef TRX_4F
20023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef TRX_UB
20174b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#undef TRX_US
20223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef TRX_UI
20323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
20423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
20523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell/* GL_SHORT
20623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell */
20723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SRC GLshort
20823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SRC_IDX TYPE_IDX(GL_SHORT)
20923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define TRX_3F(f,n)   SHORT_TO_FLOAT( PTR_ELT(f,n) )
21023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define TRX_4F(f,n)   (GLfloat)( PTR_ELT(f,n) )
21123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define TRX_UB(ub, f,n)  ub = SHORT_TO_UBYTE(PTR_ELT(f,n))
21274b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#define TRX_US(us, f,n)  us = SHORT_TO_USHORT(PTR_ELT(f,n))
21323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define TRX_UI(f,n)  (PTR_ELT(f,n) < 0 ? 0 : (GLuint)  PTR_ELT(f,n))
21423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
21523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
21623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ  4
21723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define INIT init_trans_4_GLshort_raw
21823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4F trans_4_GLshort_4f_raw
21923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4UB trans_4_GLshort_4ub_raw
22074b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#define DEST_4US trans_4_GLshort_4us_raw
22123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h"
22223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
22323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ 3
22423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define INIT init_trans_3_GLshort_raw
22523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4F trans_3_GLshort_4f_raw
22623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4UB trans_3_GLshort_4ub_raw
22774b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#define DEST_4US trans_3_GLshort_4us_raw
22823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_3F trans_3_GLshort_3f_raw
22923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h"
23023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
23123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ 2
23223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define INIT init_trans_2_GLshort_raw
23323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4F trans_2_GLshort_4f_raw
23423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h"
23523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
23623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ 1
23723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define INIT init_trans_1_GLshort_raw
23823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4F trans_1_GLshort_4f_raw
23923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_1UB trans_1_GLshort_1ub_raw
24023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_1UI trans_1_GLshort_1ui_raw
24123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h"
24223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
24323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
24423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef SRC
24523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef SRC_IDX
24623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef TRX_3F
24723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef TRX_4F
24823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef TRX_UB
24974b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#undef TRX_US
25023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef TRX_UI
25123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
25223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
25323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell/* GL_UNSIGNED_SHORT
25423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell */
25523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SRC GLushort
25623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SRC_IDX TYPE_IDX(GL_UNSIGNED_SHORT)
25723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define TRX_3F(f,n)   USHORT_TO_FLOAT( PTR_ELT(f,n) )
25823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define TRX_4F(f,n)   (GLfloat)( PTR_ELT(f,n) )
25923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define TRX_UB(ub,f,n)  ub = (GLubyte) (PTR_ELT(f,n) >> 8)
26074b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#define TRX_US(us,f,n)  us = (GLushort) (PTR_ELT(f,n) >> 8)
26123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define TRX_UI(f,n)  (GLuint)   PTR_ELT(f,n)
26223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
26323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
26423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ 4
26523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define INIT init_trans_4_GLushort_raw
26623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4F trans_4_GLushort_4f_raw
26723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4UB trans_4_GLushort_4ub_raw
26874b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#define DEST_4US trans_4_GLushort_4us_raw
26923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h"
27023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
27123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ 3
27223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define INIT init_trans_3_GLushort_raw
27323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4F trans_3_GLushort_4f_raw
27423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4UB trans_3_GLushort_4ub_raw
27574b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#define DEST_4US trans_3_GLushort_4us_raw
27623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_3F trans_3_GLushort_3f_raw
27723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h"
27823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
27923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ 2
28023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define INIT init_trans_2_GLushort_raw
28123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4F trans_2_GLushort_4f_raw
28223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h"
28323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
28423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ 1
28523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define INIT init_trans_1_GLushort_raw
28623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4F trans_1_GLushort_4f_raw
28723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_1UB trans_1_GLushort_1ub_raw
28823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_1UI trans_1_GLushort_1ui_raw
28923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h"
29023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
29123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef SRC
29223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef SRC_IDX
29323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef TRX_3F
29423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef TRX_4F
29523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef TRX_UB
29674b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#undef TRX_US
29723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef TRX_UI
29823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
29923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
30023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell/* GL_INT
30123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell */
30223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SRC GLint
30323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SRC_IDX TYPE_IDX(GL_INT)
30423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define TRX_3F(f,n)   INT_TO_FLOAT( PTR_ELT(f,n) )
30523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define TRX_4F(f,n)   (GLfloat)( PTR_ELT(f,n) )
30623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define TRX_UB(ub, f,n)  ub = INT_TO_UBYTE(PTR_ELT(f,n))
30774b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#define TRX_US(us, f,n)  us = INT_TO_USHORT(PTR_ELT(f,n))
30823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define TRX_UI(f,n)  (PTR_ELT(f,n) < 0 ? 0 : (GLuint)  PTR_ELT(f,n))
30923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
31023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
31123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ 4
31223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define INIT init_trans_4_GLint_raw
31323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4F trans_4_GLint_4f_raw
31423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4UB trans_4_GLint_4ub_raw
31574b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#define DEST_4US trans_4_GLint_4us_raw
31623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h"
31723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
31823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ 3
31923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define INIT init_trans_3_GLint_raw
32023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4F trans_3_GLint_4f_raw
32123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4UB trans_3_GLint_4ub_raw
32274b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#define DEST_4US trans_3_GLint_4us_raw
32323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_3F trans_3_GLint_3f_raw
32423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h"
32523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
32623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ 2
32723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define INIT init_trans_2_GLint_raw
32823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4F trans_2_GLint_4f_raw
32923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h"
33023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
33123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ 1
33223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define INIT init_trans_1_GLint_raw
33323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4F trans_1_GLint_4f_raw
33423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_1UB trans_1_GLint_1ub_raw
33523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_1UI trans_1_GLint_1ui_raw
33623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h"
33723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
33823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
33923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef SRC
34023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef SRC_IDX
34123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef TRX_3F
34223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef TRX_4F
34323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef TRX_UB
34474b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#undef TRX_US
34523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef TRX_UI
34623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
34723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
34823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell/* GL_UNSIGNED_INT
34923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell */
35023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SRC GLuint
35123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SRC_IDX TYPE_IDX(GL_UNSIGNED_INT)
35223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define TRX_3F(f,n)   INT_TO_FLOAT( PTR_ELT(f,n) )
35323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define TRX_4F(f,n)   (GLfloat)( PTR_ELT(f,n) )
35423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define TRX_UB(ub, f,n)  ub = (GLubyte) (PTR_ELT(f,n) >> 24)
35574b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#define TRX_US(us, f,n)  us = (GLshort) (PTR_ELT(f,n) >> 16)
35623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define TRX_UI(f,n)		PTR_ELT(f,n)
35723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
35823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
35923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ 4
36023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define INIT init_trans_4_GLuint_raw
36123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4F trans_4_GLuint_4f_raw
36223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4UB trans_4_GLuint_4ub_raw
36374b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#define DEST_4US trans_4_GLuint_4us_raw
36423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h"
36523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
36623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ 3
36723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define INIT init_trans_3_GLuint_raw
36823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4F trans_3_GLuint_4f_raw
36923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4UB trans_3_GLuint_4ub_raw
37074b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#define DEST_4US trans_3_GLuint_4us_raw
37123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_3F trans_3_GLuint_3f_raw
37223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h"
37323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
37423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ 2
37523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define INIT init_trans_2_GLuint_raw
37623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4F trans_2_GLuint_4f_raw
37723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h"
37823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
37923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ 1
38023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define INIT init_trans_1_GLuint_raw
38123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4F trans_1_GLuint_4f_raw
38223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_1UB trans_1_GLuint_1ub_raw
38323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_1UI trans_1_GLuint_1ui_raw
38423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h"
38523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
38623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef SRC
38723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef SRC_IDX
38823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef TRX_3F
38923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef TRX_4F
39023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef TRX_UB
39174b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#undef TRX_US
39223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef TRX_UI
39323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
39423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
39523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell/* GL_DOUBLE
39623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell */
39723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SRC GLdouble
39823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SRC_IDX TYPE_IDX(GL_DOUBLE)
3997b9fe820a3fba3849864682fbb1cb512362934abKarl Schultz#define TRX_3F(f,n)   (GLfloat) PTR_ELT(f,n)
4007b9fe820a3fba3849864682fbb1cb512362934abKarl Schultz#define TRX_4F(f,n)   (GLfloat) PTR_ELT(f,n)
40174b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#define TRX_UB(ub,f,n) UNCLAMPED_FLOAT_TO_UBYTE(ub, PTR_ELT(f,n))
40274b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#define TRX_US(us,f,n) UNCLAMPED_FLOAT_TO_USHORT(us, PTR_ELT(f,n))
40323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define TRX_UI(f,n)  (GLuint) (GLint) PTR_ELT(f,n)
4047b9fe820a3fba3849864682fbb1cb512362934abKarl Schultz#define TRX_1F(f,n)   (GLfloat) PTR_ELT(f,n)
40523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
40623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
40723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ 4
40823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define INIT init_trans_4_GLdouble_raw
40923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4F trans_4_GLdouble_4f_raw
41023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4UB trans_4_GLdouble_4ub_raw
41174b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#define DEST_4US trans_4_GLdouble_4us_raw
41223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h"
41323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
41423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ 3
41523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define INIT init_trans_3_GLdouble_raw
41623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4F trans_3_GLdouble_4f_raw
41723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4UB trans_3_GLdouble_4ub_raw
41874b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#define DEST_4US trans_3_GLdouble_4us_raw
41923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_3F trans_3_GLdouble_3f_raw
42023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h"
42123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
42223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ 2
42323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define INIT init_trans_2_GLdouble_raw
42423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4F trans_2_GLdouble_4f_raw
42523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h"
42623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
42723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ 1
42823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define INIT init_trans_1_GLdouble_raw
42923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4F trans_1_GLdouble_4f_raw
43023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_1UB trans_1_GLdouble_1ub_raw
43123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_1UI trans_1_GLdouble_1ui_raw
43223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_1F trans_1_GLdouble_1f_raw
43323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h"
43423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
43523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef SRC
43623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef SRC_IDX
43723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
43823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell/* GL_FLOAT
43923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell */
44023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SRC GLfloat
44123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SRC_IDX TYPE_IDX(GL_FLOAT)
44223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ 4
44322144ab7552f0799bcfca506bf4ffa7f70a06649Gareth Hughes#define INIT init_trans_4_GLfloat_raw
44422144ab7552f0799bcfca506bf4ffa7f70a06649Gareth Hughes#define DEST_4UB trans_4_GLfloat_4ub_raw
44522144ab7552f0799bcfca506bf4ffa7f70a06649Gareth Hughes#define DEST_4US trans_4_GLfloat_4us_raw
44623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4F  trans_4_GLfloat_4f_raw
44723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h"
44823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
44923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ 3
45023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define INIT init_trans_3_GLfloat_raw
45123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4F  trans_3_GLfloat_4f_raw
45223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4UB trans_3_GLfloat_4ub_raw
45374b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#define DEST_4US trans_3_GLfloat_4us_raw
45423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_3F trans_3_GLfloat_3f_raw
45523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h"
45623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
45723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ 2
45823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define INIT init_trans_2_GLfloat_raw
45923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4F trans_2_GLfloat_4f_raw
46023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h"
46123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
46223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ 1
46323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define INIT init_trans_1_GLfloat_raw
46423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4F  trans_1_GLfloat_4f_raw
46523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_1UB trans_1_GLfloat_1ub_raw
46623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_1UI trans_1_GLfloat_1ui_raw
46723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_1F trans_1_GLfloat_1f_raw
46823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
46923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h"
47023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
47123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef SRC
47223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef SRC_IDX
47323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef TRX_3F
47423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef TRX_4F
47523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef TRX_UB
47674b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#undef TRX_US
47723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef TRX_UI
47823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
47923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
48074b493a5e61237de081a438e774e5d8139d4c6b7Brian Paulstatic void trans_4_GLubyte_4ub_raw(GLubyte (*t)[4],
48174b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul				    CONST void *Ptr,
48274b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul				    GLuint stride,
48374b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul				    ARGS )
48423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell{
48523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   const GLubyte *f = (GLubyte *) Ptr + SRC_START * stride;
48623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   GLuint i;
48723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
48822144ab7552f0799bcfca506bf4ffa7f70a06649Gareth Hughes   if (((((long) f | (long) stride)) & 3L) == 0L) {
48923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell      /* Aligned.
49023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell       */
49123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell      for (i = DST_START ; i < n ; i++, f += stride) {
49223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell	 COPY_4UBV( t[i], f );
49323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell      }
49423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   } else {
49523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell      for (i = DST_START ; i < n ; i++, f += stride) {
49623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell	 t[i][0] = f[0];
49723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell	 t[i][1] = f[1];
49823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell	 t[i][2] = f[2];
49923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell	 t[i][3] = f[3];
50023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell      }
50123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   }
50223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell}
50323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
50423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
50523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwellstatic void init_translate_raw(void)
50623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell{
50723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   MEMSET( TAB(_1ui), 0, sizeof(TAB(_1ui)) );
50823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   MEMSET( TAB(_1ub), 0, sizeof(TAB(_1ub)) );
50923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   MEMSET( TAB(_3f),  0, sizeof(TAB(_3f)) );
51023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   MEMSET( TAB(_4ub), 0, sizeof(TAB(_4ub)) );
51174b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul   MEMSET( TAB(_4us), 0, sizeof(TAB(_4us)) );
51223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   MEMSET( TAB(_4f),  0, sizeof(TAB(_4f)) );
51323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
51423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   init_trans_4_GLbyte_raw();
51523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   init_trans_3_GLbyte_raw();
51623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   init_trans_2_GLbyte_raw();
51723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   init_trans_1_GLbyte_raw();
51823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   init_trans_1_GLubyte_raw();
51923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   init_trans_3_GLubyte_raw();
52051c0c71811508b6658e0d5dcff8426b618322a73Keith Whitwell   init_trans_4_GLubyte_raw();
52123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   init_trans_4_GLshort_raw();
52223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   init_trans_3_GLshort_raw();
52323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   init_trans_2_GLshort_raw();
52423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   init_trans_1_GLshort_raw();
52523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   init_trans_4_GLushort_raw();
52623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   init_trans_3_GLushort_raw();
52723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   init_trans_2_GLushort_raw();
52823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   init_trans_1_GLushort_raw();
52923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   init_trans_4_GLint_raw();
53023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   init_trans_3_GLint_raw();
53123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   init_trans_2_GLint_raw();
53223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   init_trans_1_GLint_raw();
53323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   init_trans_4_GLuint_raw();
53423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   init_trans_3_GLuint_raw();
53523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   init_trans_2_GLuint_raw();
53623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   init_trans_1_GLuint_raw();
53723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   init_trans_4_GLdouble_raw();
53823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   init_trans_3_GLdouble_raw();
53923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   init_trans_2_GLdouble_raw();
54023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   init_trans_1_GLdouble_raw();
54123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   init_trans_4_GLfloat_raw();
54223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   init_trans_3_GLfloat_raw();
54323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   init_trans_2_GLfloat_raw();
54423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   init_trans_1_GLfloat_raw();
54551c0c71811508b6658e0d5dcff8426b618322a73Keith Whitwell
54651c0c71811508b6658e0d5dcff8426b618322a73Keith Whitwell   TAB(_4ub)[4][TYPE_IDX(GL_UNSIGNED_BYTE)] = trans_4_GLubyte_4ub_raw;
54723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell}
54823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
54923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
55023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef TAB
551d18c08fe890e100269be8d5cccbaf7cd7bf9916dBrian Paul#ifdef CLASS
55223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef CLASS
553d18c08fe890e100269be8d5cccbaf7cd7bf9916dBrian Paul#endif
55423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef ARGS
55523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef CHECK
55623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef SRC_START
55723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef DST_START
55823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef NEXT_F
55923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef NEXT_F2
56023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
56123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
56223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
56323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
56423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell
565cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwellvoid _math_init_translate( void )
56623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell{
56723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell   init_translate_raw();
56823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell}
569cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell
570cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell
571cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell
572cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwellvoid _math_trans_1f(GLfloat *to,
573cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell		    CONST void *ptr,
574cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell		    GLuint stride,
575cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell		    GLenum type,
576cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell		    GLuint start,
577cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell		    GLuint n )
578cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell{
579cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell   _math_trans_1f_tab[TYPE_IDX(type)]( to, ptr, stride, start, n );
580cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell}
581cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell
582cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwellvoid _math_trans_1ui(GLuint *to,
583cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell		     CONST void *ptr,
584cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell		     GLuint stride,
585cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell		     GLenum type,
586cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell		     GLuint start,
587cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell		     GLuint n )
588cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell{
58922144ab7552f0799bcfca506bf4ffa7f70a06649Gareth Hughes   _math_trans_1ui_tab[TYPE_IDX(type)]( to, ptr, stride, start, n );
590cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell}
591cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell
592cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwellvoid _math_trans_1ub(GLubyte *to,
593cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell		     CONST void *ptr,
594cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell		     GLuint stride,
595cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell		     GLenum type,
596cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell		     GLuint start,
597cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell		     GLuint n )
598cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell{
59922144ab7552f0799bcfca506bf4ffa7f70a06649Gareth Hughes   _math_trans_1ub_tab[TYPE_IDX(type)]( to, ptr, stride, start, n );
600cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell}
601cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell
602cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell
603cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwellvoid _math_trans_4ub(GLubyte (*to)[4],
604cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell		     CONST void *ptr,
605cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell		     GLuint stride,
606cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell		     GLenum type,
607cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell		     GLuint size,
608cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell		     GLuint start,
609cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell		     GLuint n )
610cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell{
61122144ab7552f0799bcfca506bf4ffa7f70a06649Gareth Hughes   _math_trans_4ub_tab[size][TYPE_IDX(type)]( to, ptr, stride, start, n );
612cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell}
613cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell
6144eebc90a174722422daea6352d4e980bc81b4bb2Keith Whitwellvoid _math_trans_4chan( GLchan (*to)[4],
6154eebc90a174722422daea6352d4e980bc81b4bb2Keith Whitwell			CONST void *ptr,
6164eebc90a174722422daea6352d4e980bc81b4bb2Keith Whitwell			GLuint stride,
6174eebc90a174722422daea6352d4e980bc81b4bb2Keith Whitwell			GLenum type,
6184eebc90a174722422daea6352d4e980bc81b4bb2Keith Whitwell			GLuint size,
6194eebc90a174722422daea6352d4e980bc81b4bb2Keith Whitwell			GLuint start,
6204eebc90a174722422daea6352d4e980bc81b4bb2Keith Whitwell			GLuint n )
6214eebc90a174722422daea6352d4e980bc81b4bb2Keith Whitwell{
6224eebc90a174722422daea6352d4e980bc81b4bb2Keith Whitwell#if CHAN_TYPE == GL_UNSIGNED_BYTE
6234eebc90a174722422daea6352d4e980bc81b4bb2Keith Whitwell   _math_trans_4ub( to, ptr, stride, type, size, start, n );
6244eebc90a174722422daea6352d4e980bc81b4bb2Keith Whitwell#elif CHAN_TYPE == GL_UNSIGNED_SHORT
6254eebc90a174722422daea6352d4e980bc81b4bb2Keith Whitwell   _math_trans_4us( to, ptr, stride, type, size, start, n );
6264eebc90a174722422daea6352d4e980bc81b4bb2Keith Whitwell#elif CHAN_TYPE == GL_FLOAT
6274eebc90a174722422daea6352d4e980bc81b4bb2Keith Whitwell   _math_trans_4f( to, ptr, stride, type, size, start, n );
6284eebc90a174722422daea6352d4e980bc81b4bb2Keith Whitwell#endif
6294eebc90a174722422daea6352d4e980bc81b4bb2Keith Whitwell}
6304eebc90a174722422daea6352d4e980bc81b4bb2Keith Whitwell
63174b493a5e61237de081a438e774e5d8139d4c6b7Brian Paulvoid _math_trans_4us(GLushort (*to)[4],
63274b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul		     CONST void *ptr,
63374b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul		     GLuint stride,
63474b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul		     GLenum type,
63574b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul		     GLuint size,
63674b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul		     GLuint start,
63774b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul		     GLuint n )
63874b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul{
63922144ab7552f0799bcfca506bf4ffa7f70a06649Gareth Hughes   _math_trans_4us_tab[size][TYPE_IDX(type)]( to, ptr, stride, start, n );
64074b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul}
64174b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul
642cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwellvoid _math_trans_4f(GLfloat (*to)[4],
643cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell		    CONST void *ptr,
644cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell		    GLuint stride,
645cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell		    GLenum type,
646cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell		    GLuint size,
647cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell		    GLuint start,
648cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell		    GLuint n )
649cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell{
65022144ab7552f0799bcfca506bf4ffa7f70a06649Gareth Hughes   _math_trans_4f_tab[size][TYPE_IDX(type)]( to, ptr, stride, start, n );
651cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell}
652cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell
653cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwellvoid _math_trans_3f(GLfloat (*to)[3],
654cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell		    CONST void *ptr,
655cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell		    GLuint stride,
656cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell		    GLenum type,
657cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell		    GLuint start,
658cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell		    GLuint n )
659cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell{
66022144ab7552f0799bcfca506bf4ffa7f70a06649Gareth Hughes   _math_trans_3f_tab[TYPE_IDX(type)]( to, ptr, stride, start, n );
661cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell}
662