# US 2016/0253301 A1 · Wet ink texture engine for reduced lag digital inking

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

- Number: US 2016/0253301 A1
- Document ID: US20160253301A1
- Status: Published application
- Kind: A1
- Application number: 15/145,913
- Filed: 2016-05-04
- Published: 2016-09-01
- Earliest claimed: 2013-10-28
- Assignees: Microsoft Technology Licensing, LLC
- Applicants: Microsoft Technology Licensing, LLC
- Inventors: Robert Goins; Sergey Ten; Edward Augustus Layne, JR.; Mario Baumann
- Web page: https://patentgrep.com/patent/US20160253301A1

## CPC

- G06V 30/32: Digital ink
- G06F 3/03545: {Pens or stylus}
- G06F 3/0412: {Digitisers structurally integrated in a display}
- G06F 3/04883: for inputting data by handwriting, e.g. gesture or text
- G06F 40/171: by use of digital ink
- G06T 1/60: Memory management
- G06T 11/10: Texturing; Colouring; Generation of textures or colours (retouching, inpainting or scratch removal G06T5/77)
- G06T 11/60: Creating or editing images; Combining images with text
- G06V 30/1423: {the instrument generating sequences of position coordinates corresponding to handwriting (preprocessing or recognising digital ink G06V30/32)}
- G09G 5/395: Arrangements specially adapted for transferring the contents of the bit-mapped memory to the screen (G09G5/399 takes precedence)
- G09G 5/397: Arrangements specially adapted for transferring the contents of two or more bit-mapped memories to the screen simultaneously, e.g. for mixing or overlay (G09G5/02 takes precedence)
- G06T 2207/20212: Image combination
- G09G 2360/121: using a cache memory
- G09G 2360/18: Use of a frame buffer in a display terminal, inclusive of the display panel
- G06V: IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06T: IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G09G: ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION (arrangements for transferring data between digital computers and displays G06F3/14; static indicating arrangements comprising an association of a number of separate sources or light control cells G09F9/00; static indicating arrangements comprising integral associations of a number of light sources H01J, H01K, H10H, H05B33/12; scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission, details thereof H04N1/00)

## Abstract

A wet ink texture engine and associated method. The wet ink texture engine may run in the context of any application on any device, service, or general endpoint capable of receiving ink input. For example, the wet ink texture engine may be used in the context of a note application that receives input in the form of writing or drawing. The wet ink texture engine reduces, minimizes, or eliminates lag between receiving the input and displaying the input to improve inking experience for the user.

## Claims

### Claim at position 1

1-20. (canceled)

### Claim 21

A method comprising:
receiving ink input;
rendering, in a first layer of a virtual buffer, the received ink input as wet ink;
re-rendering, in a second layer of the virtual buffer, the wet ink as semi-dry ink;
transmitting a portion of the semi-dry ink and a portion of the wet ink to an application canvas; and
displaying, within the application canvas, dry ink that comprises the portion of the wet ink and the portion of the semi-dry ink.

### Claim 22 (depends on 21)

The method according to claim 21, wherein the dry ink is a digital representation generated by synchronously displaying the portion of the wet ink and the portion of the semi-dry ink within the application canvas of an application executing on a processing device.

### Claim 23 (depends on 22)

The method according to claim 22, wherein the displaying displays the portion of the wet ink from the first layer and the portion of the semi-dry ink from the second layer at substantially the same time within the application canvas to maintain visual fidelity when processing the ink input.

### Claim 24 (depends on 21)

The method according to claim 21, wherein the transmitting of the portion of the semi-dry ink to the application further comprises: locking the second layer of the virtual buffer, clearing content from the second layer of the virtual buffer before unlocking the second layer, and unlocking the second layer based on the clearing of the content from the second layer.

### Claim 25 (depends on 21)

The method according to claim 21, wherein the second layer of the virtual buffer is a transfer layer, and wherein the transfer layer is an intermediate frame buffer for the wet ink that is ready to be committed to the application canvas.

### Claim 26 (depends on 25)

The method according to claim 25, wherein re-rendering of the wet ink further comprises: removing at least some of the rendered wet ink from the first layer, re-rendering the removed wet ink as semi-dry ink, and storing the semi-dry ink in the transfer layer.

### Claim 27 (depends on 21)

The method according to claim 21, wherein the rendering of the received input to form the wet ink further comprises rendering the received input into a first portion of the wet ink and a second portion of the wet ink, and the re-rendering further comprises re-rendering the first portion of the wet ink and the second portion of the wet ink to generate a first portion of the semi-dry ink and a second portion of the semi-dry ink, and wherein the transmitting further comprises transmitting the first portion of wet ink and the first portion of the semi-dry ink to the application canvas for display.

### Claim 28 (depends on 27)

The method according to claim 27, further comprising:
polling the second layer to determine whether the second portion of the semi-dry ink is available to be transmitted to the application canvas, and transmitting the second portion of the wet ink and the second portion of the semi-dry ink to the application canvas based on a result of the polling.

### Claim 29

A system comprising:
at least one processor; and
a memory operatively connected with the at least one processor, wherein the memory stores computer-executable instructions that, when executed by the at least one processor, causes the at least one processor to execute a method that comprises:
receiving ink input,
rendering, in a first layer of a virtual buffer, the received ink input as wet ink,
re-rendering, in a second layer of the virtual buffer, the wet ink as semi-dry ink,
transmitting a portion of the semi-dry ink and a portion of the wet ink to an application canvas, and
displaying, within the application canvas, dry ink that comprises the portion of the wet ink and the portion of the semi-dry ink.

### Claim 30 (depends on 29)

The system according to claim 29, wherein the dry ink is a digital representation generated by synchronously displaying the portion of the wet ink and the portion of the semi-dry ink within the application canvas of an application executing on a processing device.

### Claim 31 (depends on 30)

The system according to claim 30, wherein the displaying displays the portion of the wet ink from the first layer and the portion of the semi-dry ink from the second layer at substantially the same time within the application canvas to maintain visual fidelity when processing the ink input.

### Claim 32 (depends on 29)

The system according to claim 29, wherein the transmitting of the portion of the semi-dry ink to the application further comprises: locking the second layer of the virtual buffer, clearing content from the second layer of the virtual buffer before unlocking the second layer, and unlocking the second layer based on the clearing of the content from the second layer.

### Claim 33 (depends on 29)

The system according to claim 29, wherein the second layer of the virtual buffer is a transfer layer, and wherein the transfer layer is an intermediate frame buffer for the wet ink that is ready to be committed to the application canvas.

### Claim 34 (depends on 33)

The system according to claim 33, wherein re-rendering of the wet ink further comprises: removing at least some of the rendered wet ink from the first layer, re-rendering the removed wet ink as semi-dry ink, and storing the semi-dry ink in the transfer layer.

### Claim 35 (depends on 29)

The system according to claim 29, wherein the rendering of the received input to form the wet ink further comprises rendering the received input into a first portion of the wet ink and a second portion of the wet ink, and the re-rendering further comprises re-rendering the first portion of the wet ink and the second portion of the wet ink to generate a first portion of the semi-dry ink and a second portion of the semi-dry ink, and wherein the transmitting further comprises transmitting the first portion of the wet ink and the first portion of the semi-dry ink to the application canvas for display.

### Claim 36 (depends on 35)

The system according to claim 35, wherein the method further comprising: polling the second layer to determine whether the second portion of the semi-dry ink is available to be transmitted to the application canvas, and transmitting the second portion of the wet ink and the second portion of the semi-dry ink to the application canvas based on a result of the polling.

### Claim 37

A method comprising:
receiving ink input;
rendering, in a first layer of a virtual buffer, the received ink input as wet ink that comprises a first portion of the wet ink and a second portion of the wet ink;
re-rendering, in a second layer of the virtual buffer, the first portion of the wet ink as a first portion of semi-dry ink and the second portion of wet ink as a second portion of semi-dry ink;
transmitting the first portion of wet ink and the first portion of semi-dry ink to an application canvas;
displaying, within the application canvas, a first dry ink that comprises the first portion of the wet ink and the first portion of semi-dry ink;
transmitting the second portion of the wet ink and the second portion of semi-dry ink to the application canvas; and
updating display of the application canvas to include a second dry ink that comprises the second portion of the wet ink and the second portion of semi-dry ink.

### Claim 38 (depends on 37)

The method according to claim 37, wherein the first dry ink is a digital representation generated by synchronously displaying the first portion of the wet ink and the first portion of semi-dry ink within the application canvas of an application executing on a processing device, and wherein the second dry ink is a digital representation generated by synchronously displaying the second portion of the wet ink and the second portion of semi-dry ink within the application canvas.

### Claim 39 (depends on 37)

The method according to claim 37, wherein the second layer of the virtual buffer is a transfer layer, and wherein the transfer layer is an intermediate frame buffer for wet ink that is ready to be committed to the application canvas.

### Claim 40 (depends on 37)

The method according to claim 37, further comprising polling the second layer to determine whether the second portion of semi-dry ink is available to be transmitted to the application canvas, and transmitting the second portion of the wet ink and the second portion of semi-dry ink to the application canvas based on a result of the polling.
