Grok  9.5.0
Public Member Functions | List of all members
grk::ISparseCanvas Class Referenceabstract

#include <SparseCanvas.h>

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

Public Member Functions

virtual ~ISparseCanvas ()=default
 
virtual bool read (uint8_t resno, eBandOrientation bandOrientation, grkRectU32 window, int32_t *dest, const uint32_t dest_col_stride, const uint32_t dest_line_stride, bool forgiving)=0
 Read the content of a rectangular window of the sparse buffer into a user buffer. More...
 
virtual bool write (uint8_t resno, eBandOrientation bandOrientation, grkRectU32 window, const int32_t *src, const uint32_t src_col_stride, const uint32_t src_line_stride, bool forgiving)=0
 Write the content of a rectangular window into the sparse buffer from a user buffer. More...
 
virtual bool alloc (grkRectU32 window, bool zeroOutBuffer)=0
 Allocate all blocks for a rectangular window into the sparse buffer from a user buffer. More...
 

Constructor & Destructor Documentation

◆ ~ISparseCanvas()

virtual grk::ISparseCanvas::~ISparseCanvas ( )
virtualdefault

Member Function Documentation

◆ alloc()

virtual bool grk::ISparseCanvas::alloc ( grkRectU32  window,
bool  zeroOutBuffer 
)
pure virtual

Allocate all blocks for a rectangular window into the sparse buffer from a user buffer.

Blocks intersecting the window are allocated

Parameters
windowwindow to write into the sparse buffer.
zeroOutBuffermemset buffer to zero if true
Returns
true in case of success.

Implemented in grk::SparseCanvas< LBW, LBH >.

◆ read()

virtual bool grk::ISparseCanvas::read ( uint8_t  resno,
eBandOrientation  bandOrientation,
grkRectU32  window,
int32_t *  dest,
const uint32_t  dest_col_stride,
const uint32_t  dest_line_stride,
bool  forgiving 
)
pure virtual

Read the content of a rectangular window of the sparse buffer into a user buffer.

Windows not written with write() are read as 0.

Parameters
windowwindow to read from sparse buffer.
destuser buffer to fill. Must be at least sizeof(int32) * ( (y1 - y0 - 1) * dest_line_stride + (x1 - x0 - 1) * dest_col_stride + 1) bytes large.
dest_col_stridespacing (in elements, not in bytes) in x dimension between consecutive elements of the user buffer.
dest_line_stridespacing (in elements, not in bytes) in y dimension between consecutive elements of the user buffer.
forgivingif set to TRUE and the window is invalid, true will still be returned.
Returns
true in case of success.

Implemented in grk::SparseCanvas< LBW, LBH >.

◆ write()

virtual bool grk::ISparseCanvas::write ( uint8_t  resno,
eBandOrientation  bandOrientation,
grkRectU32  window,
const int32_t *  src,
const uint32_t  src_col_stride,
const uint32_t  src_line_stride,
bool  forgiving 
)
pure virtual

Write the content of a rectangular window into the sparse buffer from a user buffer.

Blocks intersecting the window are allocated, if not already done.

Parameters
window: window to write to buffer
srcuser buffer to fill. Must be at least sizeof(int32) * ( (y1 - y0 - 1) * src_line_stride + (x1 - x0 - 1) * src_col_stride + 1) bytes large.
src_col_stridespacing (in elements, not in bytes) in x dimension between consecutive elements of the user buffer.
src_line_stridespacing (in elements, not in bytes) in y dimension between consecutive elements of the user buffer.
forgivingif set to TRUE and the window is invalid, true will still be returned.
Returns
true in case of success.

Implemented in grk::SparseCanvas< LBW, LBH >.

Referenced by grk::TileComponent::postDecompressImpl().


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