IP Library Granted Patent US 7,623,130
Granted Patent B1
US 7,623,130 · App. 11/113,815 · Granted Nov 24, 2009

Text rendering with improved command stream operations

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 7,623,130
App. No.
11/113,815
Granted
Nov 24, 2009
Kind
B1
Abstract

A system, method, and computer program for high-speed, efficient text rendering are disclosed. In accordance with certain embodiments of the present invention, an image resource architecture is provided for optimal sub-image uploads to keep the glyph cache up to date. A glyph cache is divided into zones, or sub-caches, wherein requests for writing a glyph bitmap to the cache may be handled by destroying or clearing an entire zone. In accordance with other embodiments of the present invention, a highly efficient method of rendering is provided wherein commands are automatically combined and made into larger commands for the GPU. Alternatively, rather than performing a command stream flush upon each intersection, a texture cache flush may be implemented. All source glyph bitmaps may be placed into one texture.

Claims (36)

1. A method for rendering text, the method comprising the steps of:

adding a first command to a command stream to draw a first glyph;

developing a second command to draw a second glyph;

determining an occurrence of an intersection between the first glyph and the second glyph;

upon the occurrence of the intersection, inserting a command transition in the command stream between the second command and the first command;

providing the command stream to display hardware; and

the display hardware displaying the glyphs on a display.

2. The method as claimed in claim 1 , wherein the step of determining the occurrence of an intersection between the first glyph and the second glyph comprises determining an occurrence of a change in the slope of a line drawn from the first glyph to the second glyph and indicating an intersection on the occurrence of the change.

3. The method as claimed in claim 2 , wherein if the slope of the line flow of the first character in the line to the second glyph does not change, an intersection is not indicated.

4. The method as claimed in claim 1 , wherein the command transition is the termination of the command stream containing the first glyph and the starting of a new command stream containing the second glyph.

5. The method as claimed in claim 1 , wherein the command transition is the insertion of a texture unit flush command into the command stream and the second glyph is included in the command stream after the texture unit flush command.

6. A computer-readable medium having computer-executable instructions for performing the method comprising:

adding a first command to a command stream to draw a first glyph;

developing a second command to draw a second glyph;

determining an occurrence of an intersection between the first glyph and the second glyph;

upon the occurrence of the intersection, inserting a command transition in the command stream between the second command and the first command; and

providing the command stream to display hardware.

7. The method as claimed in claim 6 , wherein the step of determining the occurrence of an intersection between the first glyph and the second glyph comprises determining an occurrence of a change in the slope of a line drawn from the first glyph to the second glyph and indicating an intersection on the occurrence of the change.

8. The method as claimed in claim 7 , wherein if the slope of the line flow of the first character in the line to the second glyph does not change, an intersection is not indicated.

9. The method as claimed in claim 6 , wherein the command transition is the termination of the command stream containing the first glyph and the starting of a new command stream containing the second glyph.

10. The method as claimed in claim 6 , wherein the command transition is the insertion of a texture unit flush command into the command stream and the second glyph is included in the command stream after the texture unit flush command.

11. A computer system for rendering text, the system comprising:

a central processing unit;

a graphics processor unit;

a memory operatively coupled to the graphics processor unit and to the central processing unit;

a connection coupled to the graphics processor unit to allow a display device to be operatively coupled to the graphics processor unit; and

an application executable within the central processing unit and memory, the application performing the method comprising:

adding a first command to a command stream to draw a first glyph;

developing a second command to draw a second glyph;

determining an occurrence of an intersection between the first glyph and the second glyph;

upon the occurrence of the intersection inserting a command transition in the command stream between the second command and the first command; and

providing the command stream to display hardware.

12. The method as claimed in claim 11 , wherein the step of determining the occurrence of an intersection between the first glyph and the second glyph comprises determining an occurrence of a change in the slope of a line drawn from the first glyph to the second glyph and indicating an intersection on the occurrence of the change.

13. The method as claimed in claim 12 , wherein if the slope of the line flow of the first character in the line to the second glyph does not change, an intersection is not indicated.

14. The method as claimed in claim 11 , wherein the command transition is the termination of the command stream containing the first glyph and the starting of a new command stream containing the second glyph.

15. The method as claimed in claim 11 , wherein the command transition is the insertion of a texture unit flush command into the command stream and the second glyph is included in the command stream after the texture unit flush command.

Assignments (1)
CHANGE OF NAME Recorded May 11, 2007
From: APPLE COMPUTER, INC.
To: APPLE INC.
Reel/Frame 019265/0961 →