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