MCPcopy Create free account
hub / github.com/OpenPathGuidingLibrary/openpgl / PrecalculateTileInfo

Function PrecalculateTileInfo

third-party/tinyexr/tinyexr.h:5594–5632  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

5592}
5593
5594static bool PrecalculateTileInfo(std::vector<int>& num_x_tiles,
5595 std::vector<int>& num_y_tiles,
5596 const EXRHeader* exr_header) {
5597 int min_x = exr_header->data_window.min_x;
5598 int max_x = exr_header->data_window.max_x;
5599 int min_y = exr_header->data_window.min_y;
5600 int max_y = exr_header->data_window.max_y;
5601
5602 int num_x_levels = CalculateNumXLevels(exr_header);
5603
5604 if (num_x_levels < 0) {
5605 return false;
5606 }
5607
5608 int num_y_levels = CalculateNumYLevels(exr_header);
5609
5610 if (num_y_levels < 0) {
5611 return false;
5612 }
5613
5614 num_x_tiles.resize(size_t(num_x_levels));
5615 num_y_tiles.resize(size_t(num_y_levels));
5616
5617 if (!CalculateNumTiles(num_x_tiles,
5618 max_x - min_x + 1,
5619 exr_header->tile_size_x,
5620 exr_header->tile_rounding_mode)) {
5621 return false;
5622 }
5623
5624 if (!CalculateNumTiles(num_y_tiles,
5625 max_y - min_y + 1,
5626 exr_header->tile_size_y,
5627 exr_header->tile_rounding_mode)) {
5628 return false;
5629 }
5630
5631 return true;
5632}
5633
5634static void InitSingleResolutionOffsets(OffsetData& offset_data, size_t num_blocks) {
5635 offset_data.offsets.resize(1);

Callers 3

DecodeEXRImageFunction · 0.85

Calls 4

CalculateNumXLevelsFunction · 0.85
CalculateNumYLevelsFunction · 0.85
CalculateNumTilesFunction · 0.85
resizeMethod · 0.45

Tested by

no test coverage detected