1/**************************************************************************
2
3Copyright 2000, 2001 ATI Technologies Inc., Ontario, Canada, and
4                     VA Linux Systems Inc., Fremont, California.
5
6All Rights Reserved.
7
8Permission is hereby granted, free of charge, to any person obtaining
9a copy of this software and associated documentation files (the
10"Software"), to deal in the Software without restriction, including
11without limitation the rights to use, copy, modify, merge, publish,
12distribute, sublicense, and/or sell copies of the Software, and to
13permit persons to whom the Software is furnished to do so, subject to
14the following conditions:
15
16The above copyright notice and this permission notice (including the
17next paragraph) shall be included in all copies or substantial
18portions of the Software.
19
20THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
21EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
22MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
23IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE
24LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
25OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
26WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
27
28**************************************************************************/
29
30/*
31 * Authors:
32 *   Kevin E. Martin <martin@valinux.com>
33 *   Gareth Hughes <gareth@valinux.com>
34 *
35 */
36
37#ifndef __RADEON_STATE_H__
38#define __RADEON_STATE_H__
39
40#include "radeon_context.h"
41
42extern void radeonInitState( r100ContextPtr rmesa );
43extern void radeonInitStateFuncs( struct gl_context *ctx );
44
45extern void radeonUpdateMaterial( struct gl_context *ctx );
46
47extern void radeonUpdateViewportOffset( struct gl_context *ctx );
48extern void radeonUpdateWindow( struct gl_context *ctx );
49extern void radeonUpdateDrawBuffer( struct gl_context *ctx );
50extern void radeonUploadTexMatrix( r100ContextPtr rmesa,
51				   int unit, GLboolean swapcols );
52
53extern GLboolean radeonValidateState( struct gl_context *ctx );
54
55
56extern void radeonFallback( struct gl_context *ctx, GLuint bit, GLboolean mode );
57#define FALLBACK( rmesa, bit, mode ) do {				\
58   if ( 0 ) fprintf( stderr, "FALLBACK in %s: #%d=%d\n",		\
59		     __FUNCTION__, bit, mode );				\
60   radeonFallback( rmesa->radeon.glCtx, bit, mode );				\
61} while (0)
62
63
64#define MODEL_PROJ 0
65#define MODEL      1
66#define MODEL_IT   2
67#define TEXMAT_0   3
68#define TEXMAT_1   4
69#define TEXMAT_2   5
70
71#endif
72