Lines Matching refs:Block
18 // the rect rarely falls along block boundaries. The proper way to handle this is
19 // to update the compressed encoding of a block by resetting the proper parameters
20 // (and even recompressing the block) where a rect falls inbetween block boundaries.
45 // // The function used to compress an A8 block. The layout of the
46 // // block is also expected to be in column-major order.
47 // static void CompressA8Vertical(uint8_t* dst, const uint8_t block[]);
49 // // The function used to compress an A8 block. The layout of the
50 // // block is also expected to be in row-major order.
54 // // The function used to update an already compressed block. This will
56 // // 0xFF in positions where the block should be updated and 0 in positions
113 // Align the rows to a block boundary. If we receive rows that
114 // are not on a block boundary, then fill in the preceding runs
136 // If we've output a block of scanlines in a row that don't violate our
154 // 2. Replace the indices of each block with the proper indices based
187 // If start and end are the same, then we only need to update a single block...
220 // using updateBlockColumn. Anything in the middle is simply memset to an opaque block
289 // 1. If width/height are smaller than a block, then update the
291 // 2. If width/height are larger than a block, then construct a 9-patch
292 // of block encodings that represent the rectangle, and write them
317 // Start from largest block boundary less than the clip boundaries.
323 // Get the destination for this block row
327 // At this point, the block should intersect the clip.
335 uint8_t block[BlockDim*BlockDim];
336 memset(block, 0, sizeof(block));
351 memcpy(block + row*BlockDim + col,
355 CompressorType::CompressA8Horizontal(dst, block, BlockDim);
421 // Returns the block index for the block containing pixel (x, y). Block
431 // Returns a pointer to the block containing pixel (x, y)
437 // Updates the block whose columns are stored in block. curAlphai is expected
441 typedef uint32_t Block[BlockDim][BlockDim/4];
442 inline void updateBlockColumns(Block block, const int col,
444 SkASSERT(block);
448 memcpy(block[i], curAlphai, sizeof(Column));
498 // c[BlockDim] -- the buffers that represent the columns of the current block
511 Block block;
512 sk_bzero(block, sizeof(block));
550 // Do we need to populate the rest of the block?
556 this->updateBlockColumns(block, col, colsLeft, curAlphaColumn);
558 // Write this block
559 CompressorType::CompressA8Vertical(outPtr, reinterpret_cast<uint8_t*>(block));
564 // If we can advance even further, then just keep memsetting the block
571 this->updateBlockColumns(block, col, colsLeft, curAlphaColumn);
573 // While we can keep advancing, just keep writing the block.
575 CompressorType::CompressA8Vertical(lastBlock, reinterpret_cast<uint8_t*>(block));
583 // If we haven't advanced within the block then do so.
588 this->updateBlockColumns(block, col, colsLeft, curAlphaColumn);
615 // If we didn't land on a block boundary, output the block...
626 this->updateBlockColumns(block, col, colsLeft, curAlphaColumn);
628 CompressorType::CompressA8Vertical(outPtr, reinterpret_cast<uint8_t*>(block));