#include <SparseCanvas.h>
|
| SparseCanvas (grkRectU32 bds) |
| SparseCanvas constructor. More...
|
|
| SparseCanvas (uint32_t width, uint32_t height) |
| SparseCanvas constructor. More...
|
|
| ~SparseCanvas () |
|
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) |
| Read the content of a rectangular window of the sparse buffer into a user buffer. More...
|
|
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) |
| Write the content of a rectangular window into the sparse buffer from a user buffer. More...
|
|
bool | alloc (grkRectU32 win, bool zeroOutBuffer) |
| Allocate all blocks for a rectangular window into the sparse buffer from a user buffer. More...
|
|
virtual | ~ISparseCanvas ()=default |
|
◆ SparseCanvas() [1/2]
template<uint32_t LBW, uint32_t LBH>
SparseCanvas constructor.
- Parameters
-
- Returns
- a new sparse buffer instance, or nullptr in case of failure.
References grk::grkRect< T >::area(), grk::SparseCanvas< LBW, LBH >::bounds, grk::SparseCanvas< LBW, LBH >::data_blocks, grk::floordivpow2(), grk::SparseCanvas< LBW, LBH >::grid_bounds, grk::grkRect< T >::height(), grk::grkRect< T >::width(), grk::grkRect< T >::x0, grk::grkRect< T >::x1, grk::grkRect< T >::y0, and grk::grkRect< T >::y1.
◆ SparseCanvas() [2/2]
template<uint32_t LBW, uint32_t LBH>
SparseCanvas constructor.
- Parameters
-
width | total width of the array. |
height | total height of the array |
- Returns
- a new sparse buffer instance, or nullptr in case of failure.
◆ ~SparseCanvas()
template<uint32_t LBW, uint32_t LBH>
◆ alloc()
template<uint32_t LBW, uint32_t LBH>
Allocate all blocks for a rectangular window into the sparse buffer from a user buffer.
Blocks intersecting the window are allocated
- Parameters
-
window | window to write into the sparse buffer. |
zeroOutBuffer | memset buffer to zero if true |
- Returns
- true in case of success.
Implements grk::ISparseCanvas.
References grk::SparseCanvas< LBW, LBH >::block_height, grk::SparseCanvas< LBW, LBH >::block_width, grk::grkRect< T >::contains(), grk::SparseCanvas< LBW, LBH >::data_blocks, grk::SparseCanvas< LBW, LBH >::getBlock(), grk::SparseCanvas< LBW, LBH >::grid_bounds, grk::GRK_ERROR(), grk::SparseCanvas< LBW, LBH >::is_window_valid(), grk::grkRect< T >::width(), grk::grkRect< T >::x0, grk::grkRect< T >::x1, grk::grkRect< T >::y0, and grk::grkRect< T >::y1.
◆ getBlock()
template<uint32_t LBW, uint32_t LBH>
◆ is_window_valid()
template<uint32_t LBW, uint32_t LBH>
◆ read()
template<uint32_t LBW, uint32_t LBH>
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
-
window | window to read from sparse buffer. |
dest | user 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_stride | spacing (in elements, not in bytes) in x dimension between consecutive elements of the user buffer. |
dest_line_stride | spacing (in elements, not in bytes) in y dimension between consecutive elements of the user buffer. |
forgiving | if set to TRUE and the window is invalid, true will still be returned. |
- Returns
- true in case of success.
Implements grk::ISparseCanvas.
References grk::SparseCanvas< LBW, LBH >::read_or_write().
◆ read_or_write()
template<uint32_t LBW, uint32_t LBH>
bool grk::SparseCanvas< LBW, LBH >::read_or_write |
( |
uint8_t |
resno, |
|
|
grkRectU32 |
win, |
|
|
int32_t * |
buf, |
|
|
const uint32_t |
buf_col_stride, |
|
|
const uint32_t |
buf_line_stride, |
|
|
bool |
forgiving, |
|
|
bool |
is_read_op |
|
) |
| |
|
inlineprivate |
References grk::SparseCanvas< LBW, LBH >::block_height, grk::SparseCanvas< LBW, LBH >::block_width, grk::SparseCanvas< LBW, LBH >::bounds, grk::grkRect< T >::contains(), grk::SparseCanvas< LBW, LBH >::getBlock(), grk::SparseCanvas< LBW, LBH >::grid_bounds, grk::GRK_ERROR(), GRK_RESTRICT, grk::GRK_WARN(), grk::SparseCanvas< LBW, LBH >::is_window_valid(), grk::grkRect< T >::x0, grk::grkRect< T >::x1, grk::grkRect< T >::y0, and grk::grkRect< T >::y1.
Referenced by grk::SparseCanvas< LBW, LBH >::read(), and grk::SparseCanvas< LBW, LBH >::write().
◆ write()
template<uint32_t LBW, uint32_t LBH>
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 |
src | user 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_stride | spacing (in elements, not in bytes) in x dimension between consecutive elements of the user buffer. |
src_line_stride | spacing (in elements, not in bytes) in y dimension between consecutive elements of the user buffer. |
forgiving | if set to TRUE and the window is invalid, true will still be returned. |
- Returns
- true in case of success.
Implements grk::ISparseCanvas.
References grk::SparseCanvas< LBW, LBH >::read_or_write().
◆ block_height
template<uint32_t LBW, uint32_t LBH>
◆ block_width
template<uint32_t LBW, uint32_t LBH>
◆ bounds
template<uint32_t LBW, uint32_t LBH>
◆ data_blocks
template<uint32_t LBW, uint32_t LBH>
◆ grid_bounds
template<uint32_t LBW, uint32_t LBH>
The documentation for this class was generated from the following file: