#ifndef __PACKET_HIK_H__ #define __PACKET_HIK_H__ #include #include "defines.h" #include "geommath.h" typedef struct { u_int *current; u_long128 *base; u_long128 *dmatag; u_long64 *giftag; } gifpacket_t; void gifpacket_init(gifpacket_t *gpkt, u_long128 *buffer); void gifpacket_reset(gifpacket_t *gpkt); u_long128 *gifpacket_terminate(gifpacket_t *gpkt); int gifpacket_size(gifpacket_t *gpkt); void gifpacket_addgsdata(gifpacket_t *gpkt, u_long64 data); void gifpacket_addgspacked(gifpacket_t *gpkt, u_long128 data); void gifpacket_addgsvec3(gifpacket_t *gpkt, Vec3* vec); void gifpacket_addgsvec4(gifpacket_t *gpkt, Vec4* vec); void gifpacket_addgsquat(gifpacket_t *gpkt, Quat* quat); void gifpacket_addgsmat33(gifpacket_t *gpkt, Mat33* mat); void gifpacket_addgsmat44(gifpacket_t *gpkt, Mat44* mat); void gifpacket_dump(gifpacket_t *gpkt); inline static u_long128* align128(u_int* pPtr) { while((u_int)pPtr & 0xc) *pPtr++ = 0; return (u_long128*)pPtr; } __inline__ static u_int CV2P(void* const pPtr){ return (u_int)pPtr & 0x9fffffff; } #endif