cr_point.h revision e0e0c19eefceaf5d4ec40f9466b58a771f50e799
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync/* Copyright (c) 2001, Stanford University
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * All rights reserved.
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync *
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * See the file LICENSE.txt for information on redistributing this software.
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#ifndef CR_STATE_LINE_H
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define SR_STATE_LINE_H
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#include "state/cr_statetypes.h"
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#include <iprt/cdefs.h>
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#ifdef __cplusplus
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern "C" {
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#endif
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsynctypedef struct {
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync CRbitvalue enableSmooth[CR_MAX_BITARRAY];
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync CRbitvalue size[CR_MAX_BITARRAY];
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#ifdef CR_ARB_point_parameters
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync CRbitvalue minSize[CR_MAX_BITARRAY];
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync CRbitvalue maxSize[CR_MAX_BITARRAY];
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync CRbitvalue fadeThresholdSize[CR_MAX_BITARRAY];
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync CRbitvalue distanceAttenuation[CR_MAX_BITARRAY];
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#endif
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#ifdef CR_ARB_point_sprite
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync CRbitvalue enableSprite[CR_MAX_BITARRAY];
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync CRbitvalue coordReplacement[CR_MAX_TEXTURE_UNITS][CR_MAX_BITARRAY];
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#endif
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync CRbitvalue dirty[CR_MAX_BITARRAY];
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync} CRPointBits;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsynctypedef struct {
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync GLboolean pointSmooth;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync GLfloat pointSize;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#ifdef CR_ARB_point_parameters
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync GLfloat minSize, maxSize;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync GLfloat fadeThresholdSize;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync GLfloat distanceAttenuation[3];
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#endif
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#ifdef CR_ARB_point_sprite
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync GLboolean pointSprite;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync GLboolean coordReplacement[CR_MAX_TEXTURE_UNITS];
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#endif
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync} CRPointState;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncDECLEXPORT(void) crStatePointInit (CRContext *ctx);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncDECLEXPORT(void) crStatePointDiff(CRPointBits *bb, CRbitvalue *bitID,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync CRContext *fromCtx, CRContext *toCtx);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncDECLEXPORT(void) crStatePointSwitch(CRPointBits *bb, CRbitvalue *bitID,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync CRContext *fromCtx, CRContext *toCtx);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#ifdef __cplusplus
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync}
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#endif
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#endif /* CR_STATE_LINE_H */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync