Generating data-mapped visualization of data
AssigneeMicrosoft Technology Licensing, LLC
InventorsRoland Lucas Fernandez, Steven M. Drucker
Life of this patent
Estimating the term…
Abstract
Aspects of the subject matter described herein relate to data visualization. In aspects, a caller sends a request to draw a set of shapes that have a shape type common among the shapes. The request may be for a static drawing or 1 of N animation frames. If the device has a graphical processing unit (GPU) that is available, GPU code is generated for the GPU to draw the set of shapes. Otherwise, CPU code is generated to draw the set of shapes. The drawing code is tailored to the constant, data-mapped, and animated attribute values specified by the caller and omits conditional statements that test values that are computable prior to drawing the shapes.
Claims19
A method implemented by a computer, the method comprising:
- receiving, from a caller, a request to draw a set of shapes at an interface of a batch shape drawing engine, the set of shapes having a shape type that is common among the shapes, the set of shapes having a number, and the set of shapes having constant and data-mapped attribute values, the request indicating the shape type, the number of the shapes, and the constant and data-mapped attribute values to be used in drawing the shapes, wherein if the request involves animation, the request also indicates a from set of constant and data-mapped attribute values;
- determining that a device hosting the batch shape drawing engine has a graphical processing unit (GPU);
- after it is determined that the device has the GPU,
- generating GPU code suitable for the GPU to draw the set of shapes optimized for the constant and data-mapped attribute values specified by the caller, the GPU code omitting conditional statements that test values that are knowable prior to drawing the shapes;
- receiving, from a second caller, a second request to draw a second set of shapes at an interface of a second batch shape drawing engine, the second request indicating a second shape type, a second number of shapes, and a second constant and second data-mapped attribute values to be used in drawing the second set of shapes,
- determining that a second device hosting the second batch shape drawing engine does not have a graphical processing unit (GPU);
- based on determining that the second device does not have a GPU;
- generating central processing unit (CPU) code suitable for a CPU to draw the second set of shapes optimized for the second constant and second data-mapped attribute values provided by the second caller, the CPU code omitting the conditional statements that test values that are knowable prior to drawing the shapes.
In a computing environment, a system, comprising:
- receiving, from a caller, a request to draw a set of shapes at an interface of the batch shape drawing engine, the set of shapes having a shape type that is common among the shapes, the set of shapes having a number, and the set of shapes having constant and data-mapped attribute values, the request indicating the shape type, the number of the shapes, and the constant and data-mapped attribute values to be used in drawing the shapes,
- determining that a system has a graphical processing unit (GPU) available to the batch shape drawing engine,
- after it is determined that the system has a GPU available to the batch shape drawing engine,
- generating GPU code suitable for the GPU to draw the set of shapes specific to the constant and data-mapped attribute values specified by the caller, the GPU code omitting conditional statements that test values that are knowable prior to drawing the shapes,
- receiving, from a second caller, a second request to draw a second set of shapes at an interface of a second batch shape drawing engine, the second request indicating a second shape type, a second number of shapes, and a second constant and second data-mapped attribute values to be used in drawing the second set of shapes,
- determining that a second device hosting the second batch shape drawing engine does not have a graphical processing unit (GPU);
- based on determining that the second device does not have the GPU available to the batch shape drawing engine
- generating processor code suitable for the processor to draw the second set of shapes specific to the second constant and second data-mapped attribute values provided by the second caller, the processor code omitting conditional statements that test values that are knowable prior to drawing the shapes.
A computer-readable storage media storing instructions that, when executed, perform a method, the emethod comprising:
- receiving, from a caller, a request to draw a set of shapes at an interface of a batch shape drawing engine, the set of shapes having a shape type that is common among the shapes, the set of shapes having a number, and the set of shapes having constant and data-mapped attribute values, the request indicating the shape type, the number of the shapes, and the constant and data-mapped attribute values to be used in drawing the shapes, wherein if the request involves animation, the request also indicates a from set of constant and data-mapped attribute values;
- determining that a device hosting the batch shape drawing engine has a graphical processing unit (GPU);
- after it is determined that the device has the GPU,
- generating GPU code suitable for the GPU to draw the set of shapes optimized for the constant and data-mapped attribute values specified by the caller, the GPU code omitting conditional statements that test values that are knowable prior to drawing the shapes;
- receiving, from a second caller, a second request to draw a second set of shapes at an interface of a second batch shape drawing engine, the second request indicating a second shape type, a second number of shapes, and a second constant and second data-mapped attribute values to be used in drawing the second set of shapes,
- determining that a second device hosting the second batch shape drawing engine does not have a graphical processing unit (GPU);
- based on determining that the second device does not have a GPU;
- generating central processing unit (CPU) code suitable for a CPU to draw the second set of shapes optimized for the second constant and second data-mapped attribute values provided by the second caller, the CPU code omitting conditional statements that test values that are knowable prior to drawing the shapes.
Dependencies are inferred from the claim text.