64struct TileComponentWindow;
66struct TileComponentWindowBase;
78 Rect32 tileCompWindowUnreduced,
Rect32 tileCompUnreduced, uint32_t FILTER_WIDTH)
88 (resno == 0) ? (uint8_t)(numresolutions - 1U) : (uint8_t)(numresolutions - resno);
94 tileCompUnreduced, 2 * FILTER_WIDTH, resWindowPadded);
99 bandWindow.setOrigin(band,
true);
100 assert(bandWindow.intersection(band).setOrigin(bandWindow,
true) == bandWindow);
140 auto band =
Rect32(tileCompBand);
173 Buf2dAligned* bandWindowsBuffersPaddedXH,
bool absolute)
183 auto splitResWindowBounds =
Rect32(resWindowBuffer->
x0, bandWindowsBuffersPaddedXL->
y0,
184 resWindowBuffer->
x1, bandWindowsBuffersPaddedXL->
y1);
187 splitResWindowBounds =
273 if(!b->alloc2d(clear))
316 Rect32 unreducedTileCompWindow,
Rect32 unreducedTileComp,
317 uint32_t padding,
Rect32& paddedResWindow)
322 assert(orientation == 0);
325 paddedResWindow = unreducedTileCompWindow;
326 auto oneLessDecompTile = unreducedTileComp;
333 paddedResWindow.
setOrigin(oneLessDecompTile,
true);
eBandOrientation
Definition t1_common.h:28
@ BAND_ORIENT_HH
Definition t1_common.h:32
@ BAND_ORIENT_LL
Definition t1_common.h:29
@ BAND_ORIENT_LH
Definition t1_common.h:31
@ BAND_NUM_ORIENTATIONS
Definition t1_common.h:33
@ BAND_ORIENT_HL
Definition t1_common.h:30
ResWindow.
Definition CompressedChunkCache.h:36
eSplitOrientation
Definition ResWindow.h:57
@ SPLIT_H
Definition ResWindow.h:59
@ SPLIT_L
Definition ResWindow.h:58
@ SPLIT_NUM_ORIENTATIONS
Definition ResWindow.h:60
Rect< uint32_t > Rect32
Definition geometry.h:64
T ceildivpow2(T a, uint8_t b)
Definition intmath.h:39
T x1
Definition geometry.h:192
Rect< T > & clip_IN_PLACE(const Rect &rhs)
Definition geometry.h:372
Rect< T > intersection(const Rect< T > &rhs) const
Definition geometry.h:347
Rect< T > & toRelative(void)
Definition geometry.h:224
T x0
Definition geometry.h:192
Rect< T > & setOrigin(T origx, T origy, bool absolute)
Definition geometry.h:194
T y0
Definition geometry.h:192
Rect< T > & grow_IN_PLACE(T boundary)
Definition geometry.h:444
T y1
Definition geometry.h:192
Rect< T > & toAbsolute(void)
Definition geometry.h:234
Definition ResSimple.h:26
static Rect32 getBandWindow(uint8_t numDecomps, uint8_t orientation, Rect32 tileCompWindowUnreduced)
Get band window (in tile component coordinates) for specified number of decompositions.
Definition ResSimple.h:60
uint8_t numTileBandWindows
Definition ResSimple.h:92
void genSplitWindowBuffers(Buf2dAligned **resWindowBufferSplit, Buf2dAligned *resWindowBuffer, Buf2dAligned *bandWindowsBuffersPaddedXL, Buf2dAligned *bandWindowsBuffersPaddedXH, bool absolute)
Definition ResWindow.h:171
uint32_t filterWidth_
Definition ResWindow.h:376
ResSimple tileCompAtRes_
Definition ResWindow.h:378
Buf2dAligned * resWindowBufferSplit_[SPLIT_NUM_ORIENTATIONS]
Definition ResWindow.h:382
bool allocated_
Definition ResWindow.h:375
Buf2dAligned * resWindowBufferHighestResREL_
Definition ResWindow.h:391
std::vector< Buf2dAligned * > bandWindowsBuffersPadded_
Definition ResWindow.h:383
ResWindow(uint8_t numresolutions, uint8_t resno, Buf2dAligned *resWindowHighestResREL, ResSimple tileCompAtRes, ResSimple tileCompAtLowerRes, Rect32 resWindow, Rect32 tileCompWindowUnreduced, Rect32 tileCompUnreduced, uint32_t FILTER_WIDTH)
Definition ResWindow.h:76
~ResWindow()
Definition ResWindow.h:157
const Buf2dAligned * getBandWindowBufferPaddedREL(t1::eBandOrientation orientation) const
Definition ResWindow.h:358
const Buffer2dSimple< float > getBandWindowBufferPaddedSimpleF(t1::eBandOrientation orientation) const
Definition ResWindow.h:367
Buffer2d< T, AllocatorAligned > Buf2dAligned
Definition ResWindow.h:73
Buf2dAligned * resWindowBufferSplitREL_[SPLIT_NUM_ORIENTATIONS]
Definition ResWindow.h:393
const Buffer2dSimple< T > getBandWindowBufferPaddedSimple(t1::eBandOrientation orientation) const
Definition ResWindow.h:362
std::vector< Rect32 > bandWindowsBoundsPadded_
Definition ResWindow.h:389
Buf2dAligned * getResWindowBufferSplitREL(eSplitOrientation orientation) const
Definition ResWindow.h:350
Buf2dAligned * resWindowBufferREL_
Definition ResWindow.h:392
void disableBandWindowAllocation(void)
Definition ResWindow.h:346
Buffer2dSimple< T > getResWindowBufferSimple(void) const
Definition ResWindow.h:338
ResSimple tileCompAtLowerRes_
Definition ResWindow.h:379
Buffer2dSimple< float > getResWindowBufferSimpleF(void) const
Definition ResWindow.h:342
static Rect32 getPaddedBandWindow(uint8_t numDecomps, uint8_t orientation, Rect32 unreducedTileCompWindow, Rect32 unreducedTileComp, uint32_t padding, Rect32 &paddedResWindow)
Get band window (in tile component coordinates) for specified number of decompositions (with padding)...
Definition ResWindow.h:315
Buf2dAligned * resWindowBuffer_
Definition ResWindow.h:381
bool alloc(bool clear)
Definition ResWindow.h:199
Buf2dAligned * getResWindowBufferREL(void) const
Definition ResWindow.h:371
std::vector< Buf2dAligned * > bandWindowsBuffersPaddedREL_
Definition ResWindow.h:394
const Rect32 * getBandWindowPadded(t1::eBandOrientation orientation) const
Definition ResWindow.h:354
Definition TileComponentWindow.h:96
Definition TileComponentWindow.h:197