| 1227 | |
| 1228 | |
| 1229 | void |
| 1230 | ImageCacheTile::read (ImageCachePerThreadInfo *thread_info) |
| 1231 | { |
| 1232 | size_t size = memsize_needed (); |
| 1233 | ASSERT (memsize() == 0 && size > 0); |
| 1234 | m_pixels.reset (new char [m_pixels_size = size]); |
| 1235 | ImageCacheFile &file (m_id.file()); |
| 1236 | m_valid = file.read_tile (thread_info, m_id.subimage(), m_id.miplevel(), |
| 1237 | m_id.x(), m_id.y(), m_id.z(), |
| 1238 | file.datatype(m_id.subimage()), &m_pixels[0]); |
| 1239 | m_id.file().imagecache().incr_mem (size); |
| 1240 | if (! m_valid) { |
| 1241 | m_used = false; // Don't let it hold mem if invalid |
| 1242 | #if 0 |
| 1243 | std::cerr << "(1) error reading tile " << m_id.x() << ' ' << m_id.y() |
| 1244 | << ' ' << m_id.z() |
| 1245 | << " subimg=" << m_id.subimage() |
| 1246 | << " mip=" << m_id.miplevel() |
| 1247 | << " from " << file.filename() << "\n"; |
| 1248 | #endif |
| 1249 | } |
| 1250 | m_pixels_ready = true; |
| 1251 | // FIXME -- for shadow, fill in mindepth, maxdepth |
| 1252 | } |
| 1253 | |
| 1254 | |
| 1255 |
no test coverage detected