Tizen 2.0 Release
[profile/ivi/osmesa.git] / src / mesa / drivers / dri / tdfx / tdfx_texman.h
1 /* -*- mode: c; c-basic-offset: 3 -*-
2  *
3  * Copyright 2000 VA Linux Systems Inc., Fremont, California.
4  *
5  * All Rights Reserved.
6  *
7  * Permission is hereby granted, free of charge, to any person obtaining a
8  * copy of this software and associated documentation files (the "Software"),
9  * to deal in the Software without restriction, including without limitation
10  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
11  * and/or sell copies of the Software, and to permit persons to whom the
12  * Software is furnished to do so, subject to the following conditions:
13  *
14  * The above copyright notice and this permission notice (including the next
15  * paragraph) shall be included in all copies or substantial portions of the
16  * Software.
17  *
18  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
21  * VA LINUX SYSTEMS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
22  * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
23  * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
24  * SOFTWARE.
25  */
26
27 /*
28  * Original rewrite:
29  *      Gareth Hughes <gareth@valinux.com>, 29 Sep - 1 Oct 2000
30  *
31  * Authors:
32  *      Gareth Hughes <gareth@valinux.com>
33  *      Brian Paul <brianp@valinux.com>
34  *
35  */
36
37 #ifndef __TDFX_TEXMAN_H__
38 #define __TDFX_TEXMAN_H__
39
40
41 #include "tdfx_lock.h"
42
43
44 extern void tdfxTMInit( tdfxContextPtr fxMesa );
45
46 extern void tdfxTMClose( tdfxContextPtr fxMesa );
47
48 extern void tdfxTMDownloadTexture(tdfxContextPtr fxMesa,
49                                   struct gl_texture_object *tObj);
50
51 extern void tdfxTMReloadMipMapLevel( struct gl_context *ctx,
52                                      struct gl_texture_object *tObj,
53                                      GLint level );
54
55 extern void tdfxTMMoveInTM_NoLock( tdfxContextPtr fxMesa,
56                                    struct gl_texture_object *tObj,
57                                    FxU32 targetTMU );
58
59 extern void tdfxTMMoveOutTM_NoLock( tdfxContextPtr fxMesa,
60                                     struct gl_texture_object *tObj );
61
62 extern void tdfxTMFreeTexture( tdfxContextPtr fxMesa,
63                                struct gl_texture_object *tObj );
64
65 extern void tdfxTMRestoreTextures_NoLock( tdfxContextPtr fxMesa );
66
67
68 #define tdfxTMMoveInTM( fxMesa, tObj, targetTMU )               \
69    do {                                                         \
70       LOCK_HARDWARE( fxMesa );                                  \
71       tdfxTMMoveInTM_NoLock( fxMesa, tObj, targetTMU );         \
72       UNLOCK_HARDWARE( fxMesa );                                \
73    } while (0)
74
75 #define tdfxTMMoveOutTM( fxMesa, tObj )                         \
76    do {                                                         \
77       LOCK_HARDWARE( fxMesa );                                  \
78       tdfxTMMoveOutTM_NoLock( fxMesa, tObj );                   \
79       UNLOCK_HARDWARE( fxMesa );                                \
80    } while (0)
81
82
83 #endif