253
257
Header hd (header);
254
258
insertChannels (hd, rgbaChannels, name);
255
259
hd.setTileDescription (TileDescription (tileXSize, tileYSize, mode, rmode));
256
_outputFile = new TiledOutputFile (name, hd);
260
_outputFile = new TiledOutputFile (name, hd, numThreads);
258
262
if (rgbaChannels & WRITE_Y)
259
263
_toYa = new ToYa (*_outputFile, rgbaChannels);
276
281
Header hd (header);
277
282
insertChannels (hd, rgbaChannels, os.fileName());
278
283
hd.setTileDescription (TileDescription (tileXSize, tileYSize, mode, rmode));
279
_outputFile = new TiledOutputFile (os, hd);
284
_outputFile = new TiledOutputFile (os, hd, numThreads);
281
286
if (rgbaChannels & WRITE_Y)
282
287
_toYa = new ToYa (*_outputFile, rgbaChannels);
313
319
insertChannels (hd, rgbaChannels, name);
314
320
hd.setTileDescription (TileDescription (tileXSize, tileYSize, mode, rmode));
315
_outputFile = new TiledOutputFile (name, hd);
321
_outputFile = new TiledOutputFile (name, hd, numThreads);
317
323
if (rgbaChannels & WRITE_Y)
318
324
_toYa = new ToYa (*_outputFile, rgbaChannels);
348
355
insertChannels (hd, rgbaChannels, name);
349
356
hd.setTileDescription (TileDescription (tileXSize, tileYSize, mode, rmode));
350
_outputFile = new TiledOutputFile (name, hd);
357
_outputFile = new TiledOutputFile (name, hd, numThreads);
352
359
if (rgbaChannels & WRITE_Y)
353
360
_toYa = new ToYa (*_outputFile, rgbaChannels);
573
581
TiledRgbaOutputFile::writeTile (int dx, int dy, int l)
576
586
_toYa->writeTile (dx, dy, l, l);
578
590
_outputFile->writeTile (dx, dy, l);
583
596
TiledRgbaOutputFile::writeTile (int dx, int dy, int lx, int ly)
586
601
_toYa->writeTile (dx, dy, lx, ly);
588
605
_outputFile->writeTile (dx, dy, lx, ly);
592
class TiledRgbaInputFile::FromYa
611
TiledRgbaOutputFile::writeTiles
612
(int dxMin, int dxMax, int dyMin, int dyMax, int lx, int ly)
618
for (int dy = dyMin; dy <= dyMax; dy++)
619
for (int dx = dxMin; dx <= dxMax; dx++)
620
_toYa->writeTile (dx, dy, lx, ly);
624
_outputFile->writeTiles (dxMin, dxMax, dyMin, dyMax, lx, ly);
629
TiledRgbaOutputFile::writeTiles
630
(int dxMin, int dxMax, int dyMin, int dyMax, int l)
632
writeTiles (dxMin, dxMax, dyMin, dyMax, l, l);
636
class TiledRgbaInputFile::FromYa: public Mutex
701
TiledRgbaInputFile::TiledRgbaInputFile (const char name[]):
702
_inputFile (new TiledInputFile (name)),
745
TiledRgbaInputFile::TiledRgbaInputFile (const char name[], int numThreads):
746
_inputFile (new TiledInputFile (name, numThreads)),
705
749
if (channels() & WRITE_Y)
710
TiledRgbaInputFile::TiledRgbaInputFile (IStream &is):
711
_inputFile (new TiledInputFile (is)),
754
TiledRgbaInputFile::TiledRgbaInputFile (IStream &is, int numThreads):
755
_inputFile (new TiledInputFile (is, numThreads)),
714
758
if (channels() & WRITE_Y)
973
1018
TiledRgbaInputFile::readTile (int dx, int dy, int l)
1022
Lock lock (*_fromYa);
976
1023
_fromYa->readTile (dx, dy, l, l);
978
1027
_inputFile->readTile (dx, dy, l);
983
1033
TiledRgbaInputFile::readTile (int dx, int dy, int lx, int ly)
1037
Lock lock (*_fromYa);
986
1038
_fromYa->readTile (dx, dy, lx, ly);
988
1042
_inputFile->readTile (dx, dy, lx, ly);
1048
TiledRgbaInputFile::readTiles (int dxMin, int dxMax, int dyMin, int dyMax,
1053
Lock lock (*_fromYa);
1055
for (int dy = dyMin; dy <= dyMax; dy++)
1056
for (int dx = dxMin; dx <= dxMax; dx++)
1057
_fromYa->readTile (dx, dy, lx, ly);
1061
_inputFile->readTiles (dxMin, dxMax, dyMin, dyMax, lx, ly);
1066
TiledRgbaInputFile::readTiles (int dxMin, int dxMax, int dyMin, int dyMax,
1069
readTiles (dxMin, dxMax, dyMin, dyMax, l, l);
1081
TiledRgbaOutputFile::breakTile (int dx, int dy, int lx, int ly,
1082
int offset, int length, char c)
1084
_outputFile->breakTile (dx, dy, lx, ly, offset, length, c);
999
1088
} // namespace Imf