← Back to Patent Explorer
US4935880A Expired / Lapsed US ⏱️ 0.0 years remaining

Method of tiling a figure in graphics rendering system

Assignee: Hewlett Packard Development Co LP
•
Filing: 1987-12-24
•
Granted: 1990-06-19
•
Expires: 2007-12-24
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A method for drawing a convex geometric figure to framebuffer storage uses a plurality of update arrays which tile the framebuffer, each having a determined origin with respect to the framebuffer. Each update array has a multiplicity of concurrently updatable pixel storage sites, each specified by an offset from array origin. A figure is specified by a set of directed segments which form its perimeter. To access only those update arrays which tile the figure, the following methodology is used. A first update array which is known to be part of the figure is accessed. Tests are then performed to find whether the figure extends to arrays above or below the accessed array. If so, the array address is stored and marked for either or both extensions. In one embodiment, a test is performed for left extension, and the steps are repeated until no further left extension is found. Returning to the initial array, the steps are repeated for right extension to complete the horizontal subset. The array marked for either up or down extension of the figure is next accessed and the steps are repeated with respect to the indicated vertically adjacent array until no further extension is found in that vertical direction; the steps are then repeated for the other vertical direction. Using this method, the figure is efficiently tiled without duplicating access to any update arrays and without accessing any update arrays that do not tile the figure.

Inventors

  • 👤 Brian Kelleher
  • 👤 Thomas C. Furlong

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-28 21:42
CPC Classifications
G; G09; G09G; G09G5/00; G09G5/36; G09G5/39; G09G5/393

Claims Analysis

Total Claims: 12
Claim 1
Independent Claim 460 words
In a graphics subsystem having framebuffer storage organized for storing signals specifying pixels (x,y) of an X×Y raster framebuffer, said storage being sequentially addressable as a plurality of framebuffer pixel update arrays which tile the framebuffer, including a plurality of horizontal rows of update arrays forming an array of said update arrays, each said update array having a determined origin with respect to said framebuffer and comprising storage sites for specifications of a plurality of contiguously positioned framebuffer pixels, each said storage site being specifiable by an offset with respect to said update array origin, pixel specifications for all the storage sites of a said update array being concurrently updatable in a parallel memory transaction, a method of accessing from among said update arrays a horizontal subset to which is mapped a geometric figure to be drawn to said framebuffer, comprising the steps: (1-1) accessing a first said update array, and storing a specification of said array address denoting it as the first accessed update array, (1-2) testing whether said geometric figure is mapped to an update array positioned vertically above said accessed array with respect to the framebuffer, and if so, and if no previous array in the present horizontal row has been marked for upward continuation of said figure, storing a specification of said array address if not previously stored, and marking said stored array address specification for upward continuation of said figure, (1-3) testing whether said geometric figure is mapped to the update array positioned vertically below said accessed array with respect to the framebuffer, and if so, and if no previous array in the present horizontal row has been marked for downward continuation of said figure, storing a specification of said array address if not previously stored, and marking said stored array address specification for downward continuation of said figure, (1-4) testing whether the geometric figure is mapped to an update array positioned horizontally next to the left of said accessed array with respect to the framebuffer, and if so, accessing said next left array, (1-5) repeating steps (1-2)-(1-4) with respect to the array accessed in step (1-4) until the geometric figure is found not to be mapped to the next left array, (1-6) reading said stored array address denoted in step (1-1) as the first accessed update array and denoting the update array corresponding to said stored array address as the last accessed update array, (1-7) testing whether said geometric figure is mapped to an update array positioned horizontally next to the right of the last accessed update array with respect to the framebuffer, and if so, accessing said next right array, and (1-8) repeating steps (1-2), (1-3) and (1-7) until said geometric figure is found not to be mapped to the next right array.
Claim 2
Dependent Claim 460 words
In a graphics subsystem having framebuffer storage organized for storing signals specifying pixels (x,y) of an X×Y raster framebuffer, said storage being sequentially addressable as a plurality of framebuffer pixel update arrays which tile the framebuffer, including a plurality of horizontal rows of update arrays forming an array of said update arrays, each said update array having a determined origin with respect to said framebuffer and comprising storage sites for specifications of a plurality of contiguously positioned framebuffer pixels, each said storage site being specifiable by an offset with respect to said update array origin, pixel specifications for all the storage sites of a said update array being concurrently updatable in a parallel memory transaction, a method of accessing from among said update arrays a horizontal subset to which is mapped a geometric figure to be drawn to said framebuffer, comprising the steps: (1-1) accessing a first said update array, and storing a specification of said array address denoting it as the first accessed update array, (1-2) testing whether said geometric figure is mapped to an update array positioned vertically above said accessed array with respect to the framebuffer, and if so, and if no previous array in the present horizontal row has been marked for upward continuation of said figure, storing a specification of said array address if not previously stored, and marking said stored array address specification for upward continuation of said figure, (1-3) testing whether said geometric figure is mapped to the update array positioned vertically below said accessed array with respect to the framebuffer, and if so, and if no previous array in the present horizontal row has been marked for downward continuation of said figure, storing a specification of said array address if not previously stored, and marking said stored array address specification for downward continuation of said figure, (1-4) testing whether the geometric figure is mapped to an update array positioned horizontally next to the left of said accessed array with respect to the framebuffer, and if so, accessing said next left array, (1-5) repeating steps (1-2)-(1-4) with respect to the array accessed in step (1-4) until the geometric figure is found not to be mapped to the next left array, (1-6) reading said stored array address denoted in step (1-1) as the first accessed update array and denoting the update array corresponding to said stored array address as the last accessed update array, (1-7) testing whether said geometric figure is mapped to an update array positioned horizontally next to the right of the last accessed update array with respect to the framebuffer, and if so, accessing said next right array, and (1-8) repeating steps (1-2), (1-3) and (1-7) until said geometric figure is found not to be mapped to the next right array.
Claim 3
Dependent Claim 367 words
In a graphics subsystem having framebuffer storage organized for storing signals specifying the pixels (x,y) of an X×Y raster framebuffer, said storage being sequentially addressable as a plurality of framebuffer pixel update arrays which tile the framebuffer, including a plurality of horizontal rows of update arrays forming an array of said update arrays, each said update array having a determined origin with respect to said framebuffer and comprising storage sites for specifications of a plurality of contiguously positioned framebuffer pixels, each said storage site being specifiable by an offset with respect to said update array origin, pixel specifications for all the storage sites of a said update array being concurrently updatable in a parallel memory transaction, a method of accessing from among said update arrays a subset which tiles a geometric figure to be drawn to said framebuffer, comprising the steps: (2-1) performing the steps of claim 1 until, in a first horizontal row of said update arrays, all update arrays to which said geometric figure is mapped have been accessed, (2-2) reading said stored array address marked for upward continuation of said figure, accessing the update array vertically above the update array corresponding to said stored array address, storing a specification of the address of said array denoting it as the first accessed update array, and repeating steps (1-2)-(18) of claim 1 with respect to the current accessed array until a next horizontal subset of arrays to which the geometric figure is mapped has been accessed, (2-3) repeating step (2-2) for further horizontal subsets until there are no further stored addresses marked for upward continuation of said figure, (2-4) reading said stored array address marked for downward continuation of said figure, accessing the update array vertically below the update array corresponding to said stored array address, storing a specification of the address of said array denoting it as the first accessed update array, and repeating steps (1-2)-(1-8) of claim 1 with respect to the current accessed array until a next horizontal subset of arrays to which the geometric figure is mapped has been accessed, and (2-5) repeating step (2-4) for further horizontal subsets until there are no further addresses marked for downward continuation of said figure.
Claim 4
Dependent Claim 79 words
The method of claim 2, further comprising the steps: (8-1) deriving and storing a specification with respect to said framebuffer of a box bounding said geometric figure to be drawn; (8-2) before accessing each update array after said initial array, comparing the position of said update array with respect to the framebuffer with said stored specification of said bounding box; and (8-3) accessing said update array only if said array is mapped to the area of said bounding box.
Claim 5
Dependent Claim 25 words
The method of claim 1, wherein the update array to which a first vertex of said geometric figure is mapped is accessed in step (1-1).
Claim 6
Dependent Claim 359 words
In a graphics subsystem having framebuffer storage organized for storing signals specifying the pixels (x,y) of an X×Y raster framebuffer, said storage being sequentially addressable as a plurality of framebuffer pixel update arrays, the set of said update arrays tiling the framebuffer, each said update array having a determined origin with respect to said framebuffer and comprising storage sites for specifications of a plurality of contiguously positioned framebuffer pixels, each said storage site being specifiable by an offset with respect to said update array origin, pixel specifications for all the storage sites of a said update array being concurrently updatable in a parallel memory transaction, a method of accessing from among said update arrays a subset which tiles a geometric figure to be drawn to said framebuffer, comprising the steps: (7-1) performing the steps of claim 1 until in a first horizontal subset of arrays, all arrays to which the geometric figure is mapped have been accessed, (7-2) reading said stored array address marked for downward continuation of said figure of the first horizontal subset, accessing the update array vertically below the update array specified by said read array address, storing a specification of the address of said accessed array denoting it as the first update array accessed, and repeating steps (1-2)-(1-8) of claim 1 with respect to the current accessed array until a next horizontal subset of arrays to which the geometric figure is mapped has been accessed, (7-3) repeating step (7-2) for further horizontal subsets until there are no further addresses marked for downward continuation of said figure, (7-4) reading said stored array address marked for upward continuation of said figure, accessing the update array vertically above the update array specified by said read array address, storing a specification of the address of said array denoting it as the first update array accessed, and repeating steps (1-2)-(1-8) of claim 1 with respect to the current accessed array until a next horizontal subset of arrays to which the geometric figure is mapped has been accessed, and (7-5) repeating step (7-2) for further horizontal subsets until there are no further stored addresses marked for upward continuation of said figure.
Claim 7
Dependent Claim 395 words
In a graphics subsystem having framebuffer storage organized for storing signals specifying the pixels (x,y) of an X×Y raster framebuffer, said storage being sequentially addressable as a plurality of framebuffer pixel update arrays which tile the framebuffer, including a plurality of horizontal rows of update arrays forming an array of said update arrays, each said update array having a determined origin with respect to said framebuffer and comprising storage sites for specifications of a plurality of contiguously positioned framebuffer pixels, each said storage site being specifiable by an offset with respect to said update array origin, pixel specifications for all the storage sites of a said update array being concurrently updatable in a parallel memory transaction, a method of accessing from among said update arrays a subset which tiles a geometric figure to be drawn to said framebuffer, comprising the steps: (4-1) accessing an update array to which a first vertex of said geometric figure is mapped, and storing a specification of said array address denoting it as the first accessed update array, (4-2) performing the steps of claim 1 until, in a first horizontal subset of said update arrays, all update arrays to which the geometric figure is mapped have been accessed, (4-3) reading said stored array address marked for upward continuation of said figure, accessing the update array vertically above the update array specified by said read array address, storing a specification of the address of said array denoting it as the first accessed update array, and repeating steps (1-2)-(1-8) of claim 1 with respect to the current accessed array until a next horizontal subset of arrays to which the geometric figure is mapped has been accessed, (4-4) repeating step (4-3) for further horizontal subsets until no further stored addresses marked for up are found, (4-5) reading said stored array address marked for downward continuation of said figure, accessing the update array vertically below the update array specified by said read array address, storing a specification of the address of said array denoting it as the first accessed update array, and repeating steps (1-2)-(1-8) of claim 1 with respect to the current accessed array until a next horizontal subset of arrays to which the geometric figure is mapped has been accessed, and (4-6) repeating step (4-5) for further horizontal subsets until there are no further addresses marked for downward continuation of said figure.
Claim 8
Dependent Claim 368 words
In a graphics subsystem having framebuffer storage organized for storing signals specifying the pixels (x,y) of an X×Y raster framebuffer, said storage being sequentially addressable as a plurality of framebuffer pixel update arrays which tile the framebuffer, including a plurality of horizontal rows of update arrays forming an array of said update arrays, each said update array having a determined origin with respect to said framebuffer and comprising storage sites for specifications of a plurality of contiguously positioned framebuffer pixels, each said storage site being specifiable by an offset with respect to said update array origin, pixel specifications for all the storage sites of a said update array being concurrently updatable in a parallel memory transaction, a method of accessing from among said update arrays a horizontal subset to which is mapped a geometric figure to be drawn to said framebuffer, comprising the steps: (5-1) finding the left-most element of said geometric figure with respect to said framebuffer, (5-2) accessing an update array to which said left-most element is mapped, (5-3) testing whether said geometric figure is mapped to an update array positioned vertically above said accessed array with respect to the framebuffer, and if so, and if no previous array in the present horizontal row has been marked for up, storing a specification of said array address if not previously stored, and marking said stored array address specification for upward continuation of said figure, (5-4) testing whether said geometric figure is mapped to an update array positioned vertically below said accessed array with respect to the framebuffer, and if so, and if no previous array in the present horizontal row has been marked for downward continuation of said figure, storing a specification of said array address if not previously stored, and marking said stored array address specification for downward continuation of said figure, (5-5) testing whether said geometric figure is mapped to the update array positioned horizontally next to the right of said accessed array with respect to the framebuffer, and if so, accessing said next right array, and (5-6) repeating steps (5-3)-(5-5) with respect to the array accessed in step (5-5) until the geometric figure is found not to be mapped to the next right array.
Claim 9
Dependent Claim 368 words
In a graphics subsystem having framebuffer storage organized for storing signals specifying the pixels (x,y) of an X×Y raster framebuffer, said storage being sequentially addressable as a plurality of framebuffer pixel update arrays which tile the framebuffer, including a plurality of horizontal rows of update arrays forming an array of said update arrays, each said update array having a determined origin with respect to said framebuffer and comprising storage sites for specifications of a plurality of contiguously positioned framebuffer pixels, each said storage site being specifiable by an offset with respect to said update array origin, pixel specifications for all the storage sites of a said update array being concurrently updatable in a parallel memory transaction, a method of accessing from among said update arrays a horizontal subset to which is mapped a geometric figure to be drawn to said framebuffer, comprising the steps: (5-1) finding the left-most element of said geometric figure with respect to said framebuffer, (5-2) accessing an update array to which said left-most element is mapped, (5-3) testing whether said geometric figure is mapped to an update array positioned vertically above said accessed array with respect to the framebuffer, and if so, and if no previous array in the present horizontal row has been marked for up, storing a specification of said array address if not previously stored, and marking said stored array address specification for upward continuation of said figure, (5-4) testing whether said geometric figure is mapped to an update array positioned vertically below said accessed array with respect to the framebuffer, and if so, and if no previous array in the present horizontal row has been marked for downward continuation of said figure, storing a specification of said array address if not previously stored, and marking said stored array address specification for downward continuation of said figure, (5-5) testing whether said geometric figure is mapped to the update array positioned horizontally next to the right of said accessed array with respect to the framebuffer, and if so, accessing said next right array, and (5-6) repeating steps (5-3)-(5-5) with respect to the array accessed in step (5-5) until the geometric figure is found not to be mapped to the next right array.
Claim 10
Dependent Claim 348 words
In a graphics subsystem having framebuffer storage organized for storing signals specifying the pixels (x,y) of an X×Y raster framebuffer, said storage being sequentially addressable as a plurality of framebuffer pixel update arrays which tile the framebuffer, including a plurality of horizontal rows of update arrays forming an array of said update arrays, each said update array having a determined origin with respect to said framebuffer and comprising storage sites for specifications of a plurality of contiguously positioned framebuffer pixels, each said storage site being specifiable by an offset with respect to said update array origin, pixel specifications for all the storage sites of a said update array being concurrently updatable in a parallel memory transaction, a method of accessing from among said update arrays a subset which tiles a geometric figure to be drawn to said framebuffer, comprising the steps: (6-1) performing the steps of claim 5 until in a first horizontal subset of arrays, all arrays to which the geometric figure is mapped have been accessed, (6-2) reading said stored array address marked for upward continuation of said figure, accessing the update array vertically above the specified array, storing a specification of the address of said array marked as initial, and repeating steps (5-2)-(5-7) of claim 5 with respect to the current accessed array until a next horizontal subset of arrays to which the geometric figure is mapped has been accessed, (6-3) repeating step (6-2) for further horizontal subsets until there are no further stored addresses marked for upward continuation of said figure, (6-4) popping to the stored array address marked for downward continuation of said figure of the first horizontal subset, accessing the update array vertically below the specified array, storing a specification of the address of said array marked as initial, and repeating steps (5-2)-(5-7) of claim 5 with respect to the current accessed array until a next horizontal subset of arrays to which the geometric figure is mapped has been accessed, and (6-5) repeating step (6-3) for further horizontal subsets until there are no further addresses marked for downward continuation of said figure.
Claim 11
Dependent Claim 281 words
In a graphics subsystem having framebuffer storage organized for storing signals specifying the pixels (x,y) of an X×Y raster framebuffer, said storage being sequentially addressable as a plurality of framebuffer pixel update arrays which tile the framebuffer, including a plurality of horizontal rows of update arrays forming an array of said update arrays, each said update array having a determined origin with respect to said framebuffer and comprising storage sites for specifications of a plurality of contiguously positioned framebuffer pixels, each said storage site being specifiable by an offset with respect to said update array origin, pixel specifications for all the storage sites of a said update array being concurrently updatable in a parallel memory transaction, a method of testing whether a geometric figure to be drawn to the framebuffer, mapped to a first said update array, is mapped to a neighboring update array adjacent to said first array with respect to the framebuffer, comprising: specifying said geometric figure by specifying with respect to said framebuffer a set of directed lines such that the segments of said lines between their mutual intersections comprise the boundary of said figure, specifying for said first update array with respect to said adjacent array, a pair of sample framebuffer pixels, comprising a corner pixel of said first update array which is adjacent said neighboring update array, and a second sample pixel which is adjacent said neighboring update array and adjacent said first update array, evaluating, for each specified directed line, the sidedness of said sample pixels with respect to said directed line, and when at least one of said sample pixels is inside with respect to each said directed line, accessing said adjacent update array.
Claim 12
Dependent Claim 281 words
In a graphics subsystem having framebuffer storage organized for storing signals specifying the pixels (x,y) of an X×Y raster framebuffer, said storage being sequentially addressable as a plurality of framebuffer pixel update arrays which tile the framebuffer, including a plurality of horizontal rows of update arrays forming an array of said update arrays, each said update array having a determined origin with respect to said framebuffer and comprising storage sites for specifications of a plurality of contiguously positioned framebuffer pixels, each said storage site being specifiable by an offset with respect to said update array origin, pixel specifications for all the storage sites of a said update array being concurrently updatable in a parallel memory transaction, a method of testing whether a geometric figure to be drawn to the framebuffer, mapped to a first said update array, is mapped to a neighboring update array adjacent to said first array with respect to the framebuffer, comprising: specifying said geometric figure by specifying with respect to said framebuffer a set of directed lines such that the segments of said lines between their mutual intersections comprise the boundary of said figure, specifying for said first update array with respect to said adjacent array, a pair of sample framebuffer pixels, comprising a corner pixel of said first update array which is adjacent said neighboring update array, and a second sample pixel which is adjacent said neighboring update array and adjacent said first update array, evaluating, for each specified directed line, the sidedness of said sample pixels with respect to said directed line, and when at least one of said sample pixels is inside with respect to each said directed line, accessing said adjacent update array.

References Cited (Backward Citations)

US4590465A Cited
WO1985000679A1 Cited
EP0201754A2 Cited
EP0231780A2 Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1993-06-18 1993-12-18 1994-06-19 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 1997-06-18 1997-12-18 1998-06-19 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2001-06-18 2001-12-18 2002-06-19 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag