e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync/* Copyright (c) 2001, Stanford University
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync * All rights reserved
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync *
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync * See the file LICENSE.txt for information on redistributing this software.
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync */
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync#include "packer.h"
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync#include "cr_opcodes.h"
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncvoid PACK_APIENTRY crPackMultMatrixd( const GLdouble *m )
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync{
2f44080df90cb90c1e524d97c8e327b40298f3c6vboxsync CR_GET_PACKER_CONTEXT(pc);
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync unsigned char *data_ptr;
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync int packet_length = 16*sizeof( *m );
2f44080df90cb90c1e524d97c8e327b40298f3c6vboxsync CR_GET_BUFFERED_POINTER(pc, packet_length );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DOUBLE( 0*sizeof(double), m[ 0] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DOUBLE( 1*sizeof(double), m[ 1] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DOUBLE( 2*sizeof(double), m[ 2] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DOUBLE( 3*sizeof(double), m[ 3] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DOUBLE( 4*sizeof(double), m[ 4] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DOUBLE( 5*sizeof(double), m[ 5] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DOUBLE( 6*sizeof(double), m[ 6] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DOUBLE( 7*sizeof(double), m[ 7] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DOUBLE( 8*sizeof(double), m[ 8] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DOUBLE( 9*sizeof(double), m[ 9] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DOUBLE( 10*sizeof(double), m[10] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DOUBLE( 11*sizeof(double), m[11] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DOUBLE( 12*sizeof(double), m[12] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DOUBLE( 13*sizeof(double), m[13] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DOUBLE( 14*sizeof(double), m[14] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DOUBLE( 15*sizeof(double), m[15] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_OPCODE( pc, CR_MULTMATRIXD_OPCODE );
2f44080df90cb90c1e524d97c8e327b40298f3c6vboxsync CR_UNLOCK_PACKER_CONTEXT(pc);
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync}
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncvoid PACK_APIENTRY crPackMultMatrixf( const GLfloat *m )
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync{
2f44080df90cb90c1e524d97c8e327b40298f3c6vboxsync CR_GET_PACKER_CONTEXT(pc);
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync unsigned char *data_ptr;
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync int packet_length = 16*sizeof( *m );
2f44080df90cb90c1e524d97c8e327b40298f3c6vboxsync CR_GET_BUFFERED_POINTER(pc, packet_length );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DATA( 0*sizeof(GLfloat), GLfloat, m[ 0] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DATA( 1*sizeof(GLfloat), GLfloat, m[ 1] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DATA( 2*sizeof(GLfloat), GLfloat, m[ 2] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DATA( 3*sizeof(GLfloat), GLfloat, m[ 3] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DATA( 4*sizeof(GLfloat), GLfloat, m[ 4] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DATA( 5*sizeof(GLfloat), GLfloat, m[ 5] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DATA( 6*sizeof(GLfloat), GLfloat, m[ 6] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DATA( 7*sizeof(GLfloat), GLfloat, m[ 7] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DATA( 8*sizeof(GLfloat), GLfloat, m[ 8] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DATA( 9*sizeof(GLfloat), GLfloat, m[ 9] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DATA( 10*sizeof(GLfloat), GLfloat, m[10] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DATA( 11*sizeof(GLfloat), GLfloat, m[11] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DATA( 12*sizeof(GLfloat), GLfloat, m[12] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DATA( 13*sizeof(GLfloat), GLfloat, m[13] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DATA( 14*sizeof(GLfloat), GLfloat, m[14] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DATA( 15*sizeof(GLfloat), GLfloat, m[15] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_OPCODE( pc, CR_MULTMATRIXF_OPCODE );
2f44080df90cb90c1e524d97c8e327b40298f3c6vboxsync CR_UNLOCK_PACKER_CONTEXT(pc);
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync}
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncvoid PACK_APIENTRY crPackLoadMatrixd( const GLdouble *m )
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync{
2f44080df90cb90c1e524d97c8e327b40298f3c6vboxsync CR_GET_PACKER_CONTEXT(pc);
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync unsigned char *data_ptr;
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync int packet_length = 16*sizeof( *m );
2f44080df90cb90c1e524d97c8e327b40298f3c6vboxsync CR_GET_BUFFERED_POINTER(pc, packet_length );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DOUBLE( 0*sizeof(double), m[ 0] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DOUBLE( 1*sizeof(double), m[ 1] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DOUBLE( 2*sizeof(double), m[ 2] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DOUBLE( 3*sizeof(double), m[ 3] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DOUBLE( 4*sizeof(double), m[ 4] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DOUBLE( 5*sizeof(double), m[ 5] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DOUBLE( 6*sizeof(double), m[ 6] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DOUBLE( 7*sizeof(double), m[ 7] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DOUBLE( 8*sizeof(double), m[ 8] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DOUBLE( 9*sizeof(double), m[ 9] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DOUBLE( 10*sizeof(double), m[10] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DOUBLE( 11*sizeof(double), m[11] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DOUBLE( 12*sizeof(double), m[12] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DOUBLE( 13*sizeof(double), m[13] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DOUBLE( 14*sizeof(double), m[14] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DOUBLE( 15*sizeof(double), m[15] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_OPCODE( pc, CR_LOADMATRIXD_OPCODE );
2f44080df90cb90c1e524d97c8e327b40298f3c6vboxsync CR_UNLOCK_PACKER_CONTEXT(pc);
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync}
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncvoid PACK_APIENTRY crPackLoadMatrixf( const GLfloat *m )
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync{
2f44080df90cb90c1e524d97c8e327b40298f3c6vboxsync CR_GET_PACKER_CONTEXT(pc);
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync unsigned char *data_ptr;
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync int packet_length = 16*sizeof( *m );
2f44080df90cb90c1e524d97c8e327b40298f3c6vboxsync CR_GET_BUFFERED_POINTER(pc, packet_length );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DATA( 0*sizeof(GLfloat), GLfloat, m[ 0] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DATA( 1*sizeof(GLfloat), GLfloat, m[ 1] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DATA( 2*sizeof(GLfloat), GLfloat, m[ 2] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DATA( 3*sizeof(GLfloat), GLfloat, m[ 3] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DATA( 4*sizeof(GLfloat), GLfloat, m[ 4] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DATA( 5*sizeof(GLfloat), GLfloat, m[ 5] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DATA( 6*sizeof(GLfloat), GLfloat, m[ 6] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DATA( 7*sizeof(GLfloat), GLfloat, m[ 7] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DATA( 8*sizeof(GLfloat), GLfloat, m[ 8] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DATA( 9*sizeof(GLfloat), GLfloat, m[ 9] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DATA( 10*sizeof(GLfloat), GLfloat, m[10] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DATA( 11*sizeof(GLfloat), GLfloat, m[11] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DATA( 12*sizeof(GLfloat), GLfloat, m[12] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DATA( 13*sizeof(GLfloat), GLfloat, m[13] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DATA( 14*sizeof(GLfloat), GLfloat, m[14] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DATA( 15*sizeof(GLfloat), GLfloat, m[15] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_OPCODE( pc, CR_LOADMATRIXF_OPCODE );
2f44080df90cb90c1e524d97c8e327b40298f3c6vboxsync CR_UNLOCK_PACKER_CONTEXT(pc);
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync}
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncvoid PACK_APIENTRY crPackMultTransposeMatrixdARB( const GLdouble *m )
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync{
2f44080df90cb90c1e524d97c8e327b40298f3c6vboxsync CR_GET_PACKER_CONTEXT(pc);
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync unsigned char *data_ptr;
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync int packet_length = 16*sizeof( *m ) + sizeof(GLint) + sizeof(GLenum);
2f44080df90cb90c1e524d97c8e327b40298f3c6vboxsync CR_GET_BUFFERED_POINTER(pc, packet_length );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DATA( 0, GLint, packet_length );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DATA( 4, GLenum, CR_MULTTRANSPOSEMATRIXDARB_EXTEND_OPCODE );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DOUBLE( 8 + 0*sizeof(double), m[ 0] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DOUBLE( 8 + 1*sizeof(double), m[ 1] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DOUBLE( 8 + 2*sizeof(double), m[ 2] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DOUBLE( 8 + 3*sizeof(double), m[ 3] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DOUBLE( 8 + 4*sizeof(double), m[ 4] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DOUBLE( 8 + 5*sizeof(double), m[ 5] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DOUBLE( 8 + 6*sizeof(double), m[ 6] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DOUBLE( 8 + 7*sizeof(double), m[ 7] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DOUBLE( 8 + 8*sizeof(double), m[ 8] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DOUBLE( 8 + 9*sizeof(double), m[ 9] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DOUBLE( 8 + 10*sizeof(double), m[10] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DOUBLE( 8 + 11*sizeof(double), m[11] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DOUBLE( 8 + 12*sizeof(double), m[12] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DOUBLE( 8 + 13*sizeof(double), m[13] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DOUBLE( 8 + 14*sizeof(double), m[14] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DOUBLE( 8 + 15*sizeof(double), m[15] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_OPCODE( pc, CR_EXTEND_OPCODE );
2f44080df90cb90c1e524d97c8e327b40298f3c6vboxsync CR_UNLOCK_PACKER_CONTEXT(pc);
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync}
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncvoid PACK_APIENTRY crPackMultTransposeMatrixfARB( const GLfloat *m )
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync{
2f44080df90cb90c1e524d97c8e327b40298f3c6vboxsync CR_GET_PACKER_CONTEXT(pc);
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync unsigned char *data_ptr;
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync int packet_length = 16*sizeof( *m ) + sizeof(GLint) + sizeof(GLenum);
2f44080df90cb90c1e524d97c8e327b40298f3c6vboxsync CR_GET_BUFFERED_POINTER(pc, packet_length );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DATA( 0, GLint, packet_length );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DATA( 4, GLenum, CR_MULTTRANSPOSEMATRIXFARB_EXTEND_OPCODE );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DATA( 8 + 0*sizeof(GLfloat), GLfloat, m[ 0] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DATA( 8 + 1*sizeof(GLfloat), GLfloat, m[ 1] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DATA( 8 + 2*sizeof(GLfloat), GLfloat, m[ 2] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DATA( 8 + 3*sizeof(GLfloat), GLfloat, m[ 3] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DATA( 8 + 4*sizeof(GLfloat), GLfloat, m[ 4] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DATA( 8 + 5*sizeof(GLfloat), GLfloat, m[ 5] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DATA( 8 + 6*sizeof(GLfloat), GLfloat, m[ 6] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DATA( 8 + 7*sizeof(GLfloat), GLfloat, m[ 7] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DATA( 8 + 8*sizeof(GLfloat), GLfloat, m[ 8] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DATA( 8 + 9*sizeof(GLfloat), GLfloat, m[ 9] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DATA( 8 + 10*sizeof(GLfloat), GLfloat, m[10] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DATA( 8 + 11*sizeof(GLfloat), GLfloat, m[11] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DATA( 8 + 12*sizeof(GLfloat), GLfloat, m[12] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DATA( 8 + 13*sizeof(GLfloat), GLfloat, m[13] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DATA( 8 + 14*sizeof(GLfloat), GLfloat, m[14] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DATA( 8 + 15*sizeof(GLfloat), GLfloat, m[15] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_OPCODE( pc, CR_EXTEND_OPCODE );
2f44080df90cb90c1e524d97c8e327b40298f3c6vboxsync CR_UNLOCK_PACKER_CONTEXT(pc);
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync}
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncvoid PACK_APIENTRY crPackLoadTransposeMatrixdARB( const GLdouble *m )
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync{
2f44080df90cb90c1e524d97c8e327b40298f3c6vboxsync CR_GET_PACKER_CONTEXT(pc);
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync unsigned char *data_ptr;
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync int packet_length = 16*sizeof( *m ) + sizeof(GLint) + sizeof(GLenum);
2f44080df90cb90c1e524d97c8e327b40298f3c6vboxsync CR_GET_BUFFERED_POINTER(pc, packet_length );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DATA( 0, GLint, packet_length );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DATA( 4, GLenum, CR_LOADTRANSPOSEMATRIXDARB_EXTEND_OPCODE );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DOUBLE( 8 + 0*sizeof(double), m[ 0] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DOUBLE( 8 + 1*sizeof(double), m[ 1] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DOUBLE( 8 + 2*sizeof(double), m[ 2] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DOUBLE( 8 + 3*sizeof(double), m[ 3] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DOUBLE( 8 + 4*sizeof(double), m[ 4] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DOUBLE( 8 + 5*sizeof(double), m[ 5] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DOUBLE( 8 + 6*sizeof(double), m[ 6] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DOUBLE( 8 + 7*sizeof(double), m[ 7] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DOUBLE( 8 + 8*sizeof(double), m[ 8] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DOUBLE( 8 + 9*sizeof(double), m[ 9] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DOUBLE( 8 + 10*sizeof(double), m[10] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DOUBLE( 8 + 11*sizeof(double), m[11] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DOUBLE( 8 + 12*sizeof(double), m[12] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DOUBLE( 8 + 13*sizeof(double), m[13] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DOUBLE( 8 + 14*sizeof(double), m[14] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DOUBLE( 8 + 15*sizeof(double), m[15] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_OPCODE( pc, CR_EXTEND_OPCODE );
2f44080df90cb90c1e524d97c8e327b40298f3c6vboxsync CR_UNLOCK_PACKER_CONTEXT(pc);
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync}
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncvoid PACK_APIENTRY crPackLoadTransposeMatrixfARB( const GLfloat *m )
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync{
2f44080df90cb90c1e524d97c8e327b40298f3c6vboxsync CR_GET_PACKER_CONTEXT(pc);
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync unsigned char *data_ptr;
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync int packet_length = 16*sizeof( *m ) + sizeof(GLint) + sizeof(GLenum);
2f44080df90cb90c1e524d97c8e327b40298f3c6vboxsync CR_GET_BUFFERED_POINTER(pc, packet_length );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DATA( 0, GLint, packet_length );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DATA( 4, GLenum, CR_LOADTRANSPOSEMATRIXFARB_EXTEND_OPCODE );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DATA( 8 + 0*sizeof(GLfloat), GLfloat, m[ 0] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DATA( 8 + 1*sizeof(GLfloat), GLfloat, m[ 1] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DATA( 8 + 2*sizeof(GLfloat), GLfloat, m[ 2] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DATA( 8 + 3*sizeof(GLfloat), GLfloat, m[ 3] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DATA( 8 + 4*sizeof(GLfloat), GLfloat, m[ 4] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DATA( 8 + 5*sizeof(GLfloat), GLfloat, m[ 5] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DATA( 8 + 6*sizeof(GLfloat), GLfloat, m[ 6] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DATA( 8 + 7*sizeof(GLfloat), GLfloat, m[ 7] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DATA( 8 + 8*sizeof(GLfloat), GLfloat, m[ 8] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DATA( 8 + 9*sizeof(GLfloat), GLfloat, m[ 9] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DATA( 8 + 10*sizeof(GLfloat), GLfloat, m[10] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DATA( 8 + 11*sizeof(GLfloat), GLfloat, m[11] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DATA( 8 + 12*sizeof(GLfloat), GLfloat, m[12] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DATA( 8 + 13*sizeof(GLfloat), GLfloat, m[13] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DATA( 8 + 14*sizeof(GLfloat), GLfloat, m[14] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_DATA( 8 + 15*sizeof(GLfloat), GLfloat, m[15] );
a0d1e40cc56a54314af0a1a4b5e13905ffd78393vboxsync WRITE_OPCODE( pc, CR_EXTEND_OPCODE );
2f44080df90cb90c1e524d97c8e327b40298f3c6vboxsync CR_UNLOCK_PACKER_CONTEXT(pc);
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync}