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