# US 12,118,659 B2 · Efficient rendering of clipping objects

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,118,659 B2
- Document ID: US12118659B2
- Status: Granted
- Kind: B2
- Application number: 18/058,120
- Filed: 2022-11-22
- Published: 2024-06-06
- Granted: 2024-10-15
- Earliest claimed: 2022-11-22
- Assignees: Adobe Inc.
- Applicants: Adobe Inc.
- Inventors: Harish Kumar; Apurva Kumar
- Web page: https://patentgrep.com/patent/US12118659B2

## CPC

- G06T 15/005: {General purpose rendering architectures}
- G06T 15/30: Clipping
- G06T: IMAGE DATA PROCESSING OR GENERATION, IN GENERAL

## Abstract

In implementations of systems for efficient rendering of clipping objects, a computing device implements a clipping system to generate a clipping tree that includes a root node and a node for each clipping group included in a layer of an input render tree. The clipping system generates a segment buffer having rows that each represent coverage of a branch of the clipping tree and columns that each represent coverage of a level of the clipping tree. The segment buffer is mapped to two-dimensional array, and the clipping system computes coverage for a clipping object of a clipping group included in the layer of the input render tree based on an identifier of a row of the two-dimensional array.

## Claims

### Claim 1

A method comprising:
generating, by a computing device, a clipping tree that includes a root node and a node for each clipping group included in a layer of an input render tree;
generating, by the computing device, a segment buffer having rows that each represent coverage of a branch of the clipping tree and columns that each represent coverage of a level of the clipping tree;
mapping, by the computing device, the segment buffer to a two-dimensional array; and
computing, by the computing device, coverage for a clipping object of a clipping group included in the layer of the input render tree based on an identifier of a row of the two-dimensional array.

### Claim 2 (depends on 1)

The method as described in claim 1, wherein the coverage for the clipping object is computed using a bit mask that masks out bits included in the row of the two-dimensional array that do not contribute to the coverage for the clipping object.

### Claim 3 (depends on 1)

The method as described in claim 1, wherein the coverage for the clipping object is computed using an identifier of a column of the two-dimensional array and an offset.

### Claim 4 (depends on 1)

The method as described in claim 1, wherein the two-dimensional array is a texture array.

### Claim 5 (depends on 4)

The method as described in claim 4, wherein the rows of the segment buffer are mapped to color planes.

### Claim 6 (depends on 4)

The method as described in claim 4, wherein the columns of the segment buffer are mapped to color channels.

### Claim 7 (depends on 1)

The method as described in claim 1, further comprising:
exceeding at least one of a number of the rows or a number of the columns of the segment buffer;
issuing a draw call to an output buffer for the clipping object; and
clearing a segment of the segment buffer.

### Claim 8 (depends on 1)

The method as described in claim 1, wherein a first clipping group and a second clipping group have different levels in the input render tree and a same level in the clipping tree.

### Claim 9 (depends on 1)

The method as described in claim 1, further comprising determining a color of a pixel of a clipped object based on the coverage for the clipping object.

### Claim 10 (depends on 1)

The method as described in claim 1, further comprising assigning a unique identifier to a clipping group included in the layer of the input render tree that is usable to identify a segment of the segment buffer storing coverage of the clipping group.

### Claim 11

A system comprising:
a memory component; and
a processing device coupled to the memory component, the processing device to perform operations comprising:
generating a clipping tree that includes a root node and a node for each clipping group included in a layer of an input render tree;
generating a segment buffer having rows that each represent coverage of a branch of the clipping tree and columns that each represent coverage of a level of the clipping tree;
mapping the segment buffer to a two-dimensional array; and
computing coverage for a clipping object of a clipping group included in the layer of the input render tree based on an identifier of a row of the two-dimensional array.

### Claim 12 (depends on 11)

The system as described in claim 11, wherein a color of a pixel of a clipped object is determined based on the coverage for the clipping object.

### Claim 13 (depends on 11)

The system as described in claim 11, wherein the coverage for the clipping object is computed using a bit mask that masks out bits included in the row of the two-dimensional array that do not contribute to the coverage for the clipping object.

### Claim 14 (depends on 11)

The system as described in claim 11, wherein the coverage for the clipping object is computed using an identifier of a column of the two-dimensional array and an offset.

### Claim 15 (depends on 11)

The system as described in claim 11, wherein a unique identifier is assigned to a clipping group included in the layer of the input render tree that is usable to identify a segment of the segment buffer storing coverage of the clipping group.

### Claim 16

A non-transitory computer-readable storage medium storing executable instructions, which when executed by a processing device, cause the processing device to perform operations comprising:
generating a clipping tree having nodes corresponding to clipping groups included in an input render tree;
generating a segment buffer having rows that each represent coverage of a branch of the clipping tree and columns that each represent coverage of a level of the clipping tree;
extracting a row from the segment buffer based on a row identifier of the row; and
computing coverage for a clipping object of a clipping group included in the input render tree using a bit mask that masks out bits included in the row that do not contribute to the coverage for the clipping object.

### Claim 17 (depends on 16)

The non-transitory computer-readable storage medium as described in claim 16, wherein the coverage for the clipping object is computed by shifting bits included in the row that contribute to the coverage for the clipping object based on a column identifier and an offset.

### Claim 18 (depends on 16)

The non-transitory computer-readable storage medium as described in claim 16, wherein the segment buffer is mapped to a two-dimensional texture array.

### Claim 19 (depends on 18)

The non-transitory computer-readable storage medium as described in claim 18, wherein the rows of the segment buffer are mapped to color planes and the columns of the segment buffer are mapped to color channels.

### Claim 20 (depends on 16)

The non-transitory computer-readable storage medium as described in claim 16, wherein a color of a pixel of a clipped object is determined based on the coverage for the clipping object.
