e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync/* Copyright (c) 2001, Stanford University
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync * All rights reserved.
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync *
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync * See the file LICENSE.txt for information on redistributing this software.
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync */
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync#ifndef CR_STATE_PIXEL_H
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync#define CR_STATE_PIXEL_H
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync#include "state/cr_statetypes.h"
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync#include "state/cr_limits.h"
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync#include "cr_bits.h"
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync#include <iprt/cdefs.h>
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync#ifdef __cplusplus
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncextern "C" {
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync#endif
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsynctypedef struct {
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync CRbitvalue dirty[CR_MAX_BITARRAY];
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync CRbitvalue transfer[CR_MAX_BITARRAY];
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync CRbitvalue zoom[CR_MAX_BITARRAY];
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync CRbitvalue maps[CR_MAX_BITARRAY];
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync} CRPixelBits;
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsynctypedef struct {
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync GLboolean mapColor;
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync GLboolean mapStencil;
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync GLint indexShift;
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync GLint indexOffset;
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync GLcolorf scale;
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync GLfloat depthScale;
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync GLcolorf bias;
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync GLfloat depthBias;
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync GLfloat xZoom;
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync GLfloat yZoom;
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync GLint mapItoI[CR_MAX_PIXEL_MAP_TABLE];
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync GLint mapStoS[CR_MAX_PIXEL_MAP_TABLE];
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync GLfloat mapItoR[CR_MAX_PIXEL_MAP_TABLE];
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync GLfloat mapItoG[CR_MAX_PIXEL_MAP_TABLE];
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync GLfloat mapItoB[CR_MAX_PIXEL_MAP_TABLE];
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync GLfloat mapItoA[CR_MAX_PIXEL_MAP_TABLE];
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync GLfloat mapRtoR[CR_MAX_PIXEL_MAP_TABLE];
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync GLfloat mapGtoG[CR_MAX_PIXEL_MAP_TABLE];
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync GLfloat mapBtoB[CR_MAX_PIXEL_MAP_TABLE];
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync GLfloat mapAtoA[CR_MAX_PIXEL_MAP_TABLE];
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync GLint mapItoIsize;
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync GLint mapStoSsize;
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync GLint mapItoRsize;
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync GLint mapItoGsize;
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync GLint mapItoBsize;
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync GLint mapItoAsize;
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync GLint mapRtoRsize;
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync GLint mapGtoGsize;
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync GLint mapBtoBsize;
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync GLint mapAtoAsize;
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync} CRPixelState;
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncDECLEXPORT(void) crStatePixelInit( CRContext *ctx );
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncDECLEXPORT(void) crStatePixelDiff(CRPixelBits *bb, CRbitvalue *bitID,
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync CRContext *fromCtx, CRContext *toCtx);
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncDECLEXPORT(void) crStatePixelSwitch(CRPixelBits *bb, CRbitvalue *bitID,
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync CRContext *fromCtx, CRContext *toCtx);
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync#ifdef __cplusplus
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync}
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync#endif
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync#endif /* CR_STATE_PIXEL_H */