1 #ifndef WEBEVD_PNGARENA_H 2 #define WEBEVD_PNGARENA_H 18 if(dim >= maxdim)
return 0;
59 std::vector<std::unique_ptr<std::array<png_byte, kTotBytes>>>
data;
78 if(ix >= blocks.size()) blocks.resize(ix+1);
79 if(iy >= blocks[ix].
size()) blocks[ix].resize(iy+1, 0);
80 if(!blocks[ix][iy]) blocks[ix][iy] = arena.NewBlock();
88 if(ix >= blocks.size())
return 0;
89 if(iy >= blocks[ix].
size())
return 0;
90 if(!blocks[ix][iy])
return 0;
99 std::vector<std::vector<png_byte*>>
blocks;
JSONFormatter & operator<<(JSONFormatter &json, const art::InputTag &t)
png_byte & operator()(int x, int y, int c)
std::vector< std::unique_ptr< std::array< png_byte, kTotBytes > > > data
static constexpr int MipMapOffset(int dim, int maxdim)
friend void AnalyzeArena(const PNGArena &)
png_byte & operator()(int i, int x, int y, int c)
decltype(auto) constexpr size(T &&obj)
ADL-aware version of std::size.
const png_byte & operator()(int i, int x, int y, int c) const
std::vector< std::vector< png_byte * > > blocks
std::vector< bool > fHasMIP
PNGArena(const std::string &name)
png_byte operator()(int x, int y, int c) const
void WritePNGBytes(FILE *fout, int imgIdx, int dim)
byte bytes
Alias for common language habits.
std::vector< std::mutex * > fMIPLocks