server_readpixels.c revision febfe671adda070d044dced344f97b3971f2a660
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync/* Copyright (c) 2001, Stanford University
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync * All rights reserved
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync * See the file LICENSE.txt for information on redistributing this software.
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsynccrServerDispatchReadPixels( GLint x, GLint y, GLsizei width, GLsizei height,
febfe671adda070d044dced344f97b3971f2a660vboxsync const GLint bytes_per_row = READ_DATA( 40, GLint );
febfe671adda070d044dced344f97b3971f2a660vboxsync const int msg_len = sizeof(*rp) + bytes_per_row * height;
febfe671adda070d044dced344f97b3971f2a660vboxsync /* Note: the ReadPixels data gets densely packed into the buffer
febfe671adda070d044dced344f97b3971f2a660vboxsync * (no skip pixels, skip rows, etc. It's up to the receiver (pack spu,
febfe671adda070d044dced344f97b3971f2a660vboxsync * tilesort spu, etc) to apply the real PixelStore packing parameters.
febfe671adda070d044dced344f97b3971f2a660vboxsync cr_server.head_spu->dispatch_table.ReadPixels(x, y, width, height,
febfe671adda070d044dced344f97b3971f2a660vboxsync /* <pixels> points to the 8-byte network pointer */
febfe671adda070d044dced344f97b3971f2a660vboxsync crMemcpy( &rp->pixels, pixels, sizeof(rp->pixels) );