/* * Copyright (c) 1993-1995 Argonaut Technologies Limited. All rights reserved. * * $Id: state.h 2.18 1997/05/22 14:45:10 jon Exp $ * $Locker: $ * * Renderer state info */ #ifndef _STATE_H_ #define _STATE_H_ #ifdef __cplusplus extern "C" { #endif /* * Some pre-defined limits */ #define MAX_STATE_STACK 32 #define MAX_STATE_LIGHTS 48 #define MAX_STATE_CLIP_PLANES 6 /* * Bits used to create a mask for each part of the state * * There are some global defines for these, so use them */ enum { MASK_STATE_CULL = BR_STATE_CULL, MASK_STATE_SURFACE = BR_STATE_SURFACE, MASK_STATE_PRIMITIVE= BR_STATE_PRIMITIVE, MASK_STATE_MATRIX = BR_STATE_MATRIX, MASK_STATE_ENABLE = BR_STATE_ENABLE, MASK_STATE_LIGHT = BR_STATE_LIGHT, MASK_STATE_CLIP = BR_STATE_CLIP, MASK_STATE_BOUNDS = BR_STATE_BOUNDS, MASK_STATE_CACHE = BR_STATE_CACHE, MASK_STATE_LOCAL = ( MASK_STATE_CULL| MASK_STATE_SURFACE| MASK_STATE_MATRIX| MASK_STATE_ENABLE| MASK_STATE_LIGHT| MASK_STATE_CLIP| MASK_STATE_BOUNDS) }; /* * Mask of those state parts which are reflected in the cache */ #define MASK_CACHED_STATES (MASK_STATE_CULL | MASK_STATE_SURFACE) /* * state.enable.flags */ enum { ENBL_CULL_BIT, ENBL_TRANSFORM_BIT, ENBL_SURFACE_BIT, ENBL_CLIPPING_BIT, ENBL_BOUNDS_BIT, ENBL_RENDER_BIT, }; enum { ENBL_CULL = (1<