US2007182747A1PendingUtilityA1

High-level program interface for graphics operations

47
Assignee: HARPER JOHNPriority: Apr 16, 2004Filed: Apr 4, 2007Published: Aug 9, 2007
Est. expiryApr 16, 2024(expired)· nominal 20-yr term from priority
G06T 1/20G06F 9/451
47
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

Disclosed is a system for producing images including an application program interface. The system includes an API and techniques for creating images by defining relationships between filters and images, such relationships programmatically assembled in an object by a cooperative session between a requesting application and a graphics services resource. The system also includes aspects regarding optimization of the programmatically assembled object and techniques for rendering in multi-processor environment.

Claims

exact text as granted — not AI-modified
1 . A system for command-based interface to graphics resources comprising: 
 a first process for requesting a graphics services from a second process at runtime and using a microprocessor resource;    said request comprising an indication of function and an association between said function and a graphics object;    said second process for receiving said request and based and said request, evaluating a plurality of specifically interrelated graphics program modules by running an optimization routine to examine and optimize said modules and their inter-relationships;    each of said graphics program modules for implementing a filter function on a graphics processor resource;    said graphics processor resource for executing an optimized and compiled version of said plurality of specifically interrelated graphics program modules; and    a result graphics object yielded at runtime by said execution.    
     
     
         2 . The system of  claim 1  where said indication of function indicates any one of the following: creating an image; setting arguments associated with one or more of said filters; creating a filter; asking for the output of a filter; creating a context; rendering an image to said context or another context.  
     
     
         3 . The system of  claim 1  wherein said graphics object is one of the following: a context, an image, a filter, or a vector.  
     
     
         4 . The system of  claim 1  wherein said graphic program modules are fragment programs.  
     
     
         5 . The system of  claim 1  wherein said second process consolidates two graphic program modules into one.  
     
     
         6 . The system of  claim 1  wherein one of said filter functions is a blur function.  
     
     
         7 . A method for implementing a command-based interface to graphics resources comprising the steps of: 
 a first process requesting a graphics service from a second process at runtime and using a microprocessor resource; said request comprising an indication of function and an association between said function and a graphics object;    a second process receiving said request and based upon said request, evaluating a plurality of specifically interrelated graphics program modules by running an optimization routine to examine and optimize said modules and their inter-relationships, each of said graphics program modules for implementing a filter function on a graphics processor resource;    executing with said graphics processor resource, an optimized and compiled version of said plurality of specifically interrelated graphics program modules; and    generating a result graphics object at runtime by said execution.    
     
     
         8 . The method of  claim 7  where said indication of function indicates any one of the following: creating an image; setting arguments associated with one or more of said filters; creating a filter; asking for the output of a filter; creating a context; rendering an image to said context or another context.  
     
     
         9 . The method of  claim 7  wherein said graphics object is one of the following: a context, an image, a filter, or a vector.  
     
     
         10 . The method of  claim 7  wherein said graphic program modules are fragment programs.  
     
     
         11 . The method of  claim 7  wherein said second process consolidates two graphic program modules into one.  
     
     
         12 . The method of  claim 7  wherein one of said filter functions is a blur function.  
     
     
         13 . A method for implementing a command-based interface to graphics resources comprising the steps of: 
 a first process requesting a graphics service from a second process at runtime; said request comprising an indication of function and an association between said function and a graphics object;    a second process receiving said request and based upon said request, evaluating a plurality of specifically interrelated graphics program modules by running an optimization routine; each of said graphics program modules for implementing a filter function on a graphics processor resource; said optimization routine comprising the substeps of (a) determining whether an output product of a first graphics program module will comprise data that is similar to an input product of a second graphics program module; (b) examining each program line in said second graphics program module to determine if it negates the possibility of combining said first and second graphics program modules, (c) identifying references to said input product in the program code of said second graphics program module; and (d) altering or replacing said identified references to said input product,    executing with said graphics processor resource, a compiled version of said plurality of specifically interrelated graphics program modules; and    generating a result graphics object at runtime by said execution.    
     
     
         14 . The method of  claim 13  wherein the step of running said optimization routine comprises the substep of renaming local variables.  
     
     
         15 . The method of  claim 13  wherein the step of running said optimization routine comprises the substep of renaming a texture reference.  
     
     
         16 . The method of  claim 13  wherein the step of running said optimization routine comprises the substep of analyzing each said program line to determine if there are dependant texture references.  
     
     
         17 . The method of  claim 13  wherein the step of running said optimization routine comprises the substep replacing references to a texture with references to a register.  
     
     
         18 . A method for implementing a command-based interface to graphics resources comprising the steps of: 
 a first process requesting a graphics service from a second process at runtime; said request comprising an indication of function and an association between said function and a graphics object;    a second process receiving said request and based upon said request, evaluating a plurality of specifically interrelated graphics program modules by running an optimization routine; each of said graphics program modules for implementing a filter function on a graphics processor resource; said optimization routine comprising the substeps of, determining whether an output of a first graphics program module represents relevant data elements that are the same as data elements represented by an input of a second graphics program module; examining each program line in said second graphics program module to determine if it negates the possibility of combining said first and second graphics program modules, and editing program code to alter or replace at least one reference to said input of said second graphics program module;    executing with said graphics processor resource, a compiled version of said plurality of specifically interrelated graphics program modules; and    generating a result graphics object at runtime by said execution.    
     
     
         19 . The method of  claim 18  wherein the step of running said optimization routine comprises the substep of renaming local variables.  
     
     
         20 . The method of  claim 18  wherein the step of running said optimization routine comprises the substep of renaming a texture reference.  
     
     
         21 . The method of  claim 18  wherein the step of running said optimization routine comprises the substep of analyzing each said program line to determine if there are dependant texture references.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.