cr_bufferobject.h revision c62d2520ac91e12cf4665c936f490dd2064152d3
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync/* Copyright (c) 2001, Stanford University
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync * All rights reserved.
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync * See the file LICENSE.txt for information on redistributing this software.
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncextern "C" {
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsynctypedef struct {
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync * Buffer object, like a texture object, but encapsulates arbitrary
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync * data (vertex, image, etc).
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsynctypedef struct {
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync GLvoid *pointer; /* only valid while buffer is mapped */
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync GLvoid *data; /* the buffer data, if retainBufferData is true */
af8d59d05d72f134aeea62712f1286b369807d52vboxsync GLboolean bResyncOnRead; /* buffer data could be changed on server side,
af8d59d05d72f134aeea62712f1286b369807d52vboxsync so we need to resync every time guest wants to read from it*/
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync CRbitvalue dirty[CR_MAX_BITARRAY]; /* dirty data or state */
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync GLintptrARB dirtyStart, dirtyLength; /* dirty region */
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsynctypedef struct {
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync GLboolean retainBufferData; /* should state tracker retain buffer data? */
af8d59d05d72f134aeea62712f1286b369807d52vboxsyncDECLEXPORT(CRBufferObject *) crStateGetBoundBufferObject(GLenum target, CRBufferObjectState *b);
af8d59d05d72f134aeea62712f1286b369807d52vboxsyncDECLEXPORT(GLboolean) crStateIsBufferBound(GLenum target);
c62d2520ac91e12cf4665c936f490dd2064152d3vboxsyncDECLEXPORT(GLuint) STATE_APIENTRY crStateBufferHWIDtoID(GLuint hwid);
c62d2520ac91e12cf4665c936f490dd2064152d3vboxsyncDECLEXPORT(GLuint) STATE_APIENTRY crStateGetBufferHWID(GLuint id);
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync#endif /* CR_STATE_BUFFEROBJECT_H */