MCPcopy Create free account
hub / github.com/RenderKit/embree / isValidTile

Function isValidTile

tutorials/common/image/tinyexr.h:5779–5830  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

5777}
5778
5779static bool isValidTile(const EXRHeader* exr_header,
5780 const OffsetData& offset_data,
5781 int dx, int dy, int lx, int ly) {
5782 if (lx < 0 || ly < 0 || dx < 0 || dy < 0) return false;
5783 int num_x_levels = offset_data.num_x_levels;
5784 int num_y_levels = offset_data.num_y_levels;
5785 switch (exr_header->tile_level_mode) {
5786 case TINYEXR_TILE_ONE_LEVEL:
5787
5788 if (lx == 0 &&
5789 ly == 0 &&
5790 offset_data.offsets.size() > 0 &&
5791 offset_data.offsets[0].size() > static_cast<size_t>(dy) &&
5792 offset_data.offsets[0][size_t(dy)].size() > static_cast<size_t>(dx)) {
5793 return true;
5794 }
5795
5796 break;
5797
5798 case TINYEXR_TILE_MIPMAP_LEVELS:
5799
5800 if (lx < num_x_levels &&
5801 ly < num_y_levels &&
5802 offset_data.offsets.size() > static_cast<size_t>(lx) &&
5803 offset_data.offsets[size_t(lx)].size() > static_cast<size_t>(dy) &&
5804 offset_data.offsets[size_t(lx)][size_t(dy)].size() > static_cast<size_t>(dx)) {
5805 return true;
5806 }
5807
5808 break;
5809
5810 case TINYEXR_TILE_RIPMAP_LEVELS:
5811 {
5812 size_t idx = static_cast<size_t>(lx) + static_cast<size_t>(ly)* static_cast<size_t>(num_x_levels);
5813 if (lx < num_x_levels &&
5814 ly < num_y_levels &&
5815 (offset_data.offsets.size() > idx) &&
5816 offset_data.offsets[idx].size() > static_cast<size_t>(dy) &&
5817 offset_data.offsets[idx][size_t(dy)].size() > static_cast<size_t>(dx)) {
5818 return true;
5819 }
5820 }
5821
5822 break;
5823
5824 default:
5825
5826 return false;
5827 }
5828
5829 return false;
5830}
5831
5832static bool ReconstructTileOffsets(OffsetData& offset_data,
5833 const EXRHeader* exr_header,

Callers 1

ReconstructTileOffsetsFunction · 0.85

Calls 1

sizeMethod · 0.45

Tested by

no test coverage detected