home *** CD-ROM | disk | FTP | other *** search
/ ftp.ee.pdx.edu / 2014.02.ftp.ee.pdx.edu.tar / ftp.ee.pdx.edu / pub / lpf / patent.5083262 < prev    next >
Text File  |  1992-11-03  |  10KB  |  176 lines

  1. 5,083,262
  2. Language bindings for graphics functions to enable one application program to
  3.                 be used in different processing environments
  4.  
  5. INVENTOR:      Lyle E. Haff, Jr., Owego, NY
  6. ASSIGNEE:      International Business Machines Corporation, Armonk, NY
  7. APPL-NO:       07/590,327
  8. DATE FILED:    Sep. 27, 1990
  9. REL-US-DATA:   Continuation of Ser. No. 856,710, Apr. 28, 1986, abandoned.
  10. INT-CL:        [5] G06F 9/45; G06F 15/60; G06F 9/44
  11. US-CL-ISSUED:  395/500; 364/239.9, 927.92, 977.1, 978, DIG.1, DIG.2
  12. US-CL-CURRENT: 395/500; 364/239.9, 927.92, 977.1, 978, DIG.1, DIG.2
  13. SEARCH-FLD:    364/200MSFile, 900MSFile
  14. REF-CITED: 
  15.                             U.S. PATENT DOCUMENTS
  16.      3,558,811    1/1971   Montevecchio et al.            364/900
  17.      3,653,001    3/1972   Ninke                          364/200
  18.      3,830,962    8/1974   Mailloux                       364/900
  19.      3,893,075    7/1975   Orban et al.                   364/900
  20.      4,094,000    6/1978   Brudevold                      364/900
  21.      4,177,514   12/1979   Rupp                           364/200
  22.      4,414,621   11/1983   Bown et al.                    364/200
  23.      4,525,804    6/1985   Mosier et al.                  364/900
  24.      4,529,978    7/1985   Rupp                           340/727
  25.      4,539,653    9/1985   Bartlett et al.                364/900
  26.      4,623,963   11/1986   Phillips                       364/300
  27.      4,646,228    2/1987   Ikeda                          364/192
  28.      4,649,479    3/1987   Advani et al.                  364/300
  29.      4,694,396    9/1987   Weisshaar et al.               364/300
  30.  
  31.                              OTHER PUBLICATIONS
  32. IBM Publication entitled "Graphics Development Toolkit", (Aug. 1984), pp.
  33.   iii-xiii, 1-1 to 1-33.
  34. IBM Publication entitled "IBM Personal Computer Graphical File System", (Nov.
  35.   1984), pp. iii-xxv.
  36. IBM Publication entitled "IBM Virtual Machine/Personal Computer User's
  37.   Guide", (Dec. 1984), pp. iii-xiii.
  38. "GSS-Drivers Assembler Binding Programmer's Guide", Graphic Software Systems,
  39.   Inc. (Oct. 1984), pp. iii-ix, 1-1 to 1-10.
  40. IBM Publication GA37-0014-0 entitled "IBM VM/PC Toolkit-VDI Graphics User's
  41.   Guide", published Aug. 1985.
  42. ART-UNIT:      232
  43. PRIM-EXMR:     Thomas C. Lee
  44. ASST-EXMR:     Ken S. Kim
  45. LEGAL-REP:     Baker, Maxham, Jester & Meador
  46.  
  47. ABSTRACT: 
  48. Establishing a language specific linkage between high-level graphics
  49. application programs written in a specific programming language and different
  50. intermediate-level graphics processors permit a graphics application program
  51. to be transported between and used in different graphics processing systems.
  52. A single, portable graphics application program can be used with any of the
  53. graphics processors with which an application language linkage has been
  54. established to produce graphs on an output device.
  55.                14 Claims, 5 Drawing Figures
  56. EXMPL-CLAIM:   1
  57. NO-PP-DRAWING: 4
  58.  
  59. PARENT-CASE: 
  60.  
  61.  This is a continuation of application Ser. No. 06/856,710 filed Apr. 28,
  62. 1986, now abandoned.
  63.  
  64. SUMMARY: 
  65.  
  66.                          BACKGROUND OF THE INVENTION
  67.  
  68.  The invention is in the field of computer graphics, and more particularly
  69. concerns the operation of diverse graphics processors in response to a single
  70. graphics application program written in a certain programming language, the
  71. response of any graphics processor afforded by means of a set of common
  72. language linkages that translate the application program functions into sets
  73. of commands and data for the processor.
  74.  
  75.  As is known in the art, a graphics processor is a software construct
  76. embracing a set of callable subroutines, functions, or commands that provides
  77. an interface between graphics application programs written in
  78. device-independent languages and a graphics output device that produces
  79. graphs defined by the application programs. The graphics processor
  80. constitutes an intermediary between an application program written in a
  81. high-level, user-comprehendible programming language and device-dependent
  82. graphics device processors, which respond to sets of low-level instructions.
  83. The volume by J. Foley and A. Van Dam, entitled "Fundamentals Of Interactive
  84. Computer Graphics," Addison-Wesley, 1982, 1984 is instructive in the
  85. characteristics and operations of graphics processors.
  86.  
  87.  In the past, the structure and operation of a graphics processor have had to
  88. take into account the characteristics of the software and hardware context
  89. within which the processor operates. Thus, a representative graphics
  90. processor is the graphics data display manager (GDDM) processing subsystem
  91. designed for operation in the main frame computer environment exemplified by
  92. the System 370 computing system available from IBM. The GDDM provides a
  93. graphics-output-device-independent interface to an application programmer,
  94. receives application language function or subroutine calls which set
  95. processor operational conditions and activate processor graphical primitive
  96. commands, and operates an output device driver, which produces graph
  97. representations corresponding to the called commands and having attributes
  98. determined by the set conditions.
  99.  
  100.  Another graphics processor is represented by the proposed Computer Graphics
  101. Interface (CGI) Standard X3.122 promulgated by ANSI. The Computer Graphics
  102. Interface defines the characteristics of a graphics processor which stands
  103. between output device-specific drivers and output device-independent
  104. application processes in a graphics environment. For application programs,
  105. the CGI processor performs receiving and operating functions that correspond
  106. to those of the GDDM. However, the CGI assumes a basic set of graphics
  107. primitives such as shapes, lines, and text characters, and associates with
  108. each set of primitives a respective set of primitive attributes such as
  109. color, line thickness, and character type. The CGI receives the application
  110. program graphics command and attribute information in the form of one or more
  111. standard data objects called "metafiles." A metafile is a device-independent
  112. description of a graph or graph portion in terms of graphical primitive
  113. elements such as lines or text and primitive attributes such as line color
  114. and text style. The metafiles received by the processor cause it to operate a
  115. specified output device driver. An IBM product, the personal computer AT/370,
  116. has available a graphics processor referred to as the Virtual Device
  117. Interface (VDI), which embodies the CGI Standard.
  118.  
  119.  It will be evident to those skilled in the art that the subroutines employed
  120. by a GDDM-type processor to transform application program statements to
  121. graphical primitive commands and attributes differ from those of a CGI
  122. processor. Other differences between the processors can exist. For example,
  123. although both the GDDM and the VDI embodiments employ point coordinates in
  124. line drawing and object positioning, the processors use different structures
  125. to organize the data points: the GDDM point array is organized as (x.sub.1,
  126. x.sub.2, . . . ,x.sub.n), (y.sub.1,y.sub.2, . . . ,y.sub.n), while the VDI
  127. structures its points in the form (x.sub.1,y.sub.1), . . .
  128. ,(x.sub.n,y.sub.n). Further distinctions include: different character codes;
  129. different color representation and indexing; and different forms of
  130. representation for graphical primitive attributes.
  131.  
  132.  From the standpoint of programmer efficiency, it would be desirable to
  133. enable different graphics processors to respond uniformly to a single
  134. high-level graphics application language program. This would permit an
  135. application programmer to create a graphics program using a single set of
  136. statements, which would result in the creation of identical graphs using any
  137. one of a number of different graphics processing facilities. This property is
  138. commonly called portability. However, to date, application programmers must
  139. construct graphics programs that are tailored to the specific characteristics
  140. of the graphics processing service embodied in the computing facility
  141. available to the programmer. Thus, even when the programmer employs the same
  142. graphics application language to operate different graphic processing
  143. services, the programmer must construct an application program tailored to
  144. the specific graphics processor. In this regard, then, graphics application
  145. programs are not portable between different processing facilities, even if
  146. expressed in the same language.
  147.  
  148.  Therefore, there is an evident need for a construct that will provide a mode
  149. of establishing linkages to any of a variety of different graphics processors
  150. from a single graphics application program rendered in a particular
  151. programming language.
  152.  
  153.                           SUMMARY OF THE INVENTION
  154.  
  155.  The primary objective of this invention is, then, to provide such linkages
  156. in the form of common language bindings that will permit a single graphics
  157. application program, written in a particular programming language, to operate
  158. any one of a plurality of respectively-constructed graphics processors.
  159.  
  160.  The invention is expressed as a process construct for providing a language
  161. binding linking a graphics application interface and a graphics processor.
  162. The construct provides for: translating application language graphics
  163. specification data into graphics process-specific commands and attributes;
  164. building command and attribute data transfer structures for translated
  165. graphics process-specific commands and attributes; and establishing a command
  166. and attribute data transfer path for providing the built data structures from
  167. the graphics application interface to the graphics processor.
  168.  
  169.  The process construct is embodied in a representative graphics application
  170. programming language context.
  171.  
  172.  The above objects and other attendant advantages of the invention will
  173. become clearer when the following detailed description of the invention is
  174. read in light of the below-described drawings.
  175.  
  176.