1. An image rendering engine, comprising; a communications network interface; a processor; a memory coupled to the processor; a display device coupled to the processor; a first routine, stored in the memory, that executes on the processor to receive, via the communications network interface, a set of vector data comprising data defining one or more image objects and to obtain from the memory one or more text string lookup tables, wherein one of the text string lookup tables stores text characters of at least one text string as a set of pixelated text characters and encoding data defining the center position of each of a plurality of text characters associated with the text string; a second routine, stored in the memory, that executes on the processor to determine a plurality of line segments associated with a line along which the text string is to be rendered, and a range associated with each line segment; a third routine, stored in the memory, that executes on the processor to determine a text box for each of the plurality of line segments, each of the text boxes being oriented to draw text in an upright position along an associated line segment; and a fourth routine, stored in the memory, that executes on the processor to: select one of the text boxes in which to render a text character of the text string; select one or more pixels of a next one of the text characters of the text string; determine if a center of the next one of the text characters, when rendered in the selected one of the text boxes on the image, will be within the range of the line segment associated with the selected one of the text boxes; and render the pixels of the one of the text characters on the display device using the one of the text boxes if a center of the one of the text characters when rendered in the selected one of the text boxes will be within the range of the line segment associated with the selected one of the text boxes and not render the pixels of the one of the text characters on the display device using the one of the text boxes if a center of the one of the text characters when rendered in the one of the text boxes will not be within the range of the line segment associated with the one of the text boxes.
1. An image rendering engine, comprising; a communications network interface; a processor; a memory coupled to the processor; a display device coupled to the processor; a first routine, stored in the memory, that executes on the processor to receive, via the communications network interface, a set of vector data comprising data defining one or more image objects and to obtain from the memory one or more text string lookup tables, wherein one of the text string lookup tables stores text characters of at least one text string as a set of pixelated text characters and encoding data defining the center position of each of a plurality of text characters associated with the text string; a second routine, stored in the memory, that executes on the processor to determine a plurality of line segments associated with a line along which the text string is to be rendered, and a range associated with each line segment; a third routine, stored in the memory, that executes on the processor to determine a text box for each of the plurality of line segments, each of the text boxes being oriented to draw text in an upright position along an associated line segment; and a fourth routine, stored in the memory, that executes on the processor to: select one of the text boxes in which to render a text character of the text string; select one or more pixels of a next one of the text characters of the text string; determine if a center of the next one of the text characters, when rendered in the selected one of the text boxes on the image, will be within the range of the line segment associated with the selected one of the text boxes; and render the pixels of the one of the text characters on the display device using the one of the text boxes if a center of the one of the text characters when rendered in the selected one of the text boxes will be within the range of the line segment associated with the selected one of the text boxes and not render the pixels of the one of the text characters on the display device using the one of the text boxes if a center of the one of the text characters when rendered in the one of the text boxes will not be within the range of the line segment associated with the one of the text boxes. 3. The image rendering engine of claim 1 , where the fourth routine selects pixels for each one of the text characters of the text string stored within the image lookup table in turn and, for each selected one of the text characters; determines if the center of the selected one of the text characters, when rendered in the one of the text boxes, will be within the range of the line segment associated with the one of the text boxes, renders the selected one of the text characters on the display device using the one of the text boxes if the center of the selected one of the text characters when rendered in the one of the text boxes will be within the range of the line segment associated with the one of the text boxes, and selects a different one of the plurality of text boxes as the one of the text boxes for use in rendering the selected one of the text characters on the display device if the center of the selected one of the text characters, when rendered in the one of the text boxes, will not be within the range of the line segment associated with the one of the text boxes.