IP Library Granted Patent US 9,338,498
Granted Patent B2
US 9,338,498 · App. 14/812,824 · Granted May 10, 2016

System and method for drawing anti-aliased lines in any direction

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,338,498
App. No.
14/812,824
Granted
May 10, 2016
Kind
B2
Abstract

A prerendered line texture stored in memory is used to generate an anti-aliased destination line in any direction to be displayed on a screen. A combination of tiling, stretching, and/or mirroring is used to generate the anti-aliased destination line. A blitter blits a rectangle in the prerendered line texture to a destination rectangle in the frame buffer that is displayed on the screen.

Claims (27)

1. A system to render a destination diagonal line having a vertical component and a horizontal component on a screen display, comprising:

a frame buffer to store data to be displayed on the screen display;

a processor to generate a destination rectangle in the frame buffer and a prerendered line texture, wherein the prerendered line texture corresponds to at least a portion of the destination diagonal line, and includes a line that has a line width, and that comprises line pixels and anti-aliasing pixels, wherein the processor determines pixel intensity of the anti-aliasing pixels in accordance with the line width such that if the line width is smaller than a predetermined line width, pixel intensity of each anti-aliasing pixel is determined as a function of the line width, and wherein if the width is larger than the predetermined line width, pixel intensity of each anti-aliasing pixel is determined a function of anti-aliasing pixel distance from the line;

a memory that has a source rectangle in which to store the prerendered line texture; and

a blitter to blit the prerendered line texture from the source rectangle in the memory to the destination rectangle in the frame buffer, wherein the blitter stretches the prerendered line texture in a direction corresponding to the longer of the vertical and horizontal components and tiles the entire stretched prerendered line texture in a direction corresponding to the shorter of the vertical and horizontal components.

2. The system recited in claim 1 , wherein the coordinates of the destination rectangle for a particular blit are determined to maintain continuity of the destination diagonal line.

3. The system of claim 1 , wherein if the determined intensity for an anti-aliasing pixel is greater than or equal to 1, the intensity of the anti-aliasing pixel is set to a maximum intensity and wherein if the intensity determined for the anti-aliasing pixel is less than zero, the intensity of the anti-aliasing pixel is set to zero.

4. The system of claim 1 , wherein the processor is a fixed point processor and calculations are performed using fixed point numbers with a predetermined bit shift value to accommodate floating point calculations using the fixed point processor.

5. The system of claim 1 , wherein the prerendered line texture is rendered in an alpha channel, and the blitter automatically alpha blends the rendered line with an image appearing on the screen behind the rendered line.

6. The system of claim 1 , wherein coordinates for the destination rectangle are determined to maintain continuity of the diagonal destination line.

7. The system of claim 1 , wherein the blitter mirrors the prerendered line texture prior to blitting.

8. The system of claim 1 , wherein a size of the destination rectangle size is determined in accordance with the required stretching of the prerendered line texture.

9. The system of claim 1 , wherein the processor determines a number of blits required to generate the destination diagonal line in a direction corresponding to the shorter of the vertical and horizontal components.

10. A method to render a destination diagonal line having a vertical component and a horizontal component on a screen display, comprising:

storing in a frame buffer data to be displayed on the screen display;

generating a destination rectangle in the frame buffer;

generating a prerendered line texture, wherein the prerendered line texture corresponds to at least a portion of the destination diagonal line, and includes a line that has a line width, and that comprises line pixels and anti-aliasing pixels, wherein the processor determines pixel intensity of the anti-aliasing pixels in accordance with the line width such that if the line width is smaller than a predetermined line width, pixel intensity of each anti-aliasing pixel is determined as a function of the line width, and wherein if the width is larger than the predetermined line width, pixel intensity of each anti-aliasing pixel is determined a function of anti-aliasing pixel distance from the line;

storing the prerendered line texture in a source rectangle in a memory; and

blitting the prerendered line texture from the source rectangle in the memory to the destination rectangle in the frame buffer, wherein the blitter stretches the prerendered line texture in a direction corresponding to the longer of the vertical and horizontal components and tiles the entire stretched prerendered line texture in a direction corresponding to the shorter of the vertical and horizontal components.

11. The method of claim 10 , further comprising determining the coordinates of the destination rectangle for the blitting to maintain continuity of the destination diagonal line.

12. The method of claim 10 , further comprising setting the intensity of an anti-aliasing pixel to a maximum intensity if the determined intensity for the anti-aliasing pixel is greater than or equal to 1, and setting the intensity of the anti-aliasing pixel to zero if the determined intensity for the anti-aliasing pixel is less than zero.

13. The method of claim 10 , further comprising using a fixed point processor and performing calculations using fixed point numbers with a predetermined bit shift value to accommodate floating point calculations using the fixed point processor.

14. The method of claim 10 , further comprising rendering the prerendered line texture in an alpha channel, and the alpha blending the rendered line with an image appearing on the screen behind the rendered line.

15. The method of claim 10 , further comprising determining coordinates for the destination rectangle to maintain continuity of the diagonal destination line.

16. The method of claim 10 , further comprising mirroring the prerendered line texture prior to blitting.

17. The method of claim 10 , further comprising determining a size of the destination rectangle size in accordance with the required stretching of the prerendered line texture.

18. The method of claim 10 , further comprising determining a number of blits required to generate the destination diagonal line in a direction corresponding to the shorter of the vertical and horizontal components.

Assignments (6)
SUCCESSION OF AGENCY IN PATENT SECURITY INTERESTS Recorded Oct 3, 2025
From: UBS AG, STAMFORD BRANCH (AS SUCCESSOR TO CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH)
To: UBS AG, STAMFORD BRANCH
Reel/Frame 072994/0001 →
SECURITY AGREEMENT Recorded Jan 25, 2024
From: DIRECTV, LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 066371/0690 →
SECURITY AGREEMENT Recorded Aug 5, 2021
From: DIRECTV, LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A. AS COLLATERAL AGENT
Reel/Frame 058220/0531 →
SECURITY AGREEMENT Recorded Aug 3, 2021
From: DIRECTV, LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 057695/0084 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 29, 2021
From: THE DIRECTV GROUP, INC.
To: DIRECTV, LLC
Reel/Frame 057028/0004 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 19, 2015
From: NEEDHAM, LEYLAND; SCHNEIDER, ANDREW J.; DICK, JUSTIN T.; TRAN, HUY Q.
To: THE DIRECTV GROUP, INC.
Reel/Frame 037094/0518 →