123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell/* 223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell * Mesa 3-D graphics library 30395cc01fdb6ffa638df939e0f7d9d02c34761f9Brian Paul * Version: 6.5.1 422144ab7552f0799bcfca506bf4ffa7f70a06649Gareth Hughes * 50395cc01fdb6ffa638df939e0f7d9d02c34761f9Brian Paul * Copyright (C) 1999-2006 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 250395cc01fdb6ffa638df939e0f7d9d02c34761f9Brian Paul/** 260395cc01fdb6ffa638df939e0f7d9d02c34761f9Brian Paul * \brief Translate vectors of numbers between various types. 270395cc01fdb6ffa638df939e0f7d9d02c34761f9Brian Paul * \author Keith Whitwell. 2823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell */ 2923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell 3023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell 31bbd287103dad776d8a45c87c4e51fbc26d9b80d5Brian Paul#include "main/glheader.h" 323fdd9fa556e9ba48244cb2b3966d3bfb0b84731bVinson Lee#include "main/macros.h" 33bbd287103dad776d8a45c87c4e51fbc26d9b80d5Brian Paul#include "main/mtypes.h" /* GLchan hack */ 3423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell 3523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_translate.h" 3623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell 37cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell 38cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell 39cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwelltypedef void (*trans_1f_func)(GLfloat *to, 40cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell CONST void *ptr, 41cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell GLuint stride, 4222144ab7552f0799bcfca506bf4ffa7f70a06649Gareth Hughes GLuint start, 43cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell GLuint n ); 44cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell 45cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwelltypedef void (*trans_1ui_func)(GLuint *to, 46cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell CONST void *ptr, 47cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell GLuint stride, 4822144ab7552f0799bcfca506bf4ffa7f70a06649Gareth Hughes GLuint start, 49cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell GLuint n ); 50cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell 51cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwelltypedef void (*trans_1ub_func)(GLubyte *to, 52cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell CONST void *ptr, 53cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell GLuint stride, 54cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell GLuint start, 55cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell GLuint n ); 56cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell 57cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwelltypedef void (*trans_4ub_func)(GLubyte (*to)[4], 5874b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul CONST void *ptr, 5974b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul GLuint stride, 6074b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul GLuint start, 6174b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul GLuint n ); 6274b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul 6374b493a5e61237de081a438e774e5d8139d4c6b7Brian Paultypedef void (*trans_4us_func)(GLushort (*to)[4], 6474b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul CONST void *ptr, 6574b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul GLuint stride, 6674b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul GLuint start, 6774b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul GLuint n ); 68cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell 69cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwelltypedef void (*trans_4f_func)(GLfloat (*to)[4], 70cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell CONST void *ptr, 71cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell GLuint stride, 7222144ab7552f0799bcfca506bf4ffa7f70a06649Gareth Hughes GLuint start, 73cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell GLuint n ); 74cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell 757dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paultypedef void (*trans_3fn_func)(GLfloat (*to)[3], 76cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell CONST void *ptr, 77cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell GLuint stride, 7822144ab7552f0799bcfca506bf4ffa7f70a06649Gareth Hughes GLuint start, 79cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell GLuint n ); 80cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell 81cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell 82cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell 83cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell 84cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell#define TYPE_IDX(t) ((t) & 0xf) 85cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell#define MAX_TYPES TYPE_IDX(GL_DOUBLE)+1 /* 0xa + 1 */ 86cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell 87cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell 8823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell/* This macro is used on other systems, so undefine it for this module */ 8923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell 9023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef CHECK 9123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell 92cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwellstatic trans_1f_func _math_trans_1f_tab[MAX_TYPES]; 93cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwellstatic trans_1ui_func _math_trans_1ui_tab[MAX_TYPES]; 94cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwellstatic trans_1ub_func _math_trans_1ub_tab[MAX_TYPES]; 957dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paulstatic trans_3fn_func _math_trans_3fn_tab[MAX_TYPES]; 96cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwellstatic trans_4ub_func _math_trans_4ub_tab[5][MAX_TYPES]; 9774b493a5e61237de081a438e774e5d8139d4c6b7Brian Paulstatic trans_4us_func _math_trans_4us_tab[5][MAX_TYPES]; 98cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwellstatic trans_4f_func _math_trans_4f_tab[5][MAX_TYPES]; 997dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paulstatic trans_4f_func _math_trans_4fn_tab[5][MAX_TYPES]; 10023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell 10123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell 10223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define PTR_ELT(ptr, elt) (((SRC *)ptr)[elt]) 10323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell 10423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell 105cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell#define TAB(x) _math_trans##x##_tab 10623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define ARGS GLuint start, GLuint n 10723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SRC_START start 10823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DST_START 0 10923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define STRIDE stride 11023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define NEXT_F f += stride 11123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define NEXT_F2 11223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define CHECK 11323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell 11423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell 11523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell 11623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell 1170395cc01fdb6ffa638df939e0f7d9d02c34761f9Brian Paul/** 1180395cc01fdb6ffa638df939e0f7d9d02c34761f9Brian Paul * Translate from GL_BYTE. 11923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell */ 12023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SRC GLbyte 12123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SRC_IDX TYPE_IDX(GL_BYTE) 1227dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul#define TRX_3FN(f,n) BYTE_TO_FLOAT( PTR_ELT(f,n) ) 1230395cc01fdb6ffa638df939e0f7d9d02c34761f9Brian Paul#if 1 1245f2230c7bf9432187103ab6c890c0d560c203d5cKeith Whitwell#define TRX_4F(f,n) BYTE_TO_FLOAT( PTR_ELT(f,n) ) 1250395cc01fdb6ffa638df939e0f7d9d02c34761f9Brian Paul#else 1260395cc01fdb6ffa638df939e0f7d9d02c34761f9Brian Paul#define TRX_4F(f,n) (GLfloat)( PTR_ELT(f,n) ) 1270395cc01fdb6ffa638df939e0f7d9d02c34761f9Brian Paul#endif 1287dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul#define TRX_4FN(f,n) BYTE_TO_FLOAT( PTR_ELT(f,n) ) 12923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define TRX_UB(ub, f,n) ub = BYTE_TO_UBYTE( PTR_ELT(f,n) ) 13074b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#define TRX_US(ch, f,n) ch = BYTE_TO_USHORT( PTR_ELT(f,n) ) 13123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define TRX_UI(f,n) (PTR_ELT(f,n) < 0 ? 0 : (GLuint) PTR_ELT(f,n)) 13223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell 13323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell 13423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ 4 13523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define INIT init_trans_4_GLbyte_raw 13623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4F trans_4_GLbyte_4f_raw 1377dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul#define DEST_4FN trans_4_GLbyte_4fn_raw 13823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4UB trans_4_GLbyte_4ub_raw 13974b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#define DEST_4US trans_4_GLbyte_4us_raw 14023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h" 14123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell 14223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ 3 14323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define INIT init_trans_3_GLbyte_raw 14423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4F trans_3_GLbyte_4f_raw 1457dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul#define DEST_4FN trans_3_GLbyte_4fn_raw 14623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4UB trans_3_GLbyte_4ub_raw 14774b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#define DEST_4US trans_3_GLbyte_4us_raw 1487dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul#define DEST_3FN trans_3_GLbyte_3fn_raw 14923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h" 15023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell 15123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ 2 15223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define INIT init_trans_2_GLbyte_raw 15323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4F trans_2_GLbyte_4f_raw 1547dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul#define DEST_4FN trans_2_GLbyte_4fn_raw 15523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h" 15623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell 15723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ 1 15823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define INIT init_trans_1_GLbyte_raw 15923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4F trans_1_GLbyte_4f_raw 1607dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul#define DEST_4FN trans_1_GLbyte_4fn_raw 16123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_1UB trans_1_GLbyte_1ub_raw 16223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_1UI trans_1_GLbyte_1ui_raw 16323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h" 16423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell 16523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef SRC 1667dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul#undef TRX_3FN 16723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef TRX_4F 1687dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul#undef TRX_4FN 16923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef TRX_UB 17074b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#undef TRX_US 17123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef TRX_UI 17223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef SRC_IDX 17323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell 17474b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul 1750395cc01fdb6ffa638df939e0f7d9d02c34761f9Brian Paul/** 1760395cc01fdb6ffa638df939e0f7d9d02c34761f9Brian Paul * Translate from GL_UNSIGNED_BYTE. 17723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell */ 17823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SRC GLubyte 17923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SRC_IDX TYPE_IDX(GL_UNSIGNED_BYTE) 1807dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul#define TRX_3FN(f,n) UBYTE_TO_FLOAT(PTR_ELT(f,n)) 1810395cc01fdb6ffa638df939e0f7d9d02c34761f9Brian Paul#define TRX_4F(f,n) (GLfloat)( PTR_ELT(f,n) ) 1827dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul#define TRX_4FN(f,n) UBYTE_TO_FLOAT(PTR_ELT(f,n)) 18323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define TRX_UB(ub, f,n) ub = PTR_ELT(f,n) 18474b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#define TRX_US(us, f,n) us = UBYTE_TO_USHORT(PTR_ELT(f,n)) 18523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define TRX_UI(f,n) (GLuint)PTR_ELT(f,n) 18623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell 18723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell/* 4ub->4ub handled in special case below. 18823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell */ 18951c0c71811508b6658e0d5dcff8426b618322a73Keith Whitwell#define SZ 4 19051c0c71811508b6658e0d5dcff8426b618322a73Keith Whitwell#define INIT init_trans_4_GLubyte_raw 19151c0c71811508b6658e0d5dcff8426b618322a73Keith Whitwell#define DEST_4F trans_4_GLubyte_4f_raw 1927dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul#define DEST_4FN trans_4_GLubyte_4fn_raw 19351c0c71811508b6658e0d5dcff8426b618322a73Keith Whitwell#define DEST_4US trans_4_GLubyte_4us_raw 19451c0c71811508b6658e0d5dcff8426b618322a73Keith Whitwell#include "m_trans_tmp.h" 19551c0c71811508b6658e0d5dcff8426b618322a73Keith Whitwell 19623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell 19723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ 3 19823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define INIT init_trans_3_GLubyte_raw 19923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4UB trans_3_GLubyte_4ub_raw 20074b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#define DEST_4US trans_3_GLubyte_4us_raw 2017dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul#define DEST_3FN trans_3_GLubyte_3fn_raw 20251c0c71811508b6658e0d5dcff8426b618322a73Keith Whitwell#define DEST_4F trans_3_GLubyte_4f_raw 2037dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul#define DEST_4FN trans_3_GLubyte_4fn_raw 20423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h" 20523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell 20623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell 20723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ 1 20823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define INIT init_trans_1_GLubyte_raw 20923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_1UI trans_1_GLubyte_1ui_raw 21023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_1UB trans_1_GLubyte_1ub_raw 21123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h" 21223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell 21323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef SRC 21423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef SRC_IDX 2157dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul#undef TRX_3FN 21623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef TRX_4F 2177dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul#undef TRX_4FN 21823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef TRX_UB 21974b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#undef TRX_US 22023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef TRX_UI 22123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell 22223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell 22323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell/* GL_SHORT 22423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell */ 22523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SRC GLshort 22623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SRC_IDX TYPE_IDX(GL_SHORT) 2277dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul#define TRX_3FN(f,n) SHORT_TO_FLOAT( PTR_ELT(f,n) ) 22823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define TRX_4F(f,n) (GLfloat)( PTR_ELT(f,n) ) 2297dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul#define TRX_4FN(f,n) SHORT_TO_FLOAT( PTR_ELT(f,n) ) 23023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define TRX_UB(ub, f,n) ub = SHORT_TO_UBYTE(PTR_ELT(f,n)) 23174b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#define TRX_US(us, f,n) us = SHORT_TO_USHORT(PTR_ELT(f,n)) 23223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define TRX_UI(f,n) (PTR_ELT(f,n) < 0 ? 0 : (GLuint) PTR_ELT(f,n)) 23323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell 23423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell 23523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ 4 23623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define INIT init_trans_4_GLshort_raw 23723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4F trans_4_GLshort_4f_raw 2387dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul#define DEST_4FN trans_4_GLshort_4fn_raw 23923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4UB trans_4_GLshort_4ub_raw 24074b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#define DEST_4US trans_4_GLshort_4us_raw 24123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h" 24223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell 24323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ 3 24423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define INIT init_trans_3_GLshort_raw 24523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4F trans_3_GLshort_4f_raw 2467dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul#define DEST_4FN trans_3_GLshort_4fn_raw 24723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4UB trans_3_GLshort_4ub_raw 24874b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#define DEST_4US trans_3_GLshort_4us_raw 2497dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul#define DEST_3FN trans_3_GLshort_3fn_raw 25023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h" 25123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell 25223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ 2 25323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define INIT init_trans_2_GLshort_raw 25423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4F trans_2_GLshort_4f_raw 2557dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul#define DEST_4FN trans_2_GLshort_4fn_raw 25623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h" 25723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell 25823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ 1 25923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define INIT init_trans_1_GLshort_raw 26023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4F trans_1_GLshort_4f_raw 2617dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul#define DEST_4FN trans_1_GLshort_4fn_raw 26223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_1UB trans_1_GLshort_1ub_raw 26323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_1UI trans_1_GLshort_1ui_raw 26423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h" 26523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell 26623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell 26723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef SRC 26823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef SRC_IDX 2697dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul#undef TRX_3FN 27023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef TRX_4F 2717dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul#undef TRX_4FN 27223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef TRX_UB 27374b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#undef TRX_US 27423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef TRX_UI 27523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell 27623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell 27723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell/* GL_UNSIGNED_SHORT 27823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell */ 27923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SRC GLushort 28023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SRC_IDX TYPE_IDX(GL_UNSIGNED_SHORT) 2817dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul#define TRX_3FN(f,n) USHORT_TO_FLOAT( PTR_ELT(f,n) ) 28223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define TRX_4F(f,n) (GLfloat)( PTR_ELT(f,n) ) 2837dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul#define TRX_4FN(f,n) USHORT_TO_FLOAT( PTR_ELT(f,n) ) 28423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define TRX_UB(ub,f,n) ub = (GLubyte) (PTR_ELT(f,n) >> 8) 2850395cc01fdb6ffa638df939e0f7d9d02c34761f9Brian Paul#define TRX_US(us,f,n) us = PTR_ELT(f,n) 28623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define TRX_UI(f,n) (GLuint) PTR_ELT(f,n) 28723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell 28823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell 28923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ 4 29023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define INIT init_trans_4_GLushort_raw 29123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4F trans_4_GLushort_4f_raw 2927dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul#define DEST_4FN trans_4_GLushort_4fn_raw 29323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4UB trans_4_GLushort_4ub_raw 29474b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#define DEST_4US trans_4_GLushort_4us_raw 29523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h" 29623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell 29723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ 3 29823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define INIT init_trans_3_GLushort_raw 29923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4F trans_3_GLushort_4f_raw 3007dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul#define DEST_4FN trans_3_GLushort_4fn_raw 30123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4UB trans_3_GLushort_4ub_raw 30274b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#define DEST_4US trans_3_GLushort_4us_raw 3037dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul#define DEST_3FN trans_3_GLushort_3fn_raw 30423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h" 30523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell 30623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ 2 30723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define INIT init_trans_2_GLushort_raw 30823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4F trans_2_GLushort_4f_raw 3097dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul#define DEST_4FN trans_2_GLushort_4fn_raw 31023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h" 31123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell 31223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ 1 31323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define INIT init_trans_1_GLushort_raw 31423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4F trans_1_GLushort_4f_raw 3157dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul#define DEST_4FN trans_1_GLushort_4fn_raw 31623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_1UB trans_1_GLushort_1ub_raw 31723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_1UI trans_1_GLushort_1ui_raw 31823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h" 31923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell 32023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef SRC 32123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef SRC_IDX 3227dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul#undef TRX_3FN 32323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef TRX_4F 3247dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul#undef TRX_4FN 32523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef TRX_UB 32674b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#undef TRX_US 32723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef TRX_UI 32823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell 32923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell 33023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell/* GL_INT 33123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell */ 33223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SRC GLint 33323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SRC_IDX TYPE_IDX(GL_INT) 3347dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul#define TRX_3FN(f,n) INT_TO_FLOAT( PTR_ELT(f,n) ) 33523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define TRX_4F(f,n) (GLfloat)( PTR_ELT(f,n) ) 3367dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul#define TRX_4FN(f,n) INT_TO_FLOAT( PTR_ELT(f,n) ) 33723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define TRX_UB(ub, f,n) ub = INT_TO_UBYTE(PTR_ELT(f,n)) 33874b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#define TRX_US(us, f,n) us = INT_TO_USHORT(PTR_ELT(f,n)) 33923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define TRX_UI(f,n) (PTR_ELT(f,n) < 0 ? 0 : (GLuint) PTR_ELT(f,n)) 34023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell 34123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell 34223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ 4 34323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define INIT init_trans_4_GLint_raw 34423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4F trans_4_GLint_4f_raw 3457dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul#define DEST_4FN trans_4_GLint_4fn_raw 34623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4UB trans_4_GLint_4ub_raw 34774b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#define DEST_4US trans_4_GLint_4us_raw 34823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h" 34923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell 35023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ 3 35123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define INIT init_trans_3_GLint_raw 35223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4F trans_3_GLint_4f_raw 3537dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul#define DEST_4FN trans_3_GLint_4fn_raw 35423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4UB trans_3_GLint_4ub_raw 35574b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#define DEST_4US trans_3_GLint_4us_raw 3567dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul#define DEST_3FN trans_3_GLint_3fn_raw 35723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h" 35823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell 35923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ 2 36023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define INIT init_trans_2_GLint_raw 36123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4F trans_2_GLint_4f_raw 3627dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul#define DEST_4FN trans_2_GLint_4fn_raw 36323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h" 36423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell 36523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ 1 36623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define INIT init_trans_1_GLint_raw 36723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4F trans_1_GLint_4f_raw 3687dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul#define DEST_4FN trans_1_GLint_4fn_raw 36923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_1UB trans_1_GLint_1ub_raw 37023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_1UI trans_1_GLint_1ui_raw 37123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h" 37223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell 37323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell 37423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef SRC 37523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef SRC_IDX 3767dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul#undef TRX_3FN 37723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef TRX_4F 3787dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul#undef TRX_4FN 37923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef TRX_UB 38074b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#undef TRX_US 38123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef TRX_UI 38223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell 38323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell 38423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell/* GL_UNSIGNED_INT 38523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell */ 38623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SRC GLuint 38723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SRC_IDX TYPE_IDX(GL_UNSIGNED_INT) 3887dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul#define TRX_3FN(f,n) INT_TO_FLOAT( PTR_ELT(f,n) ) 38923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define TRX_4F(f,n) (GLfloat)( PTR_ELT(f,n) ) 3907dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul#define TRX_4FN(f,n) UINT_TO_FLOAT( PTR_ELT(f,n) ) 39123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define TRX_UB(ub, f,n) ub = (GLubyte) (PTR_ELT(f,n) >> 24) 39274b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#define TRX_US(us, f,n) us = (GLshort) (PTR_ELT(f,n) >> 16) 39323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define TRX_UI(f,n) PTR_ELT(f,n) 39423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell 39523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell 39623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ 4 39723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define INIT init_trans_4_GLuint_raw 39823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4F trans_4_GLuint_4f_raw 3997dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul#define DEST_4FN trans_4_GLuint_4fn_raw 40023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4UB trans_4_GLuint_4ub_raw 40174b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#define DEST_4US trans_4_GLuint_4us_raw 40223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h" 40323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell 40423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ 3 40523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define INIT init_trans_3_GLuint_raw 40623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4F trans_3_GLuint_4f_raw 4077dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul#define DEST_4FN trans_3_GLuint_4fn_raw 40823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4UB trans_3_GLuint_4ub_raw 40974b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#define DEST_4US trans_3_GLuint_4us_raw 4107dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul#define DEST_3FN trans_3_GLuint_3fn_raw 41123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h" 41223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell 41323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ 2 41423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define INIT init_trans_2_GLuint_raw 41523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4F trans_2_GLuint_4f_raw 4167dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul#define DEST_4FN trans_2_GLuint_4fn_raw 41723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h" 41823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell 41923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ 1 42023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define INIT init_trans_1_GLuint_raw 42123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4F trans_1_GLuint_4f_raw 4227dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul#define DEST_4FN trans_1_GLuint_4fn_raw 42323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_1UB trans_1_GLuint_1ub_raw 42423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_1UI trans_1_GLuint_1ui_raw 42523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h" 42623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell 42723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef SRC 42823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef SRC_IDX 4297dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul#undef TRX_3FN 43023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef TRX_4F 4317dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul#undef TRX_4FN 43223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef TRX_UB 43374b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#undef TRX_US 43423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef TRX_UI 43523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell 43623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell 43723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell/* GL_DOUBLE 43823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell */ 43923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SRC GLdouble 44023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SRC_IDX TYPE_IDX(GL_DOUBLE) 4417dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul#define TRX_3FN(f,n) (GLfloat) PTR_ELT(f,n) 4427b9fe820a3fba3849864682fbb1cb512362934abKarl Schultz#define TRX_4F(f,n) (GLfloat) PTR_ELT(f,n) 4437dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul#define TRX_4FN(f,n) (GLfloat) PTR_ELT(f,n) 44474b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#define TRX_UB(ub,f,n) UNCLAMPED_FLOAT_TO_UBYTE(ub, PTR_ELT(f,n)) 44574b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#define TRX_US(us,f,n) UNCLAMPED_FLOAT_TO_USHORT(us, PTR_ELT(f,n)) 44623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define TRX_UI(f,n) (GLuint) (GLint) PTR_ELT(f,n) 4477b9fe820a3fba3849864682fbb1cb512362934abKarl Schultz#define TRX_1F(f,n) (GLfloat) PTR_ELT(f,n) 44823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell 44923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell 45023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ 4 45123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define INIT init_trans_4_GLdouble_raw 45223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4F trans_4_GLdouble_4f_raw 4537dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul#define DEST_4FN trans_4_GLdouble_4fn_raw 45423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4UB trans_4_GLdouble_4ub_raw 45574b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#define DEST_4US trans_4_GLdouble_4us_raw 45623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h" 45723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell 45823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ 3 45923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define INIT init_trans_3_GLdouble_raw 46023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4F trans_3_GLdouble_4f_raw 4617dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul#define DEST_4FN trans_3_GLdouble_4fn_raw 46223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4UB trans_3_GLdouble_4ub_raw 46374b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#define DEST_4US trans_3_GLdouble_4us_raw 4647dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul#define DEST_3FN trans_3_GLdouble_3fn_raw 46523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h" 46623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell 46723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ 2 46823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define INIT init_trans_2_GLdouble_raw 46923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4F trans_2_GLdouble_4f_raw 4707dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul#define DEST_4FN trans_2_GLdouble_4fn_raw 47123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h" 47223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell 47323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ 1 47423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define INIT init_trans_1_GLdouble_raw 47523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4F trans_1_GLdouble_4f_raw 4767dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul#define DEST_4FN trans_1_GLdouble_4fn_raw 47723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_1UB trans_1_GLdouble_1ub_raw 47823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_1UI trans_1_GLdouble_1ui_raw 47923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_1F trans_1_GLdouble_1f_raw 48023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h" 48123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell 48223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef SRC 48323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef SRC_IDX 48423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell 48523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell/* GL_FLOAT 48623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell */ 48723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SRC GLfloat 48823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SRC_IDX TYPE_IDX(GL_FLOAT) 48923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ 4 49022144ab7552f0799bcfca506bf4ffa7f70a06649Gareth Hughes#define INIT init_trans_4_GLfloat_raw 49122144ab7552f0799bcfca506bf4ffa7f70a06649Gareth Hughes#define DEST_4UB trans_4_GLfloat_4ub_raw 49222144ab7552f0799bcfca506bf4ffa7f70a06649Gareth Hughes#define DEST_4US trans_4_GLfloat_4us_raw 49323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4F trans_4_GLfloat_4f_raw 4947dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul#define DEST_4FN trans_4_GLfloat_4fn_raw 49523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h" 49623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell 49723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ 3 49823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define INIT init_trans_3_GLfloat_raw 49923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4F trans_3_GLfloat_4f_raw 5007dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul#define DEST_4FN trans_3_GLfloat_4fn_raw 50123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4UB trans_3_GLfloat_4ub_raw 50274b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#define DEST_4US trans_3_GLfloat_4us_raw 5037dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul#define DEST_3FN trans_3_GLfloat_3fn_raw 50423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h" 50523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell 50623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ 2 50723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define INIT init_trans_2_GLfloat_raw 50823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4F trans_2_GLfloat_4f_raw 5097dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul#define DEST_4FN trans_2_GLfloat_4fn_raw 51023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h" 51123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell 51223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define SZ 1 51323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define INIT init_trans_1_GLfloat_raw 51423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_4F trans_1_GLfloat_4f_raw 5157dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul#define DEST_4FN trans_1_GLfloat_4fn_raw 51623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_1UB trans_1_GLfloat_1ub_raw 51723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_1UI trans_1_GLfloat_1ui_raw 51823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#define DEST_1F trans_1_GLfloat_1f_raw 51923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell 52023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#include "m_trans_tmp.h" 52123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell 52223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef SRC 52323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef SRC_IDX 5247dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul#undef TRX_3FN 52523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef TRX_4F 5267dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul#undef TRX_4FN 52723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef TRX_UB 52874b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul#undef TRX_US 52923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef TRX_UI 53023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell 53123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell 53274b493a5e61237de081a438e774e5d8139d4c6b7Brian Paulstatic void trans_4_GLubyte_4ub_raw(GLubyte (*t)[4], 53374b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul CONST void *Ptr, 53474b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul GLuint stride, 53574b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul ARGS ) 53623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell{ 53723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell const GLubyte *f = (GLubyte *) Ptr + SRC_START * stride; 53823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell GLuint i; 53923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell 5406258b76c49f49a56a7c713914b798e80c6553b06Karl Schultz if (((((uintptr_t) f | (uintptr_t) stride)) & 3L) == 0L) { 54123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell /* Aligned. 54223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell */ 54323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell for (i = DST_START ; i < n ; i++, f += stride) { 54423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell COPY_4UBV( t[i], f ); 54523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell } 54623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell } else { 54723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell for (i = DST_START ; i < n ; i++, f += stride) { 54823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell t[i][0] = f[0]; 54923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell t[i][1] = f[1]; 55023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell t[i][2] = f[2]; 55123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell t[i][3] = f[3]; 55223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell } 55323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell } 55423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell} 55523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell 55623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell 55723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwellstatic void init_translate_raw(void) 55823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell{ 5592240ba10f30315410bcff77e372ee71664ac4453Brian Paul memset( TAB(_1ui), 0, sizeof(TAB(_1ui)) ); 5602240ba10f30315410bcff77e372ee71664ac4453Brian Paul memset( TAB(_1ub), 0, sizeof(TAB(_1ub)) ); 5612240ba10f30315410bcff77e372ee71664ac4453Brian Paul memset( TAB(_3fn), 0, sizeof(TAB(_3fn)) ); 5622240ba10f30315410bcff77e372ee71664ac4453Brian Paul memset( TAB(_4ub), 0, sizeof(TAB(_4ub)) ); 5632240ba10f30315410bcff77e372ee71664ac4453Brian Paul memset( TAB(_4us), 0, sizeof(TAB(_4us)) ); 5642240ba10f30315410bcff77e372ee71664ac4453Brian Paul memset( TAB(_4f), 0, sizeof(TAB(_4f)) ); 5652240ba10f30315410bcff77e372ee71664ac4453Brian Paul memset( TAB(_4fn), 0, sizeof(TAB(_4fn)) ); 56623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell 56723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell init_trans_4_GLbyte_raw(); 56823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell init_trans_3_GLbyte_raw(); 56923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell init_trans_2_GLbyte_raw(); 57023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell init_trans_1_GLbyte_raw(); 57123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell init_trans_1_GLubyte_raw(); 57223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell init_trans_3_GLubyte_raw(); 57351c0c71811508b6658e0d5dcff8426b618322a73Keith Whitwell init_trans_4_GLubyte_raw(); 57423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell init_trans_4_GLshort_raw(); 57523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell init_trans_3_GLshort_raw(); 57623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell init_trans_2_GLshort_raw(); 57723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell init_trans_1_GLshort_raw(); 57823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell init_trans_4_GLushort_raw(); 57923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell init_trans_3_GLushort_raw(); 58023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell init_trans_2_GLushort_raw(); 58123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell init_trans_1_GLushort_raw(); 58223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell init_trans_4_GLint_raw(); 58323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell init_trans_3_GLint_raw(); 58423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell init_trans_2_GLint_raw(); 58523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell init_trans_1_GLint_raw(); 58623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell init_trans_4_GLuint_raw(); 58723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell init_trans_3_GLuint_raw(); 58823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell init_trans_2_GLuint_raw(); 58923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell init_trans_1_GLuint_raw(); 59023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell init_trans_4_GLdouble_raw(); 59123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell init_trans_3_GLdouble_raw(); 59223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell init_trans_2_GLdouble_raw(); 59323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell init_trans_1_GLdouble_raw(); 59423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell init_trans_4_GLfloat_raw(); 59523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell init_trans_3_GLfloat_raw(); 59623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell init_trans_2_GLfloat_raw(); 59723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell init_trans_1_GLfloat_raw(); 59851c0c71811508b6658e0d5dcff8426b618322a73Keith Whitwell 59951c0c71811508b6658e0d5dcff8426b618322a73Keith Whitwell TAB(_4ub)[4][TYPE_IDX(GL_UNSIGNED_BYTE)] = trans_4_GLubyte_4ub_raw; 60023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell} 60123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell 60223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell 60323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef TAB 604d18c08fe890e100269be8d5cccbaf7cd7bf9916dBrian Paul#ifdef CLASS 60523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef CLASS 606d18c08fe890e100269be8d5cccbaf7cd7bf9916dBrian Paul#endif 60723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef ARGS 60823caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef CHECK 60923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef SRC_START 61023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef DST_START 61123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef NEXT_F 61223caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell#undef NEXT_F2 61323caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell 61423caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell 61523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell 61623caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell 61723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell 618cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwellvoid _math_init_translate( void ) 61923caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell{ 62023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell init_translate_raw(); 62123caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell} 622cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell 623cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell 6240395cc01fdb6ffa638df939e0f7d9d02c34761f9Brian Paul/** 6250395cc01fdb6ffa638df939e0f7d9d02c34761f9Brian Paul * Translate vector of values to GLfloat [1]. 6260395cc01fdb6ffa638df939e0f7d9d02c34761f9Brian Paul */ 627cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwellvoid _math_trans_1f(GLfloat *to, 628cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell CONST void *ptr, 629cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell GLuint stride, 630cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell GLenum type, 631cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell GLuint start, 632cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell GLuint n ) 633cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell{ 634cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell _math_trans_1f_tab[TYPE_IDX(type)]( to, ptr, stride, start, n ); 635cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell} 636cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell 6370395cc01fdb6ffa638df939e0f7d9d02c34761f9Brian Paul/** 6380395cc01fdb6ffa638df939e0f7d9d02c34761f9Brian Paul * Translate vector of values to GLuint [1]. 6390395cc01fdb6ffa638df939e0f7d9d02c34761f9Brian Paul */ 640cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwellvoid _math_trans_1ui(GLuint *to, 641cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell CONST void *ptr, 642cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell GLuint stride, 643cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell GLenum type, 644cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell GLuint start, 645cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell GLuint n ) 646cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell{ 64722144ab7552f0799bcfca506bf4ffa7f70a06649Gareth Hughes _math_trans_1ui_tab[TYPE_IDX(type)]( to, ptr, stride, start, n ); 648cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell} 649cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell 6500395cc01fdb6ffa638df939e0f7d9d02c34761f9Brian Paul/** 6510395cc01fdb6ffa638df939e0f7d9d02c34761f9Brian Paul * Translate vector of values to GLubyte [1]. 6520395cc01fdb6ffa638df939e0f7d9d02c34761f9Brian Paul */ 653cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwellvoid _math_trans_1ub(GLubyte *to, 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_1ub_tab[TYPE_IDX(type)]( to, ptr, stride, start, n ); 661cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell} 662cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell 663cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell 6640395cc01fdb6ffa638df939e0f7d9d02c34761f9Brian Paul/** 6650395cc01fdb6ffa638df939e0f7d9d02c34761f9Brian Paul * Translate vector of values to GLubyte [4]. 6660395cc01fdb6ffa638df939e0f7d9d02c34761f9Brian Paul */ 667cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwellvoid _math_trans_4ub(GLubyte (*to)[4], 668cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell CONST void *ptr, 669cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell GLuint stride, 670cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell GLenum type, 671cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell GLuint size, 672cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell GLuint start, 673cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell GLuint n ) 674cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell{ 67522144ab7552f0799bcfca506bf4ffa7f70a06649Gareth Hughes _math_trans_4ub_tab[size][TYPE_IDX(type)]( to, ptr, stride, start, n ); 676cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell} 677cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell 6780395cc01fdb6ffa638df939e0f7d9d02c34761f9Brian Paul/** 6790395cc01fdb6ffa638df939e0f7d9d02c34761f9Brian Paul * Translate vector of values to GLchan [4]. 6800395cc01fdb6ffa638df939e0f7d9d02c34761f9Brian Paul */ 6814eebc90a174722422daea6352d4e980bc81b4bb2Keith Whitwellvoid _math_trans_4chan( GLchan (*to)[4], 6824eebc90a174722422daea6352d4e980bc81b4bb2Keith Whitwell CONST void *ptr, 6834eebc90a174722422daea6352d4e980bc81b4bb2Keith Whitwell GLuint stride, 6844eebc90a174722422daea6352d4e980bc81b4bb2Keith Whitwell GLenum type, 6854eebc90a174722422daea6352d4e980bc81b4bb2Keith Whitwell GLuint size, 6864eebc90a174722422daea6352d4e980bc81b4bb2Keith Whitwell GLuint start, 6874eebc90a174722422daea6352d4e980bc81b4bb2Keith Whitwell GLuint n ) 6884eebc90a174722422daea6352d4e980bc81b4bb2Keith Whitwell{ 6894eebc90a174722422daea6352d4e980bc81b4bb2Keith Whitwell#if CHAN_TYPE == GL_UNSIGNED_BYTE 6904eebc90a174722422daea6352d4e980bc81b4bb2Keith Whitwell _math_trans_4ub( to, ptr, stride, type, size, start, n ); 6914eebc90a174722422daea6352d4e980bc81b4bb2Keith Whitwell#elif CHAN_TYPE == GL_UNSIGNED_SHORT 6924eebc90a174722422daea6352d4e980bc81b4bb2Keith Whitwell _math_trans_4us( to, ptr, stride, type, size, start, n ); 6934eebc90a174722422daea6352d4e980bc81b4bb2Keith Whitwell#elif CHAN_TYPE == GL_FLOAT 6947dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul _math_trans_4fn( to, ptr, stride, type, size, start, n ); 6954eebc90a174722422daea6352d4e980bc81b4bb2Keith Whitwell#endif 6964eebc90a174722422daea6352d4e980bc81b4bb2Keith Whitwell} 6974eebc90a174722422daea6352d4e980bc81b4bb2Keith Whitwell 6980395cc01fdb6ffa638df939e0f7d9d02c34761f9Brian Paul/** 6990395cc01fdb6ffa638df939e0f7d9d02c34761f9Brian Paul * Translate vector of values to GLushort [4]. 7000395cc01fdb6ffa638df939e0f7d9d02c34761f9Brian Paul */ 70174b493a5e61237de081a438e774e5d8139d4c6b7Brian Paulvoid _math_trans_4us(GLushort (*to)[4], 70274b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul CONST void *ptr, 70374b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul GLuint stride, 70474b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul GLenum type, 70574b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul GLuint size, 70674b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul GLuint start, 70774b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul GLuint n ) 70874b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul{ 70922144ab7552f0799bcfca506bf4ffa7f70a06649Gareth Hughes _math_trans_4us_tab[size][TYPE_IDX(type)]( to, ptr, stride, start, n ); 71074b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul} 71174b493a5e61237de081a438e774e5d8139d4c6b7Brian Paul 7120395cc01fdb6ffa638df939e0f7d9d02c34761f9Brian Paul/** 7130395cc01fdb6ffa638df939e0f7d9d02c34761f9Brian Paul * Translate vector of values to GLfloat [4]. 7140395cc01fdb6ffa638df939e0f7d9d02c34761f9Brian Paul */ 715cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwellvoid _math_trans_4f(GLfloat (*to)[4], 716cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell CONST void *ptr, 717cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell GLuint stride, 718cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell GLenum type, 719cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell GLuint size, 720cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell GLuint start, 721cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell GLuint n ) 722cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell{ 72322144ab7552f0799bcfca506bf4ffa7f70a06649Gareth Hughes _math_trans_4f_tab[size][TYPE_IDX(type)]( to, ptr, stride, start, n ); 724cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell} 725cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell 7260395cc01fdb6ffa638df939e0f7d9d02c34761f9Brian Paul/** 7270395cc01fdb6ffa638df939e0f7d9d02c34761f9Brian Paul * Translate vector of values to GLfloat[4], normalized to [-1, 1]. 7280395cc01fdb6ffa638df939e0f7d9d02c34761f9Brian Paul */ 7297dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paulvoid _math_trans_4fn(GLfloat (*to)[4], 73012c037dbff3d5a812e31624645d577413cd54122Keith Whitwell CONST void *ptr, 73112c037dbff3d5a812e31624645d577413cd54122Keith Whitwell GLuint stride, 73212c037dbff3d5a812e31624645d577413cd54122Keith Whitwell GLenum type, 73312c037dbff3d5a812e31624645d577413cd54122Keith Whitwell GLuint size, 73412c037dbff3d5a812e31624645d577413cd54122Keith Whitwell GLuint start, 73512c037dbff3d5a812e31624645d577413cd54122Keith Whitwell GLuint n ) 73612c037dbff3d5a812e31624645d577413cd54122Keith Whitwell{ 7377dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul _math_trans_4fn_tab[size][TYPE_IDX(type)]( to, ptr, stride, start, n ); 73812c037dbff3d5a812e31624645d577413cd54122Keith Whitwell} 73912c037dbff3d5a812e31624645d577413cd54122Keith Whitwell 7400395cc01fdb6ffa638df939e0f7d9d02c34761f9Brian Paul/** 7410395cc01fdb6ffa638df939e0f7d9d02c34761f9Brian Paul * Translate vector of values to GLfloat[3], normalized to [-1, 1]. 7420395cc01fdb6ffa638df939e0f7d9d02c34761f9Brian Paul */ 7437dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paulvoid _math_trans_3fn(GLfloat (*to)[3], 744cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell CONST void *ptr, 745cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell GLuint stride, 746cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell GLenum type, 747cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell GLuint start, 748cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell GLuint n ) 749cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell{ 7507dfdf3a5b74d3498a98f71d18eb2e706f2fedd04Brian Paul _math_trans_3fn_tab[TYPE_IDX(type)]( to, ptr, stride, start, n ); 751cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell} 752