diff options
Diffstat (limited to 'src/VBox/GuestHost/OpenGL/include/state/cr_buffer.h')
-rw-r--r-- | src/VBox/GuestHost/OpenGL/include/state/cr_buffer.h | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/src/VBox/GuestHost/OpenGL/include/state/cr_buffer.h b/src/VBox/GuestHost/OpenGL/include/state/cr_buffer.h new file mode 100644 index 00000000..7a57aae9 --- /dev/null +++ b/src/VBox/GuestHost/OpenGL/include/state/cr_buffer.h @@ -0,0 +1,95 @@ +/* Copyright (c) 2001, Stanford University + * All rights reserved. + * + * See the file LICENSE.txt for information on redistributing this software. + */ + +#ifndef CR_STATE_BUFFER_H +#define CR_STATE_BUFFER_H + +#include "state/cr_statetypes.h" + +#include <iprt/cdefs.h> + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct { + CRbitvalue dirty[CR_MAX_BITARRAY]; + CRbitvalue enable[CR_MAX_BITARRAY]; + CRbitvalue alphaFunc[CR_MAX_BITARRAY]; + CRbitvalue depthFunc[CR_MAX_BITARRAY]; + CRbitvalue blendFunc[CR_MAX_BITARRAY]; + CRbitvalue logicOp[CR_MAX_BITARRAY]; + CRbitvalue indexLogicOp[CR_MAX_BITARRAY]; + CRbitvalue drawBuffer[CR_MAX_BITARRAY]; + CRbitvalue readBuffer[CR_MAX_BITARRAY]; + CRbitvalue indexMask[CR_MAX_BITARRAY]; + CRbitvalue colorWriteMask[CR_MAX_BITARRAY]; + CRbitvalue clearColor[CR_MAX_BITARRAY]; + CRbitvalue clearIndex[CR_MAX_BITARRAY]; + CRbitvalue clearDepth[CR_MAX_BITARRAY]; + CRbitvalue clearAccum[CR_MAX_BITARRAY]; + CRbitvalue depthMask[CR_MAX_BITARRAY]; +#ifdef CR_EXT_blend_color + CRbitvalue blendColor[CR_MAX_BITARRAY]; +#endif +#if defined(CR_EXT_blend_minmax) || defined(CR_EXT_blend_subtract) || defined(CR_EXT_blend_logic_op) + CRbitvalue blendEquation[CR_MAX_BITARRAY]; +#endif +#if defined(CR_EXT_blend_func_separate) + CRbitvalue blendFuncSeparate[CR_MAX_BITARRAY]; +#endif +} CRBufferBits; + +typedef struct { + GLboolean depthTest; + GLboolean blend; + GLboolean alphaTest; + GLboolean logicOp; + GLboolean indexLogicOp; + GLboolean dither; + GLboolean depthMask; + + GLenum alphaTestFunc; + GLfloat alphaTestRef; + GLenum depthFunc; + GLenum blendSrcRGB; + GLenum blendDstRGB; + GLenum blendSrcA; + GLenum blendDstA; + GLenum logicOpMode; + GLenum drawBuffer; + GLenum readBuffer; + GLint indexWriteMask; + GLcolorb colorWriteMask; + GLcolorf colorClearValue; + GLfloat indexClearValue; + GLdefault depthClearValue; + GLcolorf accumClearValue; +#ifdef CR_EXT_blend_color + GLcolorf blendColor; +#endif +#if defined(CR_EXT_blend_minmax) || defined(CR_EXT_blend_subtract) + GLenum blendEquation; +#endif + + GLint width, height; + GLint storedWidth, storedHeight; + GLvoid *pFrontImg; + GLvoid *pBackImg; +} CRBufferState; + +DECLEXPORT(void) crStateBufferInit(CRContext *ctx); + +DECLEXPORT(void) crStateBufferDiff(CRBufferBits *bb, CRbitvalue *bitID, + CRContext *fromCtx, CRContext *toCtx); +DECLEXPORT(void) crStateBufferSwitch(CRBufferBits *bb, CRbitvalue *bitID, + CRContext *fromCtx, CRContext *toCtx); + +#ifdef __cplusplus +} +#endif + +#endif /* CR_STATE_BUFFER_H */ |