MCPcopy Create free account
hub / github.com/ARM-software/astc-encoder / isValidTile

Function isValidTile

Source/ThirdParty/tinyexr.h:7220–7271  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

7218}
7219
7220static bool isValidTile(const EXRHeader* exr_header,
7221 const OffsetData& offset_data,
7222 int dx, int dy, int lx, int ly) {
7223 if (lx < 0 || ly < 0 || dx < 0 || dy < 0) return false;
7224 int num_x_levels = offset_data.num_x_levels;
7225 int num_y_levels = offset_data.num_y_levels;
7226 switch (exr_header->tile_level_mode) {
7227 case TINYEXR_TILE_ONE_LEVEL:
7228
7229 if (lx == 0 &&
7230 ly == 0 &&
7231 offset_data.offsets.size() > 0 &&
7232 offset_data.offsets[0].size() > static_cast<size_t>(dy) &&
7233 offset_data.offsets[0][size_t(dy)].size() > static_cast<size_t>(dx)) {
7234 return true;
7235 }
7236
7237 break;
7238
7239 case TINYEXR_TILE_MIPMAP_LEVELS:
7240
7241 if (lx < num_x_levels &&
7242 ly < num_y_levels &&
7243 offset_data.offsets.size() > static_cast<size_t>(lx) &&
7244 offset_data.offsets[size_t(lx)].size() > static_cast<size_t>(dy) &&
7245 offset_data.offsets[size_t(lx)][size_t(dy)].size() > static_cast<size_t>(dx)) {
7246 return true;
7247 }
7248
7249 break;
7250
7251 case TINYEXR_TILE_RIPMAP_LEVELS:
7252 {
7253 size_t idx = static_cast<size_t>(lx) + static_cast<size_t>(ly)* static_cast<size_t>(num_x_levels);
7254 if (lx < num_x_levels &&
7255 ly < num_y_levels &&
7256 (offset_data.offsets.size() > idx) &&
7257 offset_data.offsets[idx].size() > static_cast<size_t>(dy) &&
7258 offset_data.offsets[idx][size_t(dy)].size() > static_cast<size_t>(dx)) {
7259 return true;
7260 }
7261 }
7262
7263 break;
7264
7265 default:
7266
7267 return false;
7268 }
7269
7270 return false;
7271}
7272
7273static bool ReconstructTileOffsets(OffsetData& offset_data,
7274 const EXRHeader* exr_header,

Callers 1

ReconstructTileOffsetsFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected