regioncache.cpp 813 B

1234567891011121314151617181920212223242526272829303132
  1. #include "precomp.h"
  2. #include "regioncache.h"
  3. RegionServer *RegionCache::requestSkinRegion(const wchar_t *filename)
  4. {
  5. int n = -1;
  6. cache.findItem(filename, &n);
  7. if (n == -1) return NULL;
  8. RegionCacheItem *el = cache.enumItem(n);
  9. // if (el->region != NULL) el->region->getRegion()->debug();
  10. return el->region;
  11. }
  12. void RegionCache::cacheSkinRegion(const wchar_t *filename, api_region *r)
  13. {
  14. int n = -1;
  15. cache.findItem(filename, &n);
  16. if (n == -1) return;
  17. RegionCacheItem *el = cache.enumItem(n);
  18. ASSERT(el != NULL);
  19. if (el->region != NULL) {
  20. DebugString("Trying to cache a region but cache is already set!\n");
  21. return;
  22. }
  23. el->region = new CacheRegionServer(r);
  24. //el->region->getRegion()->debug();
  25. }
  26. PtrListQuickSorted<RegionCacheItem, SortRegionCacheItem> RegionCache::cache;