cr_protocol.h revision 6e7c344fc7cdb580356704e8201207b394d367bb
f0ab104f070bc7f569404826fea1828ed985638cvboxsync/* Copyright (c) 2001, Stanford University
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * All rights reserved.
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * See the file LICENSE.txt for information on redistributing this software.
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern "C" {
f0ab104f070bc7f569404826fea1828ed985638cvboxsync/*For now guest is allowed to connect host opengl service if protocol version matches exactly*/
f0ab104f070bc7f569404826fea1828ed985638cvboxsync/*Note: that after any change to this file, or glapi_parser\apispec.txt version should be changed*/
f0ab104f070bc7f569404826fea1828ed985638cvboxsynctypedef enum {
f0ab104f070bc7f569404826fea1828ed985638cvboxsync /* first message types is 'wGL\001', so we can immediately
f0ab104f070bc7f569404826fea1828ed985638cvboxsync recognize bad message types */
f0ab104f070bc7f569404826fea1828ed985638cvboxsynctypedef union {
f0ab104f070bc7f569404826fea1828ed985638cvboxsync /* pointers are usually 4 bytes, but on 64-bit machines (Alpha,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * SGI-n64, etc.) they are 8 bytes. Pass network pointers around
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * as an opaque array of bytes, since the interpretation & size of
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * the pointer only matter to the machine which emitted the
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * pointer (and will eventually receive the pointer back again) */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync /* hack to make this packet big */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync /* unsigned int junk[512]; */
f0ab104f070bc7f569404826fea1828ed985638cvboxsynctypedef struct {
f0ab104f070bc7f569404826fea1828ed985638cvboxsync unsigned int conn_id;
f0ab104f070bc7f569404826fea1828ed985638cvboxsynctypedef struct CRMessageOpcodes {
f0ab104f070bc7f569404826fea1828ed985638cvboxsync unsigned int numOpcodes;
f0ab104f070bc7f569404826fea1828ed985638cvboxsynctypedef struct CRMessageRedirPtr {
f0ab104f070bc7f569404826fea1828ed985638cvboxsynctypedef struct CRMessageWriteback {
f0ab104f070bc7f569404826fea1828ed985638cvboxsynctypedef struct CRMessageReadback {
f0ab104f070bc7f569404826fea1828ed985638cvboxsynctypedef struct CRMessageMulti {
f0ab104f070bc7f569404826fea1828ed985638cvboxsynctypedef struct CRMessageFlowControl {
f0ab104f070bc7f569404826fea1828ed985638cvboxsync unsigned int credits;
f0ab104f070bc7f569404826fea1828ed985638cvboxsynctypedef struct CRMessageReadPixels {
f0ab104f070bc7f569404826fea1828ed985638cvboxsync unsigned int stride;
f0ab104f070bc7f569404826fea1828ed985638cvboxsynctypedef struct CRMessageNewClient {
typedef struct CRMessageGather {
unsigned long offset;
unsigned long len;
} CRMessage;
#ifdef __cplusplus