1 /**************************************************************************
2 * tilecache.h -- routines to handle scenery tile caching
4 * Written by Curtis Olson, started January 1998.
6 * Copyright (C) 1997 Curtis L. Olson - curt@infoplane.com
8 * This program is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU General Public License as
10 * published by the Free Software Foundation; either version 2 of the
11 * License, or (at your option) any later version.
13 * This program is distributed in the hope that it will be useful, but
14 * WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 * General Public License for more details.
18 * You should have received a copy of the GNU General Public License
19 * along with this program; if not, write to the Free Software
20 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
23 * (Log is kept at end of this file)
24 **************************************************************************/
38 #include <Scenery/bucketutils.h>
39 #include <Include/fg_types.h>
41 /* For best results ... i.e. to avoid tile load problems and blank areas
43 * FG_TILE_CACHE_SIZE >= FG_LOCAL_X_Y + 2*max(FG_LOCAL_X, FG_LOCAL_Y) + 1 */
44 #define FG_TILE_CACHE_SIZE 100
47 /* Tile cache record */
49 struct fgBUCKET tile_bucket;
51 struct fgCartesianPoint local_ref;
52 double bounding_radius;
58 extern struct fgTILE tile_cache[FG_TILE_CACHE_SIZE];
61 /* Initialize the tile cache subsystem */
62 void fgTileCacheInit( void );
64 /* Search for the specified "bucket" in the cache */
65 int fgTileCacheExists( struct fgBUCKET *p );
67 /* Return index of next available slot in tile cache */
68 int fgTileCacheNextAvail( void );
70 /* Fill in a tile cache entry with real data for the specified bucket */
71 void fgTileCacheEntryFillIn( int index, struct fgBUCKET *p );
73 /* Return info for a tile cache entry */
74 void fgTileCacheEntryInfo( int index, GLint *display_list,
75 struct fgCartesianPoint *local_ref );
78 #endif /* _TILECACHE_H */
82 /* Revision 1.6 1998/02/18 15:07:10 curt
83 /* Tweaks to build with SGI OpenGL (and therefor hopefully other accelerated
84 /* drivers will work.)
86 * Revision 1.5 1998/02/16 13:39:45 curt
87 * Miscellaneous weekend tweaks. Fixed? a cache problem that caused whole
88 * tiles to occasionally be missing.
90 * Revision 1.4 1998/01/31 00:43:27 curt
91 * Added MetroWorks patches from Carmen Volpe.
93 * Revision 1.3 1998/01/29 00:51:40 curt
94 * First pass at tile cache, dynamic tile loading and tile unloading now works.
96 * Revision 1.2 1998/01/27 00:48:04 curt
97 * Incorporated Paul Bleisch's <bleisch@chromatic.com> new debug message
98 * system and commandline/config file processing code.
100 * Revision 1.1 1998/01/24 00:03:29 curt