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