70template<u
int32_t LBW, u
int32_t LBH>
78 throw std::runtime_error(
"invalid window for sparse canvas");
128 GRK_WARN(
"sparse canvas : attempt to allocate a block (%u,%u) outside block "
129 "grid bounds (%u,%u,%u,%u)",
169 GRK_WARN(
"Sparse canvas @ res %u, attempt to read/write invalid window (%u,%u,%u,%u) "
170 "for bounds (%u,%u,%u,%u).",
196 GRK_WARN(
"sparse canvas @ resno %u, Attempt to access a block (%u,%u) outside "
204 GRK_WARN(
"sparse canvas @ resno %u, %s op: missing block (%u,%u,%u,%u) for %s "
205 "(%u,%u,%u,%u). Skipping.",
222#ifdef GRK_DEBUG_VALGRIND
225 GRK_ERROR(
"sparse canvas @resno %u, read block(%u,%u) : "
226 "uninitialized at location (%u,%u)",
247#ifdef GRK_DEBUG_VALGRIND
253 GRK_ERROR(
"sparse canvas @ resno %u, write block(%u,%u): "
254 "uninitialized at location (%u,%u)",
Definition SparseCanvas.h:39
virtual ~ISparseCanvas()=default
virtual bool alloc(grk_rect32 window, bool zeroOutBuffer)=0
virtual bool read(uint8_t resno, grk_rect32 window, int32_t *dest, const uint32_t destChunkY, const uint32_t destChunkX)=0
Read window of data into dest buffer.
virtual bool write(uint8_t resno, grk_rect32 window, const int32_t *src, const uint32_t srcChunkY, const uint32_t srcChunkX)=0
Write window of data from src buffer.
Definition SparseCanvas.h:72
SparseBlock * getBlock(uint32_t block_x, uint32_t block_y)
Definition SparseCanvas.h:150
grk_rect32 bounds
Definition SparseCanvas.h:275
SparseCanvas(uint32_t width, uint32_t height)
Definition SparseCanvas.h:85
const uint32_t blockWidth
Definition SparseCanvas.h:272
bool alloc(grk_rect32 win, bool zeroOutBuffer)
Definition SparseCanvas.h:108
SparseBlock ** blocks
Definition SparseCanvas.h:274
bool readWrite(uint8_t resno, grk_rect32 win, int32_t *buf, const uint32_t spacingX, const uint32_t spacingY, bool isReadOperation)
Definition SparseCanvas.h:160
~SparseCanvas()
Definition SparseCanvas.h:86
bool read(uint8_t resno, grk_rect32 window, int32_t *dest, const uint32_t destChunkY, const uint32_t destChunkX)
Read window of data into dest buffer.
Definition SparseCanvas.h:98
SparseCanvas(grk_rect32 bds)
Definition SparseCanvas.h:74
bool write(uint8_t resno, grk_rect32 window, const int32_t *src, const uint32_t srcChunkY, const uint32_t srcChunkX)
Write window of data from src buffer.
Definition SparseCanvas.h:103
const uint32_t blockHeight
Definition SparseCanvas.h:273
grk_rect32 grid
Definition SparseCanvas.h:276
bool isWindowValid(grk_rect32 win)
Definition SparseCanvas.h:155
Copyright (C) 2016-2023 Grok Image Compression Inc.
Definition ICacheable.h:20
void grk_read(const uint8_t *buffer, TYPE *value, uint32_t numBytes)
Definition BufferedStream.h:239
void GRK_ERROR(const char *fmt,...)
Definition logger.cpp:58
void GRK_WARN(const char *fmt,...)
Definition logger.cpp:49
Definition SparseCanvas.h:56
SparseBlock(void)
Definition SparseCanvas.h:57
void alloc(uint32_t block_area, bool zeroOutBuffer)
Definition SparseCanvas.h:62
int32_t * data
Definition SparseCanvas.h:68
~SparseBlock()
Definition SparseCanvas.h:58
uint64_t area(void) const
Definition geometry.h:331
T width() const
Definition geometry.h:335
T y1
Definition geometry.h:124
T x0
Definition geometry.h:124
T x1
Definition geometry.h:124
T height() const
Definition geometry.h:339
bool contains(grk_pt< T > pt)
Definition geometry.h:193
T y0
Definition geometry.h:124
grk_rect< T > scaleDownPow2(uint32_t powx, uint32_t powy) const
Definition geometry.h:252