Abstract:
A method for rendering a page, including: obtaining an electronic document (ED) identifying a main object and multiple shadow parameters; determining a main bounding box surrounding the main object on the page; creating a main brush including the main object; calculating a shadow bounding box based on the main bounding box and at least one of the multiple shadow parameters; creating a shadow brush by applying a shadow transformation matrix to the main brush, where the shadow transformation matrix maps the main object to a shadow defined by the multiple shadow parameters; inserting, into a main display list for the page, a set of instructions to: paint the shadow bounding box with the shadow brush; and paint the main bounding box with the main brush.
Abstract:
Methods for utilizing existing typesetting applications to render documents specified in a markup language that may include objects not supported by the typesetting application are presented. In some embodiments, the method comprises parsing the document to identify objects not natively supported by the typesetting application and extract information including bounding box information pertaining to the identified objects. The typesetting application may be invoked and provided with bounding box information for the identified objects and with instructions to disregard the identified objects. The output of the typesetting application is parsed to determine layout information that corresponds to the identified objects and the identified objects may be processed using the corresponding layout information. In some embodiments, the methods disclosed may permit the use of the TeX typesetting application with documents specified in OOXML.
Abstract:
A method for managing a page, involving: obtaining an electronic document having a main object and multiple parameters defining an effect for the main object; generating a display list for the page having multiple scaled-down graphical primitives corresponding to a scaled-down version of the main object; generating a scaled-down tile having the scaled-down version of the main object by rasterizing the multiple scaled-down graphical primitives; generating an effect tile comprising a scaled-down version of the effect by applying the multiple parameters to the scaled-down tile; rasterizing the effect tile into a framebuffer for the page by up-scaling the effect tile; and outputting the framebuffer for the page.
Abstract:
Systems and methods for managing data in complex containers permit atomic addition of a plurality of data items to the containers. Each data item can occupy contiguous memory locations, although the plurality of data items may be mutually discontiguous. The method comprises creating a package object, which comprises an externally accessible array of pointer and associated integers. Each pointer points to the start of a memory location holding a distinct data item and the associated integer represents the size of the data item referenced by the pointer. A function associated with an external interface of the container determines a quantity of memory to hold the plurality of data items and invokes an externally accessible write function in the package object to add the plurality of individual data items to the container at specified locations if there is adequate memory available to hold the plurality of data items.
Abstract:
Systems and methods consistent with some embodiments of the present invention provide data structures and methods for the automatic storing, manipulating and processing of a intermediate printable data generated from a first printable data are presented. In some embodiments, the first printable data may take the form of a PDL description of a document and the intermediate printable data may take the form of a display list of objects generated from the PDL description.In some embodiments, a data structure for storing a intermediate printable data generated from a first printable data may comprise at least one memory pool, which may further comprise a plurality of uniformly sized segments to store the intermediate printable data; at least one global structure for storing information related to the one or more memory pools; and buffers for performing operations on the first printable data and the intermediate printable data.
Abstract:
A method including: receiving a document encoded in a markup language and having a page with an image and text; creating a first high-level graphics (HLG) object corresponding to the image, where the first HLG object specifies a first z-index less than zero for the first HLG object; generating a first entry in an input file including a pointer to the first HLG object; generating a second entry in the input file corresponding to the text; generating an output file using a typesetting program and the input file; in response to the first z-index not being zero: parsing the output file to identify the page; creating an ItemHandles List (IL) for the page; adding a first ItemHandle corresponding to the first entry to the IL, where the first ItemHandle including the pointer; and generating a display list for the page using the output file and the IL.
Abstract:
Methods for managing a single memory pool comprising frame buffer memory and display list memory are presented. The single memory pool can comprise sub-pools including: a super-block pool comprising a plurality of super-block objects; a node pool comprising a plurality of node objects; and a block-pool comprising a plurality of blocks. The method may comprise: receiving a memory allocation request directed to at least one of the sub-pools; allocating an object local to the sub-pool identified in the memory request, if local sub-pool objects are available to satisfy the memory request; allocating an object from super-block pool, if the memory request is directed to the node-pool or block-pool and there are no available local objects in the respective sub-pools to satisfy the memory request; and applying at least one of a plurality of memory freeing strategies, if the sub-pools lack available free objects.
Abstract:
Methods for performing rasterization on a display list are presented, wherein the display list can include bands associated with a virtual page object belonging to a first class of virtual page objects in the display list. In some embodiments, the method comprises: parsing the virtual page object to identify at least one geometric band; identifying at least one available rasterization process to rasterize the at least one geometric band; creating a second virtual page object including the geometric band, wherein the second virtual page object belongs to a second class of virtual page objects derived from the first class of virtual page objects; sending the second virtual page object including the geometric band to an available rasterization process; and rasterizing the one geometric band using the available rasterization process, wherein the rasterization process operates on the geometric band in the second virtual page object.