- return packet.ptr+packet.total-data;
-}
-
-static void next_chunk(GlPacket *pkt)
-{
- if(pkt->total==0)
- return;
- pkt->chunk = pkt->total;
- read_int((int *)&pkt->chunk, pkt);
- pkt->chunk &= 0x7FFFFFFF;
-}
-
-static void read_generic(void *v, unsigned size, int byteswap, GlPacket *pkt)
-{
- if(pkt->chunk==0)
- next_chunk(pkt);
-
- if(pkt->chunk>=size)
- {
- // TODO: Actually implement byteswap if needed
- (void)byteswap;
- memcpy(v, pkt->ptr, size);
- pkt->ptr += size;
- pkt->chunk -= size;
- pkt->total -= size;
- }
- else
- {
- memset(v, 0, size);
- pkt->total -= pkt->chunk;
- pkt->chunk = 0;
- }
-}
-
-static void read_char(char *v, GlPacket *pkt)
-{
- read_generic(v, 1, 0, pkt);
-}
-
-static void read_short(short *v, GlPacket *pkt)
-{
- read_generic(v, sizeof(short), 1, pkt);
-}
-
-static void read_int(int *v, GlPacket *pkt)
-{
- read_generic(v, sizeof(int), 1, pkt);
-}
-
-static void read_long(long *v, GlPacket *pkt)
-{
- read_generic(v, sizeof(long), 1, pkt);
-}
-
-static void read_long_long(long long *v, GlPacket *pkt)
-{
- read_generic(v, sizeof(long long), 1, pkt);
-}
-
-static void read_float(float *v, GlPacket *pkt)
-{
- read_generic(v, sizeof(float), 1, pkt);
-}
-
-static void read_double(double *v, GlPacket *pkt)
-{
- read_generic(v, sizeof(double), 1, pkt);