e85b92d4df013df97a72864a412eb94eb3f70acevboxsync/* $Id$ */
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync/** @file
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync * Global State bits operation
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync */
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync/*
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync * Copyright (C) 2013 Oracle Corporation
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync *
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync * available from http://www.virtualbox.org. This file is free software;
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync * you can redistribute it and/or modify it under the terms of the GNU
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync * General Public License (GPL) as published by the Free Software
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync * Foundation, in version 2 as it comes in the "COPYING" file of the
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync */
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync#include <iprt/cdefs.h>
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync
79664e45c3d7123821dcd5de01991c6de96b8794vboxsync#include <cr_version.h>
79664e45c3d7123821dcd5de01991c6de96b8794vboxsync
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync#ifndef CRSTATE_BITS_OP
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync# error "CRSTATE_BITS_OP must be defined!"
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync#endif
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync#define _CRSTATE_BITS_OP_SIZEOF(_val) CRSTATE_BITS_OP(_val, RT_SIZEOFMEMB(CRStateBits, _val))
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync
79664e45c3d7123821dcd5de01991c6de96b8794vboxsync#ifndef CRSTATE_BITS_OP_VERSION
79664e45c3d7123821dcd5de01991c6de96b8794vboxsync# define CRSTATE_BITS_OP_VERSION SHCROGL_SSM_VERSION
79664e45c3d7123821dcd5de01991c6de96b8794vboxsync#endif
79664e45c3d7123821dcd5de01991c6de96b8794vboxsync
e85b92d4df013df97a72864a412eb94eb3f70acevboxsyncdo {
e85b92d4df013df97a72864a412eb94eb3f70acevboxsyncint i;
79664e45c3d7123821dcd5de01991c6de96b8794vboxsync#ifdef _CRSTATE_BITS_OP_STENCIL_V_33
79664e45c3d7123821dcd5de01991c6de96b8794vboxsync# error "_CRSTATE_BITS_OP_STENCIL_V_33 must no be defined!"
79664e45c3d7123821dcd5de01991c6de96b8794vboxsync#endif
79664e45c3d7123821dcd5de01991c6de96b8794vboxsync#if CRSTATE_BITS_OP_VERSION < SHCROGL_SSM_VERSION_WITH_FIXED_STENCIL
79664e45c3d7123821dcd5de01991c6de96b8794vboxsync# define _CRSTATE_BITS_OP_STENCIL_V_33
79664e45c3d7123821dcd5de01991c6de96b8794vboxsync#endif
79664e45c3d7123821dcd5de01991c6de96b8794vboxsync
79664e45c3d7123821dcd5de01991c6de96b8794vboxsync#ifdef _CRSTATE_BITS_OP_STENCIL_V_33
79664e45c3d7123821dcd5de01991c6de96b8794vboxsync# ifndef CRSTATE_BITS_OP_STENCIL_OP_V_33
79664e45c3d7123821dcd5de01991c6de96b8794vboxsync# error "CRSTATE_BITS_OP_STENCIL_OP_V_33 undefined!"
79664e45c3d7123821dcd5de01991c6de96b8794vboxsync# endif
79664e45c3d7123821dcd5de01991c6de96b8794vboxsync# ifndef CRSTATE_BITS_OP_STENCIL_FUNC_V_33
79664e45c3d7123821dcd5de01991c6de96b8794vboxsync# error "CRSTATE_BITS_OP_STENCIL_FUNC_V_33 undefined!"
79664e45c3d7123821dcd5de01991c6de96b8794vboxsync# endif
79664e45c3d7123821dcd5de01991c6de96b8794vboxsync#endif
79664e45c3d7123821dcd5de01991c6de96b8794vboxsync
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(attrib.dirty);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(buffer.dirty);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(buffer.enable);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(buffer.alphaFunc);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(buffer.depthFunc);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(buffer.blendFunc);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(buffer.logicOp);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(buffer.indexLogicOp);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(buffer.drawBuffer);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(buffer.readBuffer);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(buffer.indexMask);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(buffer.colorWriteMask);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(buffer.clearColor);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(buffer.clearIndex);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(buffer.clearDepth);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(buffer.clearAccum);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(buffer.depthMask);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync#ifdef CR_EXT_blend_color
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(buffer.blendColor);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync#endif
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync#if defined(CR_EXT_blend_minmax) || defined(CR_EXT_blend_subtract) || defined(CR_EXT_blend_logic_op)
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(buffer.blendEquation);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync#endif
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync#if defined(CR_EXT_blend_func_separate)
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(buffer.blendFuncSeparate);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync#endif
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync#ifdef CR_ARB_vertex_buffer_object
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(bufferobject.dirty);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(bufferobject.arrayBinding);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(bufferobject.elementsBinding);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync# ifdef CR_ARB_pixel_buffer_object
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(bufferobject.packBinding);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(bufferobject.unpackBinding);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync# endif
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync#endif
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(client.dirty);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(client.pack);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(client.unpack);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(client.enableClientState);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(client.clientPointer);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsyncCRSTATE_BITS_OP(client.v, GLCLIENT_BIT_ALLOC*sizeof(CRbitvalue));
e85b92d4df013df97a72864a412eb94eb3f70acevboxsyncCRSTATE_BITS_OP(client.n, GLCLIENT_BIT_ALLOC*sizeof(CRbitvalue));
e85b92d4df013df97a72864a412eb94eb3f70acevboxsyncCRSTATE_BITS_OP(client.c, GLCLIENT_BIT_ALLOC*sizeof(CRbitvalue));
e85b92d4df013df97a72864a412eb94eb3f70acevboxsyncCRSTATE_BITS_OP(client.i, GLCLIENT_BIT_ALLOC*sizeof(CRbitvalue));
e85b92d4df013df97a72864a412eb94eb3f70acevboxsyncCRSTATE_BITS_OP(client.e, GLCLIENT_BIT_ALLOC*sizeof(CRbitvalue));
e85b92d4df013df97a72864a412eb94eb3f70acevboxsyncCRSTATE_BITS_OP(client.s, GLCLIENT_BIT_ALLOC*sizeof(CRbitvalue));
e85b92d4df013df97a72864a412eb94eb3f70acevboxsyncCRSTATE_BITS_OP(client.f, GLCLIENT_BIT_ALLOC*sizeof(CRbitvalue));
e85b92d4df013df97a72864a412eb94eb3f70acevboxsyncfor (i=0; i<CR_MAX_TEXTURE_UNITS; i++)
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync{
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync CRSTATE_BITS_OP(client.t[i], GLCLIENT_BIT_ALLOC*sizeof(CRbitvalue));
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync}
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync#ifdef CR_NV_vertex_program
e85b92d4df013df97a72864a412eb94eb3f70acevboxsyncfor (i=0; i<CR_MAX_VERTEX_ATTRIBS; i++)
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync{
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync CRSTATE_BITS_OP(client.a[i], GLCLIENT_BIT_ALLOC*sizeof(CRbitvalue));
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync}
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync#endif
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(current.dirty);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsyncfor (i=0; i<CR_MAX_VERTEX_ATTRIBS; i++)
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync{
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync _CRSTATE_BITS_OP_SIZEOF(current.vertexAttrib[i]);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync}
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(current.edgeFlag);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(current.colorIndex);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(current.rasterPos);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(eval.dirty);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsyncfor (i=0; i<GLEVAL_TOT; i++)
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync{
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync _CRSTATE_BITS_OP_SIZEOF(eval.eval1D[i]);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync _CRSTATE_BITS_OP_SIZEOF(eval.eval2D[i]);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync _CRSTATE_BITS_OP_SIZEOF(eval.enable1D[i]);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync _CRSTATE_BITS_OP_SIZEOF(eval.enable2D[i]);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync}
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(eval.enable);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(eval.grid1D);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(eval.grid2D);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync#ifdef CR_NV_vertex_program
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync /*@todo Those seems to be unused?
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(eval.enableAttrib1D);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(eval.enableAttrib2D);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync */
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync#endif
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(feedback.dirty);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(selection.dirty);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(fog.dirty);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(fog.color);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(fog.index);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(fog.density);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(fog.start);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(fog.end);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(fog.mode);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(fog.enable);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync#ifdef CR_NV_fog_distance
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(fog.fogDistanceMode);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync#endif
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync#ifdef CR_EXT_fog_coord
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(fog.fogCoordinateSource);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync#endif
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(hint.dirty);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(hint.perspectiveCorrection);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(hint.pointSmooth);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(hint.lineSmooth);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(hint.polygonSmooth);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(hint.fog);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync#ifdef CR_EXT_clip_volume_hint
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(hint.clipVolumeClipping);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync#endif
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync#ifdef CR_ARB_texture_compression
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(hint.textureCompression);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync#endif
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync#ifdef CR_SGIS_generate_mipmap
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(hint.generateMipmap);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync#endif
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(lighting.dirty);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(lighting.shadeModel);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(lighting.colorMaterial);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(lighting.lightModel);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(lighting.material);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(lighting.enable);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsyncfor (i=0; i<CR_MAX_LIGHTS; ++i)
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync{
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync _CRSTATE_BITS_OP_SIZEOF(lighting.light[i].dirty);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync _CRSTATE_BITS_OP_SIZEOF(lighting.light[i].enable);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync _CRSTATE_BITS_OP_SIZEOF(lighting.light[i].ambient);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync _CRSTATE_BITS_OP_SIZEOF(lighting.light[i].diffuse);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync _CRSTATE_BITS_OP_SIZEOF(lighting.light[i].specular);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync _CRSTATE_BITS_OP_SIZEOF(lighting.light[i].position);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync _CRSTATE_BITS_OP_SIZEOF(lighting.light[i].attenuation);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync _CRSTATE_BITS_OP_SIZEOF(lighting.light[i].spot);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync}
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(line.dirty);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(line.enable);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(line.width);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(line.stipple);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(lists.dirty);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(lists.base);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(multisample.dirty);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(multisample.enable);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(multisample.sampleAlphaToCoverage);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(multisample.sampleAlphaToOne);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(multisample.sampleCoverage);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(multisample.sampleCoverageValue);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync#if CR_ARB_occlusion_query
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(occlusion.dirty);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync#endif
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(pixel.dirty);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(pixel.transfer);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(pixel.zoom);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(pixel.maps);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(point.dirty);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(point.enableSmooth);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(point.size);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync#ifdef CR_ARB_point_parameters
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(point.minSize);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(point.maxSize);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(point.fadeThresholdSize);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(point.distanceAttenuation);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync#endif
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync#ifdef CR_ARB_point_sprite
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(point.enableSprite);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsyncfor (i=0; i<CR_MAX_TEXTURE_UNITS; ++i)
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync{
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync _CRSTATE_BITS_OP_SIZEOF(point.coordReplacement[i]);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync}
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync#endif
9d60c2d3e53e65bb430517a9b7335061bc508b09vboxsync#if CRSTATE_BITS_OP_VERSION >= SHCROGL_SSM_VERSION_WITH_SPRITE_COORD_ORIGIN
9d60c2d3e53e65bb430517a9b7335061bc508b09vboxsync_CRSTATE_BITS_OP_SIZEOF(point.spriteCoordOrigin);
9d60c2d3e53e65bb430517a9b7335061bc508b09vboxsync#endif
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(polygon.dirty);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(polygon.enable);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(polygon.offset);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(polygon.mode);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(polygon.stipple);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(program.dirty);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(program.vpEnable);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(program.fpEnable);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(program.vpBinding);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(program.fpBinding);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsyncfor (i=0; i<CR_MAX_VERTEX_ATTRIBS; ++i)
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync{
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync _CRSTATE_BITS_OP_SIZEOF(program.vertexAttribArrayEnable[i]);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync _CRSTATE_BITS_OP_SIZEOF(program.map1AttribArrayEnable[i]);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync _CRSTATE_BITS_OP_SIZEOF(program.map2AttribArrayEnable[i]);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync}
e85b92d4df013df97a72864a412eb94eb3f70acevboxsyncfor (i=0; i<CR_MAX_VERTEX_PROGRAM_ENV_PARAMS; ++i)
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync{
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync _CRSTATE_BITS_OP_SIZEOF(program.vertexEnvParameter[i]);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync}
e85b92d4df013df97a72864a412eb94eb3f70acevboxsyncfor (i=0; i<CR_MAX_FRAGMENT_PROGRAM_ENV_PARAMS; ++i)
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync{
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync _CRSTATE_BITS_OP_SIZEOF(program.fragmentEnvParameter[i]);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync}
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(program.vertexEnvParameters);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(program.fragmentEnvParameters);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsyncfor (i=0; i<CR_MAX_VERTEX_PROGRAM_ENV_PARAMS/4; ++i)
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync{
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync _CRSTATE_BITS_OP_SIZEOF(program.trackMatrix[i]);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync}
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(regcombiner.dirty);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(regcombiner.enable);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(regcombiner.regCombinerVars);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(regcombiner.regCombinerColor0);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(regcombiner.regCombinerColor1);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsyncfor (i=0; i<CR_MAX_GENERAL_COMBINERS; ++i)
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync{
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync _CRSTATE_BITS_OP_SIZEOF(regcombiner.regCombinerStageColor0[i]);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync _CRSTATE_BITS_OP_SIZEOF(regcombiner.regCombinerStageColor1[i]);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync _CRSTATE_BITS_OP_SIZEOF(regcombiner.regCombinerInput[i]);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync _CRSTATE_BITS_OP_SIZEOF(regcombiner.regCombinerOutput[i]);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync}
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(regcombiner.regCombinerFinalInput);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(stencil.dirty);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(stencil.enable);
79664e45c3d7123821dcd5de01991c6de96b8794vboxsync#ifdef _CRSTATE_BITS_OP_STENCIL_V_33
79664e45c3d7123821dcd5de01991c6de96b8794vboxsync_CRSTATE_BITS_OP_SIZEOF(stencil.bufferRefs[CRSTATE_STENCIL_BUFFER_REF_ID_FRONT_AND_BACK].func);
79664e45c3d7123821dcd5de01991c6de96b8794vboxsync_CRSTATE_BITS_OP_SIZEOF(stencil.bufferRefs[CRSTATE_STENCIL_BUFFER_REF_ID_FRONT_AND_BACK].op);
79664e45c3d7123821dcd5de01991c6de96b8794vboxsyncfor (i = CRSTATE_STENCIL_BUFFER_REF_ID_FRONT_AND_BACK + 1; i < CRSTATE_STENCIL_BUFFER_REF_COUNT; ++i)
79664e45c3d7123821dcd5de01991c6de96b8794vboxsync{
79664e45c3d7123821dcd5de01991c6de96b8794vboxsync CRSTATE_BITS_OP_STENCIL_FUNC_V_33(i, stencil.bufferRefs[i].func);
79664e45c3d7123821dcd5de01991c6de96b8794vboxsync CRSTATE_BITS_OP_STENCIL_OP_V_33(i, stencil.bufferRefs[i].op);
79664e45c3d7123821dcd5de01991c6de96b8794vboxsync}
79664e45c3d7123821dcd5de01991c6de96b8794vboxsync_CRSTATE_BITS_OP_SIZEOF(stencil.clearValue);
79664e45c3d7123821dcd5de01991c6de96b8794vboxsync_CRSTATE_BITS_OP_SIZEOF(stencil.writeMask);
79664e45c3d7123821dcd5de01991c6de96b8794vboxsync#else
79664e45c3d7123821dcd5de01991c6de96b8794vboxsync_CRSTATE_BITS_OP_SIZEOF(stencil.enableTwoSideEXT);
79664e45c3d7123821dcd5de01991c6de96b8794vboxsync_CRSTATE_BITS_OP_SIZEOF(stencil.activeStencilFace);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(stencil.clearValue);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(stencil.writeMask);
79664e45c3d7123821dcd5de01991c6de96b8794vboxsyncfor (i = 0; i < CRSTATE_STENCIL_BUFFER_REF_COUNT; ++i)
79664e45c3d7123821dcd5de01991c6de96b8794vboxsync{
79664e45c3d7123821dcd5de01991c6de96b8794vboxsync _CRSTATE_BITS_OP_SIZEOF(stencil.bufferRefs[i].func);
79664e45c3d7123821dcd5de01991c6de96b8794vboxsync _CRSTATE_BITS_OP_SIZEOF(stencil.bufferRefs[i].op);
79664e45c3d7123821dcd5de01991c6de96b8794vboxsync}
79664e45c3d7123821dcd5de01991c6de96b8794vboxsync#endif
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(texture.dirty);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsyncfor (i=0; i<CR_MAX_TEXTURE_UNITS; ++i)
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync{
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync _CRSTATE_BITS_OP_SIZEOF(texture.enable[i]);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync _CRSTATE_BITS_OP_SIZEOF(texture.current[i]);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync _CRSTATE_BITS_OP_SIZEOF(texture.objGen[i]);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync _CRSTATE_BITS_OP_SIZEOF(texture.eyeGen[i]);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync _CRSTATE_BITS_OP_SIZEOF(texture.genMode[i]);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync _CRSTATE_BITS_OP_SIZEOF(texture.envBit[i]);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync}
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(transform.dirty);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(transform.matrixMode);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(transform.modelviewMatrix);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(transform.projectionMatrix);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(transform.colorMatrix);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(transform.textureMatrix);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(transform.programMatrix);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(transform.clipPlane);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(transform.enable);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(transform.base);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(viewport.dirty);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(viewport.v_dims);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(viewport.s_dims);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(viewport.enable);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync_CRSTATE_BITS_OP_SIZEOF(viewport.depth);
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync
e85b92d4df013df97a72864a412eb94eb3f70acevboxsync} while (0);
79664e45c3d7123821dcd5de01991c6de96b8794vboxsync
79664e45c3d7123821dcd5de01991c6de96b8794vboxsync#undef CRSTATE_BITS_OP_VERSION
79664e45c3d7123821dcd5de01991c6de96b8794vboxsync#undef _CRSTATE_BITS_OP_STENCIL_V_33