/* XBOX_TEXTURE_CACHE.C symbols in this file: 001AE410 0020: _texture_cache_delete (0000) 001AE430 0010: _texture_cache_open (0000) 001AE440 0010: _texture_cache_idle (0000) 001AE450 0090: _texture_cache_bitmap_new (0000) 001AE4E0 0040: _texture_cache_bitmap_delete (0000) 001AE520 00e0: _texture_cache_steal_memory (0000) 001AE600 0060: _texture_cache_return_memory (0000) 001AE660 0030: _code_001ae660 (0000) 001AE690 0090: _bitmap_format_to_d3d_format (0000) 001AE720 0090: _bitmap_format_to_d3d_linear_format (0000) 001AE7B0 0030: _code_001ae7b0 (0000) 001AE7E0 0010: _code_001ae7e0 (0000) 001AE7F0 0010: _code_001ae7f0 (0000) 001AE800 0010: _code_001ae800 (0000) 001AE810 0010: _code_001ae810 (0000) 001AE820 0020: _texture_cache_flush (0000) 001AE840 0040: _code_001ae840 (0000) 001AE880 00a0: _code_001ae880 (0000) 001AE920 0150: _code_001ae920 (0000) 001AEA70 0100: _code_001aea70 (0000) 001AEB70 00b0: _texture_cache_new (0000) 001AEC20 0050: _texture_cache_close (0000) 001AEC70 00e0: _code_001aec70 (0000) 001AED50 0310: _texture_cache_debug_render (0000) 001AF060 01f0: __texture_cache_bitmap_get_hardware_format (0000) 002A7BD0 0090: _rdata_002a7bd0 (0000) 002A7C60 002e: ??_C@_0CO@EKKOPCBA@?$CBTEST_FLAG?$CIbitmap?9?$DOflags?0?5_bitma@ (0000) 002A7C90 002a: ??_C@_0CK@BDDINKJM@c?3?2halo?2SOURCE?2cache?2xbox_textur@ (0000) 002A7CBC 002a: ??_C@_0CK@MBCIMJKB@?$CBxbox_texture_cache_globals?4stol@ (0000) 002A7CE8 0017: ??_C@_0BH@KHBOCJGF@remaining_page_count?$DO0?$AA@ (0000) 002A7D00 0029: ??_C@_0CJ@MMJPDHMC@xbox_texture_cache_globals?4stole@ (0000) 002A7D2C 0014: ??_C@_0BE@ILIIMHBE@table?$FLformat?$FN?$CB?$DNNONE?$AA@ (0000) 002A7D40 0030: ??_C@_0DA@KFGIBCJF@texture?9?$DObitmap?9?$DOcache_block_ind@ (0000) 002A7D70 0028: ??_C@_0CI@OLENPGPB@xbox_texture_cache_globals?4base_@ (0000) 002A7D98 0021: ??_C@_0CB@NHIMPHNC@xbox_texture_cache_globals?4cache@ (0000) 002A7DBC 0013: ??_C@_0BD@GPJOJANJ@xbox?5texture?5cache?$AA@ (0000) 002A7DD0 0024: ??_C@_0CE@IHAAKOAF@xbox_texture_cache_globals?4textu@ (0000) 002A7DF4 000d: ??_C@_0N@HJPPIHML@xbox?5texture?$AA@ (0000) 002A7E04 0025: ??_C@_0CF@LJFHGILO@new_texture_index?$DN?$DNcache_block_i@ (0000) 002A7E2C 000b: ??_C@_0L@PCGBDGNI@?$HMt?$CFd?$HMt?$CFs?$CFs?$AA@ (0000) 002A7E38 0044: ??_C@_0EE@BCDFBEJK@YOU?5GOT?5STABBED?$CB?$CB?$CB?$CB?5double?9click@ (0000) 004D1198 1618: _bss_004d1198 (0000) _texture_cache_debug_options (1610) _debug_texture_cache (1612) */ /* ---------- headers */ #include "cseries/cseries.h" #include "memory/data.h" #include "memory/lruv_cache.h" /* ---------- constants */ /* ---------- macros */ /* ---------- structures */ struct xbox_texture_cache_globals_prefix { byte reserved0000[0x1600]; struct data_array *textures; byte reserved1604[4]; struct lruv_cache *cache; boolean stolen_memory; byte reserved160D[3]; }; typedef char verify_xbox_texture_cache_textures_offset[ offsetof( struct xbox_texture_cache_globals_prefix, textures) == 0x1600 ? 1 : -1]; typedef char verify_xbox_texture_cache_cache_offset[ offsetof( struct xbox_texture_cache_globals_prefix, cache) == 0x1608 ? 1 : -1]; typedef char verify_xbox_texture_cache_stolen_memory_offset[ offsetof( struct xbox_texture_cache_globals_prefix, stolen_memory) == 0x160C ? 1 : -1]; typedef char verify_xbox_texture_cache_globals_prefix_size[ sizeof(struct xbox_texture_cache_globals_prefix) == 0x1610 ? 1 : -1]; /* ---------- prototypes */ int __stdcall D3DDevice_IsBusy( void); void __stdcall D3DDevice_KickPushBuffer( void); /* ---------- globals */ extern struct xbox_texture_cache_globals_prefix bss_004d1198; #define xbox_texture_cache_globals bss_004d1198 /* ---------- public code */ void texture_cache_delete( void) { data_dispose(bss_004d1198.textures); lruv_delete(bss_004d1198.cache); return; } void texture_cache_open( void) { data_make_valid(bss_004d1198.textures); return; } void texture_cache_idle( void) { lruv_idle(bss_004d1198.cache); return; } void texture_cache_flush( void) { D3DDevice_KickPushBuffer(); D3DDevice_IsBusy(); lruv_flush(xbox_texture_cache_globals.cache); return; } void texture_cache_close( void) { match_assert( "c:\\halo\\SOURCE\\cache\\xbox_texture_cache.c", 133, !xbox_texture_cache_globals.stolen_memory); texture_cache_flush(); data_make_invalid(xbox_texture_cache_globals.textures); return; } /* ---------- private code */