Grok 20.3.2
grk::SparseCanvas< T, LBW, LBH > Class Template Reference

#include <SparseCanvas.h>

Inheritance diagram for grk::SparseCanvas< T, LBW, LBH >:
grk::ISparseCanvas< T >

Public Member Functions

 SparseCanvas (Rect32 bds)
 SparseCanvas (uint32_t width, uint32_t height)
 ~SparseCanvas ()
bool read (uint8_t resno, Rect32 window, T *dest, const uint32_t destChunkY, const uint32_t destChunkX)
 Read window of data into dest buffer.
bool write (uint8_t resno, Rect32 window, const T *src, const uint32_t srcChunkY, const uint32_t srcChunkX)
 Write window of data from src buffer.
bool alloc (Rect32 win, bool zeroOutBuffer)
Public Member Functions inherited from grk::ISparseCanvas< T >
virtual ~ISparseCanvas ()=default

Private Member Functions

SparseBlock< T > * getBlock (uint32_t block_x, uint32_t block_y)
bool isWindowValid (Rect32 win)
bool readWrite (uint8_t resno, Rect32 win, T *buf, const uint32_t spacingX, const uint32_t spacingY, bool isReadOperation)

Private Attributes

const uint32_t blockWidth
const uint32_t blockHeight
std::unordered_map< uint64_t, SparseBlock< T > * > blocks
Rect32 bounds
Rect32 grid

Constructor & Destructor Documentation

◆ SparseCanvas() [1/2]

template<typename T, uint32_t LBW, uint32_t LBH>
grk::SparseCanvas< T, LBW, LBH >::SparseCanvas ( Rect32 bds)
inline

References blockHeight, blockWidth, bounds, and grid.

Referenced by SparseCanvas().

◆ SparseCanvas() [2/2]

template<typename T, uint32_t LBW, uint32_t LBH>
grk::SparseCanvas< T, LBW, LBH >::SparseCanvas ( uint32_t width,
uint32_t height )
inline

References SparseCanvas().

◆ ~SparseCanvas()

template<typename T, uint32_t LBW, uint32_t LBH>
grk::SparseCanvas< T, LBW, LBH >::~SparseCanvas ( )
inline

References blocks.

Member Function Documentation

◆ alloc()

template<typename T, uint32_t LBW, uint32_t LBH>
bool grk::SparseCanvas< T, LBW, LBH >::alloc ( Rect32 win,
bool zeroOutBuffer )
inlinevirtual

◆ getBlock()

template<typename T, uint32_t LBW, uint32_t LBH>
SparseBlock< T > * grk::SparseCanvas< T, LBW, LBH >::getBlock ( uint32_t block_x,
uint32_t block_y )
inlineprivate

References blocks, and grid.

Referenced by readWrite().

◆ isWindowValid()

template<typename T, uint32_t LBW, uint32_t LBH>
bool grk::SparseCanvas< T, LBW, LBH >::isWindowValid ( Rect32 win)
inlineprivate

◆ read()

template<typename T, uint32_t LBW, uint32_t LBH>
bool grk::SparseCanvas< T, LBW, LBH >::read ( uint8_t resno,
Rect32 window,
T * dest,
const uint32_t destChunkY,
const uint32_t destChunkX )
inlinevirtual

Read window of data into dest buffer.

Implements grk::ISparseCanvas< T >.

References readWrite().

◆ readWrite()

template<typename T, uint32_t LBW, uint32_t LBH>
bool grk::SparseCanvas< T, LBW, LBH >::readWrite ( uint8_t resno,
Rect32 win,
T * buf,
const uint32_t spacingX,
const uint32_t spacingY,
bool isReadOperation )
inlineprivate

◆ write()

template<typename T, uint32_t LBW, uint32_t LBH>
bool grk::SparseCanvas< T, LBW, LBH >::write ( uint8_t resno,
Rect32 window,
const T * src,
const uint32_t srcChunkY,
const uint32_t srcChunkX )
inlinevirtual

Write window of data from src buffer.

Implements grk::ISparseCanvas< T >.

References readWrite().

Member Data Documentation

◆ blockHeight

template<typename T, uint32_t LBW, uint32_t LBH>
const uint32_t grk::SparseCanvas< T, LBW, LBH >::blockHeight
private

Referenced by alloc(), readWrite(), and SparseCanvas().

◆ blocks

template<typename T, uint32_t LBW, uint32_t LBH>
std::unordered_map<uint64_t, SparseBlock<T>*> grk::SparseCanvas< T, LBW, LBH >::blocks
private

Referenced by alloc(), getBlock(), and ~SparseCanvas().

◆ blockWidth

template<typename T, uint32_t LBW, uint32_t LBH>
const uint32_t grk::SparseCanvas< T, LBW, LBH >::blockWidth
private

Referenced by alloc(), readWrite(), and SparseCanvas().

◆ bounds

template<typename T, uint32_t LBW, uint32_t LBH>
Rect32 grk::SparseCanvas< T, LBW, LBH >::bounds
private

◆ grid

template<typename T, uint32_t LBW, uint32_t LBH>
Rect32 grk::SparseCanvas< T, LBW, LBH >::grid
private

The documentation for this class was generated from the following file: