This file provides the information needed to interpret run-length output from the pagebuffer device. More...
Macros | |
#define | RUN_SIMPLE 0u |
RLE simple run opcode. More... | |
#define | RUN_REPEAT 1u |
RLE repeated run opcode. More... | |
#define | RUN_POSITION 2u |
RLE set run position opcode. More... | |
#define | RUN_SCREEN 3u |
RLE set run screen opcode. More... | |
#define | RUN_HEADER 4u |
RLE block header opcode. More... | |
#define | RUN_END_OF_LINE 5u |
RLE end of line run opcode. More... | |
#define | RUN_NO_OP 6u |
RLE no-op opcode. More... | |
#define | RUN_REPEAT_COPY 8u |
RLE run repeat copy opcode. More... | |
#define | RUN_REPEAT_STORE 9u |
RLE run repeat store opcode. More... | |
#define | RUN_SCREEN_STORE 10u |
RLE run repeat store opcode. More... | |
#define | RUN_COLORANTS 11u |
Color RLE colorant definition opcode. More... | |
#define | RUN_COLORANTS_LONG 12u |
Color RLE colorant definition opcode. More... | |
#define | RUN_INFO 13u |
Color RLE information record definition opcode. More... | |
#define | RUN_PARTIAL_OVERPRINT 14u |
Color RLE partial overprint definition opcode. More... | |
#define | RUN_PARTIAL_OVERPRINT_LONG 15u |
Color RLE partial overprint definition opcode. More... | |
#define | RUN_OBJECT_TYPE 16u |
RLE object type opcode. More... | |
#define | RLE_BLOCK_SIZE_WORDS 258 |
#define | RLE_USER_OBJECT (1 << 0) |
#define | RLE_UNUSED1 (1 << 1) |
#define | RLE_UNUSED2 (1 << 2) |
#define | RLE_LW_OBJECT (1 << 3) |
#define | RLE_TEXT_OBJECT (1 << 4) |
#define | RLE_SHADING_OBJECT (1 << 5) |
#define | RLE_IMAGE_OBJECT (1 << 6) |
#define | RLE_COMPOSITED_OBJECT (1 << 7) |
#define | POINTER_SIZE_IN_WORDS 2 |
#define | RLEBLOCK_SET_NEXT(block_, next_) |
#define | RLEBLOCK_GET_NEXT(block_) (*(uint32**)(block_)) |
#define | RLE_GET_RECORD_TYPE(recordHeader_) ((recordHeader_) & RLE_MASK_RECORD_TYPE) |
#define | RLEBLOCK_HEADER_SIZE (POINTER_SIZE_IN_WORDS + 1) |
#define | RLEBLOCK_GET_HEADER(block_) ((block_)[POINTER_SIZE_IN_WORDS]) |
#define | RLEBLOCK_GET_CONTENTS(block_) ((block_) + RLEBLOCK_HEADER_SIZE) |
#define | RLEBLOCK_GET_SIZE(block_) (int32)((block_)[POINTER_SIZE_IN_WORDS] >> 16) |
This file provides the information needed to interpret run-length output from the pagebuffer device.
Copyright (C) 2020 Global Graphics Software Ltd. All rights reserved. Global Graphics Software Ltd. Confidential Information. This source code contains the confidential and trade secret information of Global Graphics Software Ltd. It may not be used, copied or distributed for any reason except as set forth in the applicable Global Graphics license agreement.
#define POINTER_SIZE_IN_WORDS 2 |
The size of a pointer linking RLE blocks together.
#define RLE_BLOCK_SIZE_WORDS 258 |
Maximum size of an RLE block in 32 bit words.
#define RLE_COMPOSITED_OBJECT (1 << 7) |
#define RLE_GET_RECORD_TYPE | ( | recordHeader_ | ) | ((recordHeader_) & RLE_MASK_RECORD_TYPE) |
Extract the type of an RLE record from its header.
#define RLE_IMAGE_OBJECT (1 << 6) |
#define RLE_LW_OBJECT (1 << 3) |
#define RLE_SHADING_OBJECT (1 << 5) |
#define RLE_TEXT_OBJECT (1 << 4) |
#define RLE_UNUSED1 (1 << 1) |
Reserved for future use.
#define RLE_UNUSED2 (1 << 2) |
Reserved for future use.
#define RLE_USER_OBJECT (1 << 0) |
#define RLEBLOCK_GET_CONTENTS | ( | block_ | ) | ((block_) + RLEBLOCK_HEADER_SIZE) |
Return a pointer to the contents of the block.
#define RLEBLOCK_GET_HEADER | ( | block_ | ) | ((block_)[POINTER_SIZE_IN_WORDS]) |
Return the block header word.
#define RLEBLOCK_GET_NEXT | ( | block_ | ) | (*(uint32**)(block_)) |
Given a pointer to a block, return a pointer to the next block.
#define RLEBLOCK_GET_SIZE | ( | block_ | ) | (int32)((block_)[POINTER_SIZE_IN_WORDS] >> 16) |
Return the size of the passed block, in bytes, including the size of the header word.
#define RLEBLOCK_HEADER_SIZE (POINTER_SIZE_IN_WORDS + 1) |
The macro evaluates to the size of an RLE block header in words - the next pointer and the RUN_HEADER record together make the header.
#define RLEBLOCK_SET_NEXT | ( | block_, | |
next_ | |||
) |
#define RUN_COLORANTS 11u |
Color RLE colorant definition opcode.
#define RUN_COLORANTS_LONG 12u |
Color RLE colorant definition opcode.
Followed by as many words as are needed to store remaining colorant-numbers, packed 3 to a word in bits 20-29, 10-19 and 0-9 in that order.
#define RUN_END_OF_LINE 5u |
RLE end of line run opcode.
#define RUN_HEADER 4u |
RLE block header opcode.
#define RUN_INFO 13u |
Color RLE information record definition opcode.
Followed by as many words as required for information of this type, except when re-use is set when the consumer should refer to the previous value for the given identifier.
#define RUN_NO_OP 6u |
RLE no-op opcode.
#define RUN_OBJECT_TYPE 16u |
RLE object type opcode.
Specifies the type of object (or objects, in the case of a composited span) from which this span originated. Plus the rendering intent.
#define RUN_PARTIAL_OVERPRINT 14u |
Color RLE partial overprint definition opcode.
#define RUN_PARTIAL_OVERPRINT_LONG 15u |
Color RLE partial overprint definition opcode.
#define RUN_POSITION 2u |
RLE set run position opcode.
#define RUN_REPEAT 1u |
RLE repeated run opcode.
Mono only: then run-count pairs of tone-index, repeat-count bytes packed two pairs to a 32-bit word)
Color RLE only: run-count groups of 10 bit fields packed into bytes 20-29, 10-19 and 0-9 for as many words as necessary, where the first field of each run (subject to bits 30-31, see below) is a 6-bit repeat count stored in the least significant bits of the 10-bit field, and the remaining fields supply color-values for each explicit colorant of the current set of colorants given by RUN_COLORANTS.
For those words where a new run starts, bits 30-31 are interpreted as:
There are special cases for one and two component colors - see manual.
#define RUN_REPEAT_COPY 8u |
RLE run repeat copy opcode.
#define RUN_REPEAT_STORE 9u |
RLE run repeat store opcode.
#define RUN_SCREEN 3u |
RLE set run screen opcode.
#define RUN_SCREEN_STORE 10u |
RLE run repeat store opcode.
#define RUN_SIMPLE 0u |
RLE simple run opcode.