home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / bgiem.zip / bgi.inf (.txt) next >
OS/2 Help File  |  1993-11-07  |  44KB  |  1,522 lines

  1.  
  2. ΓòÉΓòÉΓòÉ 1. Title Page ΓòÉΓòÉΓòÉ
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.                          BGI Graphics Emulator for OS/2
  10.  
  11.  
  12. ΓòÉΓòÉΓòÉ 2. Introduction ΓòÉΓòÉΓòÉ
  13.  
  14. Introduction 
  15.  
  16. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  17.  
  18. When Borland created their Borland C++ for OS/2, they did a good job of 
  19. providing backwards compatibility for DOS text programs, however no provision 
  20. was made for backwards compatibility with DOS graphics programs. This makes 
  21. sense, since OS/2 provides a very sophisticated graphics environment.  However, 
  22. for people with an investment in programs using the BGI graphics API, the 
  23. effort to port to this new environment may not be worthwhile.  And for those 
  24. writing programs which use only simple graphics, the Presentation Manager API 
  25. can be daunting. 
  26.  
  27. This package is addressed to these needs.  It aims to allow porting of existing 
  28. BGI applications to OS/2 with very little modification to the source.  It also, 
  29. by handling some of the more complex Presentation Manager details 
  30. transparently, allows for a simpler transition from DOS based, procedural 
  31. programs, to the more sophisticated OS/2 programs.  For example, using this 
  32. emulator, it is relatively trivial to write a program which uses multiple 
  33. threads to calculate different parts of the graphic image, but still display 
  34. the image using the familiar BGI graphics commands. 
  35.  
  36. How does it work?  While the implementation is still not fully defined at this 
  37. time, the basic operation is as follows.  When a program compiled with the BGI 
  38. emulator starts, it splits into two threads.  One thread is the user's code 
  39. executing.  The second thread maintains a window on screen.  This second thread 
  40. handles screen repaints, resizes, and so on, transparently to the user's code. 
  41. The user's code calls the normal BGI functions, which are translated into 
  42. Presentation Manager calls.  The two threads are synchronized using mutex 
  43. semaphore's behind the scenes, so that the user's program will never try to 
  44. modify the current window while it is being repainted for example. 
  45.  
  46. The current version (0.5) is essentially a pre-alpha release.  It is far from 
  47. feature complete, and some major parts of the implementation are not even fully 
  48. defined yet.  However, it was thought important to get some early feedback on 
  49. the development direction (and some early bug reports) to help focus further 
  50. efforts.  Hopefully there will be regular further pre-release versions, until 
  51. the release version is ready. 
  52.  
  53. Please see the section How to Report Problems for information on reporting 
  54. problems and suggestions.  Please carefully read the sections in this document 
  55. on Supported Features and Future Directions so that you will have some idea of 
  56. what is working in the current version, and what is planned for future 
  57. versions.  Also, check Functions Currently Supported check out any functions 
  58. that you are using to make sure they are implemented and to see what 
  59. restrictions the current implementation has. 
  60.  
  61.  
  62. ΓòÉΓòÉΓòÉ 3. Installation ΓòÉΓòÉΓòÉ
  63.  
  64. Installation 
  65.  
  66. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  67.  
  68. Installation of the package is relatively simple.  Currently, it is necessary 
  69. for you to supply a copy of the include file graphics.h which is supplied with 
  70. the Borland C compilers for DOS.  It contains all of the structures and 
  71. definitions required to use the BGI package.  The legal issues of distributing 
  72. this file with the package have not yet been explored. You must place 
  73. graphics.h in the include directory of your BCOS2 installation. 
  74.  
  75. The installation procedure has been designed to work with the default directory 
  76. setup of Borland C++ for OS/2.  If you have a different setup, you should 
  77. create a set of temporary directories with the required structure, and then 
  78. move the installed files afterwards. 
  79.  
  80. To install the package, unzip all of the supplied files into a temporary 
  81. directory, or place them on a floppy.  From within this directory, run the REXX 
  82. script install.cmd.  The syntax is: 
  83.  
  84.  install <bcos2 directory> 
  85.  
  86. <bcos2 directory> is the directory in which BCOS2 is installed. For example: 
  87.  
  88.   install c:\bcos2
  89.  
  90. Note:  In the rest of this discussion, it will be assumed that the compiler is 
  91. installed in \bcos2.  Substitute the appropriate directory for your 
  92. installation where required. 
  93.  
  94. The install script does two things.  First, it copies the file bgi.lib to 
  95. \bcos2\lib - the default location for the Borland libraries.  You can move it 
  96. from there to another directory if you wish - just make sure that you link it 
  97. in to your application when compiling. 
  98.  
  99. Second, it edits the graphics.h file.  It expects to see this file in 
  100. \bcos2\include.  These edits add in the BGIEM function declarations, and any 
  101. other changes and extensions that may be required.  Note that the changes are 
  102. set up with #if..#endif pairs, so that they will only have effect when 
  103. compiling an OS/2 program.  You can still use the modified graphics.h file to 
  104. compile programs with a DOS compiler. 
  105.  
  106. Note:  The original graphics.h file is saved as graphics.bak. 
  107.  
  108. If you have a non-standard setup, the easiest thing to do is simply create a 
  109. directory structure which contains lib and include subdirectories. Put 
  110. graphics.h in the include subdirectory and run the install script.  You can 
  111. then move the bgi.lib and the modified graphics.h files to your lib and include 
  112. directories. 
  113.  
  114.  
  115. ΓòÉΓòÉΓòÉ 4. How to Use BGIEM ΓòÉΓòÉΓòÉ
  116.  
  117. How to Use BGIEM 
  118.  
  119. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  120.  
  121. Once you have BGIEM installed, it is very simple to use.  The following are the 
  122. crucial steps: 
  123.  
  124.  1. You must include the file graphics.h in any source file in which you call 
  125.     the BGI functions (if you are porting code, this will already be done). 
  126.  
  127.  2. You must rename the main() function of the program to bgiem_main() 
  128.  
  129.  3. You must link the bgi.lib library with the program after compiling it. 
  130.  
  131. That's all there really is to it.  Of course, you will have to be aware of 
  132. other porting considerations when going from a 16-bit compiler to a 32-bit 
  133. compiler.  Int's are now 32 bits instead of 16, and if your code has any 
  134. dependencies on the size of the data types you may have problems. 
  135.  
  136. Note:  Although it may appear that your program has no main function, it 
  137. actually does.  The main function is in bgi.lib, as it has to do some setup 
  138. before your program code begins. 
  139.  
  140. Warning: bgiem_main does not currently pass command line parameters in argp and 
  141. argc the way main does.  This will be corrected in the next release. 
  142.  
  143. Here is an example of a simple program that starts emulation in VGA mode 
  144. (640x460x16) and draws a line on the screen. 
  145.  
  146. #include <graphics.h>
  147.  
  148. bgiem_main() {
  149.    int driver,mode;
  150.  
  151.    driver=VGA;
  152.    mode=VGAHI;
  153.    initgraph(&gdriver,&gmode,NULL);
  154.  
  155.    line (0,0,100,100);
  156.    closegraph();
  157. }
  158.  
  159.  
  160. ΓòÉΓòÉΓòÉ 5. Supported Features ΓòÉΓòÉΓòÉ
  161.  
  162. Supported Features 
  163.  
  164. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  165.  
  166. The supported features list is pretty short for this release.  Basically, all 
  167. of the functions listed in Functions Currently Supported are supported (some 
  168. only partially) and not much else.  Currently, only a single initgraph call per 
  169. program is supported.  See Future Directions for features that will be 
  170. supported in upcoming versions. 
  171.  
  172.  
  173. ΓòÉΓòÉΓòÉ 6. Future Directions ΓòÉΓòÉΓòÉ
  174.  
  175. Future Directions 
  176.  
  177. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  178.  
  179. The following list is items that will definitely be part of the package in the 
  180. final release (in no particular order of priority): 
  181.  
  182. o Support for argc, argp, and env arguments in bgiem_main. 
  183. o Support for viewports and all related functions. 
  184. o Support for image get and put functions. 
  185. o Support for active/visible pages. 
  186. o Greater program control over the emulation.  For example, currently all 
  187.   operations to the screen are also duplicated on an in-memory bitmap, so that 
  188.   when re-paints are required, the information in the bitmap can be copied to 
  189.   the screen.  However, for programs which refresh the screen image frequently 
  190.   this is unneccesary overhead.  This, and other aspects of the emulation will 
  191.   be controllable with extra functions provided. 
  192. o Fix window sizing problems (espcially maximize problem). 
  193. o Ability to cut and paste graphics from a BGIEM window to/from the clipboard. 
  194. o Functions to return the window handle and presentation spaces being used by 
  195.   BGIEM so that the program can optionally use more sophisticated presentation 
  196.   managers functions. 
  197. o Proper error handling, and emulation of graphresult. 
  198. o Tuning and performance enhancements. 
  199.  
  200. The following are features which may find their way into the final release if 
  201. time permits, and if interest is indicated. 
  202.  
  203. o Permit multiple initgraph calls which will open multiple windows 
  204.   simultaneously, and provide functions to change which one will be drawn in. 
  205. o Permit user-definable graphics modes to emulate.  User will be able to chose 
  206.   resolution, number of colours, and number of pages. 
  207. o Allow the user-program to hook into the BGIEM window message queue, and 
  208.   optionally handle some of the messages received. 
  209. o Simulate text mode output in the emulated graphics window. 
  210. o Simulate the standard keyboard input commands (which will not work in a 
  211.   presentation manager program).  This one is pretty important actually, and 
  212.   will almost certainly be done. 
  213. o Provide an interface to the mouse. (Any suggestions on the design of the API 
  214.   for this would be welcome). 
  215. o Other suggestions are welcome! 
  216.  
  217.  
  218. ΓòÉΓòÉΓòÉ 7. How To Report Problems ΓòÉΓòÉΓòÉ
  219.  
  220. How To Report Problems 
  221.  
  222. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  223.  
  224. Please report problems electronically, by sending mail to one of the following 
  225. addresses: 
  226.  
  227.   Compuserve:  71005,132
  228.   Internet:   rob.mcdermid@rose.com
  229.  
  230. Both suggestions and bug reports are welcome.  Before reporting a bug, please 
  231. study Functions Currently Supported to make sure that it is not simply 
  232. something not implemented yet. 
  233.  
  234. When reporting bugs, a detailed description is always helpful, and code 
  235. indicating the problem is extremely helpful.  Also, when looking for bugs, 
  236. please note that wherever there was a discrepancy between the documented 
  237. behaviour of BGI, and how it was actually found to behave, the actual behaviour 
  238. was emulated.  Also, the version being emulated is that shipped with Borland 
  239. C++ 3.0, so any behaviour changes in 3.1 will not be reflected. 
  240.  
  241.  
  242. ΓòÉΓòÉΓòÉ 8. Functions Currently Supported ΓòÉΓòÉΓòÉ
  243.  
  244. Functions Currently Supported 
  245.  
  246. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  247.  
  248. The functions highlighted in green are currently supported.  Double click on 
  249. the word to jump to a description of the function and its implementation. 
  250. Functions in blue are not supported, and do not link to a description. 
  251.  
  252. Γûáarc 
  253. Γûábar 
  254. Γûábar3d 
  255. Γûácircle 
  256. Γûácleardevice 
  257. Γûáclearviewport 
  258. Γûáclosegraph 
  259. Γûádetectgraph 
  260. Γûádrawpoly 
  261. Γûáellipse 
  262. Γûáfillellipse 
  263. Γûáfillpoly 
  264. Γûáfloodfill 
  265. Γûágetarccoords 
  266. Γûágetaspectratio 
  267. Γûágetbkcolor 
  268. Γûágetcolor 
  269. Γûágetdefaultpalette 
  270. Γûágetdrivername 
  271. Γûágetfillpattern 
  272. Γûágetfillsettings 
  273. Γûágetgraphmode 
  274. Γûágetimage 
  275. Γûágetlinesettings 
  276. Γûágetmaxcolor 
  277. Γûágetmaxmode 
  278. Γûágetmaxx 
  279. Γûágetmaxy 
  280. Γûágetmodename 
  281. Γûágetmoderange 
  282. Γûágetpalette 
  283. Γûágetpalettesize 
  284. Γûágetpixel 
  285. Γûágettextsettings 
  286. Γûágetviewsettings 
  287. Γûágetx 
  288. Γûágety 
  289. Γûágraphdefaults 
  290. Γûágrapherrormsg 
  291. Γûá_graphfreemem 
  292. Γûá_graphgetmem 
  293. Γûágraphresult 
  294. Γûáimagesize 
  295. Γûáinitgraph 
  296. Γûáinstalluserdriver 
  297. Γûáinstalluserfont 
  298. Γûáline 
  299. Γûálinerel 
  300. Γûálineto 
  301. Γûámoverel 
  302. Γûámoveto 
  303. Γûáouttext 
  304. Γûáouttextxy 
  305. Γûápieslice 
  306. Γûáputimage 
  307. Γûáputpixel 
  308. Γûárectangle 
  309. Γûáregisterbgidriver 
  310. Γûáregisterbgifont 
  311. Γûárestorecrtmode 
  312. Γûásector 
  313. Γûásetactivepage 
  314. Γûásetallpalette 
  315. Γûásetaspectratio 
  316. Γûásetbkcolor 
  317. Γûásetcolor 
  318. Γûásetfillpattern 
  319. Γûásetfillstyle 
  320. Γûásetgraphbufsize 
  321. Γûásetgraphmode 
  322. Γûásetlinestyle 
  323. Γûásetpalette 
  324. Γûásetrgbpalette 
  325. Γûásettextjustify 
  326. Γûásettextstyle 
  327. Γûásetusercharsize 
  328. Γûásetviewport 
  329. Γûásetvisualpage 
  330. Γûásetwritemode 
  331. Γûátextheight 
  332. Γûátextwidth 
  333.  
  334.  
  335. ΓòÉΓòÉΓòÉ 9. Reference ΓòÉΓòÉΓòÉ
  336.  
  337. Reference 
  338.  
  339. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  340.  
  341. This section describes the function calls that are emulated, as well as some 
  342. emulator specific calls. 
  343.  
  344.  
  345. ΓòÉΓòÉΓòÉ 9.1. arc ΓòÉΓòÉΓòÉ
  346.  
  347. void arc(int x,int y,int stangle,int endangle, int radius) 
  348.  
  349. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  350.  
  351. Draws an arc in the current colour.  The arc is centered on (x,y), and its 
  352. radius is specified by radius. The arc travels from stangle to endangle 
  353. (specified in degrees).  The angle increases in a counterclockwise direction, 
  354. with 0 degrees at 3 o'clock. 
  355.  
  356. Note:  In BGI the linestyle parameter does not affect arcs, circles, ellipses, 
  357. or pie slices.  Only the thicknessparameter is used. This behaviour is 
  358. maintained in the emulation. 
  359.  
  360. Status:  Mostly working.  No error checking, and should be optimized. 
  361.  
  362. Related Functions: 
  363.  
  364. circle ellipse fillellipse getarccoords getaspectratio graphresult pieslice 
  365. sector 
  366.  
  367.  
  368. ΓòÉΓòÉΓòÉ 9.2. bar ΓòÉΓòÉΓòÉ
  369.  
  370. void bar(int left,int top,int right,int bottom) 
  371.  
  372. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  373.  
  374. Draws a filled, rectangular bar using the current fill pattern and fill color. 
  375. The bar is not outlined;  to draw an outlined two-dimensional bar, use bar3d 
  376. with depth=0. 
  377.  
  378. The upper-left and lower right corners of the bar are specified by (left,top) 
  379. and (right,bottom). 
  380.  
  381. Status:  Working. 
  382.  
  383. Related Functions: 
  384.  
  385. bar3d rectangle setcolor setfillstyle setlinestyle 
  386.  
  387.  
  388. ΓòÉΓòÉΓòÉ 9.3. bar3d ΓòÉΓòÉΓòÉ
  389.  
  390. void bar3d(int left,int top,int right,int bottom,int depth,int topflag) 
  391.  
  392. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  393.  
  394. Draws a 3-dimensional rectangular bar using the current linestyle and colour, 
  395. then fills it using the current fill style and colour.  The depth of the bar 
  396. along the Z axis is given by depth.  The topflag parameter determines whether a 
  397. 3-dimensional top is put on the bar.  It is useful to omit the top of the bar, 
  398. when drawing a stacked 3-dimensional bar.  The way depth is handled is that the 
  399. 3-dimensional part of the bar is drawn to depth pixels to the right and up from 
  400. the right corners of the bar. 
  401.  
  402. Status:  Working. 
  403.  
  404. Related Functions: 
  405.  
  406. bar rectangle setcolor setfillstyle setlinestyle 
  407.  
  408.  
  409. ΓòÉΓòÉΓòÉ 9.4. circle ΓòÉΓòÉΓòÉ
  410.  
  411. void circle(int x,int y,int radius) 
  412.  
  413. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  414.  
  415. Draws a circle using the current line colour.  The circle is centered on (x,y) 
  416. with radius radius 
  417.  
  418. Note:  In BGI the linestyle parameter does not affect arcs, circles, ellipses, 
  419. or pie slices.  Only the thicknessparameter is used. This behaviour is 
  420. maintained in the emulation. 
  421.  
  422. Status:  Working. 
  423.  
  424. Related Functions: 
  425.  
  426. arc ellipse fillellipse getaspectratio sector setaspectratio 
  427.  
  428.  
  429. ΓòÉΓòÉΓòÉ 9.5. cleardevice ΓòÉΓòÉΓòÉ
  430.  
  431. void cleardevice(void) 
  432.  
  433. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  434.  
  435. In BGI this erases the entire graphics screen to the currently specified 
  436. background colour, and moves the current position to (0,0).  In BGIEM, the 
  437. entire window is erased (the CP is also zeroed). 
  438.  
  439. Status:  Working. 
  440.  
  441. Related Functions: 
  442.  
  443. clearviewport 
  444.  
  445.  
  446. ΓòÉΓòÉΓòÉ 9.6. <clearviewport> ΓòÉΓòÉΓòÉ
  447.  
  448. Note:  This function is not currently supported 
  449.  
  450.  
  451. ΓòÉΓòÉΓòÉ 9.7. closegraph ΓòÉΓòÉΓòÉ
  452.  
  453. void closegraph(void) 
  454.  
  455. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  456.  
  457. Frees up various resources that have been allocated by initgraph. In BGI, ends 
  458. graphics mode.  Currently, the window containing the graphics remains on the 
  459. screen until the user explicitly shuts down the program. Eventually, the 
  460. programmer will have more complete behaviour over what initgraph and closegraph 
  461. actually do. 
  462.  
  463. Status:  Minimal functionality. 
  464.  
  465. Related Functions: 
  466.  
  467. initgraph setgraphbufsize 
  468.  
  469.  
  470. ΓòÉΓòÉΓòÉ 9.8. <detectgraph> ΓòÉΓòÉΓòÉ
  471.  
  472. Note:  This function is not currently supported 
  473.  
  474.  
  475. ΓòÉΓòÉΓòÉ 9.9. drawpoly ΓòÉΓòÉΓòÉ
  476.  
  477. void drawpoly(int numpoints, int *polypoints) 
  478.  
  479. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  480.  
  481. Draws a polygon specified by numpoints points (each point is a vertex). 
  482. *polypoints points to a sequence of numpointsx 2 integers.  Each pair of 
  483. integers gives the x and y coordinates of a vertex on the polygon. 
  484.  
  485. Note:  The polygon is not automatically closed.  In order to close the polygon, 
  486. the last vertex must be the same as the first. 
  487.  
  488. Status:  Working 
  489.  
  490. Related Functions: 
  491.  
  492. fillpoly floodfill graphresult setwritemode 
  493.  
  494.  
  495. ΓòÉΓòÉΓòÉ 9.10. ellipse ΓòÉΓòÉΓòÉ
  496.  
  497. void ellipse(int x,int y,int stangle,int endangle,int xradius,int yradius) 
  498.  
  499. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  500.  
  501. Draws an elliptical arc in the current drawing colour.  The ellipse is centered 
  502. on (x,y) and the lengths of the horizontal and vertical axes are given by 
  503. xradius and yradius respectively. The ellipse travels from stangle to endangle 
  504. (specified in degrees).  The angle increases in a counterclockwise direction, 
  505. with 0 degrees at 3 o'clock.  If stangle=0 and endangle=360, then a complete 
  506. ellipse is drawn. 
  507.  
  508. Note:  In BGI the linestyle parameter does not affect arcs, circles, ellipses, 
  509. or pie slices.  Only the thicknessparameter is used. This behaviour is 
  510. maintained in the emulation. 
  511.  
  512. Status:  Working 
  513.  
  514. Related Functions: 
  515.  
  516. arc circle fillellipse sector 
  517.  
  518.  
  519. ΓòÉΓòÉΓòÉ 9.11. fillellipse ΓòÉΓòÉΓòÉ
  520.  
  521. void fillellipse(int x,int y,int xradius,int yradius) 
  522.  
  523. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  524.  
  525. Draws an ellipse centered on (x,y) with a width of xradius and a height of 
  526. yradius, and fills it with the current fill colour and fill pattern.  The 
  527. ellipse is outlined using the current line color and width. 
  528.  
  529. Status:  Working 
  530.  
  531. Related Functions: 
  532.  
  533. arc circle ellipse pieslice 
  534.  
  535.  
  536. ΓòÉΓòÉΓòÉ 9.12. fillpoly ΓòÉΓòÉΓòÉ
  537.  
  538. void fillpoly(int numpoints,int *polypoints) 
  539.  
  540. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  541.  
  542. Draws the outline of a polygon using the current line style and colour, like 
  543. drawpoly, then fills the polygon using the current fill pattern and fill 
  544. colour. 
  545.  
  546. *polypoints points to a sequence of numpointsx 2 integers.  Each pair of 
  547. integers gives the x and y coordinates of a vertex on the polygon. 
  548.  
  549. Status:  Working 
  550.  
  551. Related Functions: 
  552.  
  553. drawpoly floodfill graphresult setfillstyle 
  554.  
  555.  
  556. ΓòÉΓòÉΓòÉ 9.13. floodfill ΓòÉΓòÉΓòÉ
  557.  
  558. void floodfill(int x,int y,int border) 
  559.  
  560. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  561.  
  562. Fills an arbitrary enclosed area using the current fill pattern and colour. 
  563. (x,y) must be a point somewhere inside the area to be filled. The area bounded 
  564. by the colour border is filled. 
  565.  
  566. Status:  Working 
  567.  
  568. Related Functions: 
  569.  
  570. drawpoly fillpoly graphresult setcolor setfillstyle 
  571.  
  572.  
  573. ΓòÉΓòÉΓòÉ 9.14. getarccoords ΓòÉΓòÉΓòÉ
  574.  
  575. void getarccoords(struct arccoordstype arccoords) 
  576.  
  577. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  578.  
  579. Fills in the arccoordstype structure pointed to by arccoords with information 
  580. from the last call to 
  581.  
  582. arc.  The arccoordstype structure is defined (in graphics.h) as: 
  583.  
  584. struct arccoordstype {
  585.    int x,y;
  586.    int xstart, ystart, xend, yend;
  587. };
  588.  
  589. The information in this structure defines the center point (x,y), the start 
  590. point (xstart,ystart), and the end point (xend,yend). 
  591.  
  592. Status:  Complete. 
  593.  
  594. Related Functions: 
  595.  
  596. arc fillellipse sector 
  597.  
  598.  
  599. ΓòÉΓòÉΓòÉ 9.15. <getaspectratio> ΓòÉΓòÉΓòÉ
  600.  
  601. Note:  This function is not currently supported 
  602.  
  603.  
  604. ΓòÉΓòÉΓòÉ 9.16. getbkcolor ΓòÉΓòÉΓòÉ
  605.  
  606. int getbkcolor(void) 
  607.  
  608. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  609.  
  610. Returns the current background colour. 
  611.  
  612. Status:  Complete. 
  613.  
  614. Related Functions: 
  615.  
  616. getcolor getmaxcolor getpalette setbkcolor 
  617.  
  618.  
  619. ΓòÉΓòÉΓòÉ 9.17. getcolor ΓòÉΓòÉΓòÉ
  620.  
  621. int getcolor(void) 
  622.  
  623. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  624.  
  625. Returns the current line drawing color. 
  626.  
  627. Status:  Complete. 
  628.  
  629. Related Functions: 
  630.  
  631. getbkcolor getmaxcolor getpalette setcolor 
  632.  
  633.  
  634. ΓòÉΓòÉΓòÉ 9.18. <getdefaultpalette> ΓòÉΓòÉΓòÉ
  635.  
  636. Note:  This function is not currently supported 
  637.  
  638.  
  639. ΓòÉΓòÉΓòÉ 9.19. <getdrivername> ΓòÉΓòÉΓòÉ
  640.  
  641. Note:  This function is not currently supported 
  642.  
  643.  
  644. ΓòÉΓòÉΓòÉ 9.20. getfillpattern ΓòÉΓòÉΓòÉ
  645.  
  646. void getfillpattern(char *pattern) 
  647.  
  648. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  649.  
  650. Copies the user-defined fill pattern, previously set by the routine 
  651. setfillpattern into the 8 byte memory area pointed to by pattern.  Each byte in 
  652. pattern corresponds to 8 pixels in the pattern. Whenever a bit is 1, the pixel 
  653. in the pattern will be set. 
  654.  
  655. Status:  Complete, but inefficient.  Requires a more efficient algorithm. 
  656.  
  657. Related Functions: 
  658.  
  659. getfillsettings setfillpattern 
  660.  
  661.  
  662. ΓòÉΓòÉΓòÉ 9.21. getfillsettings ΓòÉΓòÉΓòÉ
  663.  
  664. void getfillsettings(struct fillsettingstype *fillinfo) 
  665.  
  666. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  667.  
  668. Gets the current fill pattern and colour and puts them in the structure pointed 
  669. to by fillinfo.  The fillsettingstype structure is defined as: 
  670.  
  671. struct fillsettingstype {
  672.     int pattern;
  673.     int color;
  674. };
  675.  
  676. If the current fill pattern is one of pre-defined fill patterns, its number 
  677. will be stored in fillinfo->pattern.  If the current fill pattern is a 
  678. user-defined pattern, the USER_FILL will be stored in fillinfo->pattern. 
  679.  
  680. Status:  Complete. 
  681.  
  682. Related Functions: 
  683.  
  684. getfillpattern setfillpattern setfillstyle 
  685.  
  686.  
  687. ΓòÉΓòÉΓòÉ 9.22. getgraphmode ΓòÉΓòÉΓòÉ
  688.  
  689. int getgraphmode(void) 
  690.  
  691. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  692.  
  693. Gets the current graph mode.  A successful call to initgraph is required before 
  694. valid results can be returned from this function. 
  695.  
  696. Status:  Complete. 
  697.  
  698. Related Functions: 
  699.  
  700. getmoderange restorecrtmode setgraphmode 
  701.  
  702.  
  703. ΓòÉΓòÉΓòÉ 9.23. <getimage> ΓòÉΓòÉΓòÉ
  704.  
  705. Note:  This function is not currently supported 
  706.  
  707.  
  708. ΓòÉΓòÉΓòÉ 9.24. getlinesettings ΓòÉΓòÉΓòÉ
  709.  
  710. void getlinesettings(struct linesettingstype *lineinfo) 
  711.  
  712. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  713.  
  714. Gets information about the current linestyle and thickness in the structure 
  715. pointed to by lineinfo.  The linesettingstype structure is defined as: 
  716.  
  717. struct linesettingstype {
  718.    int linestyle;
  719.    unsigned upattern;
  720.    int thickness;
  721. };
  722.  
  723. Currently, user-defined linestyles are not supported, so the value of the 
  724. upattern field is not defined. 
  725.  
  726. Status:  Complete. 
  727.  
  728. Related Functions: 
  729.  
  730. setlinestyle 
  731.  
  732.  
  733. ΓòÉΓòÉΓòÉ 9.25. getmaxcolor ΓòÉΓòÉΓòÉ
  734.  
  735. int getmaxcolor(void) 
  736.  
  737. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  738.  
  739. Returns the maximum color value permitted for the mode currently being 
  740. emulated.  Does not necessarily relate to the maximum number of color values 
  741. that the screen hardware can display.  Note that if you pass a colour value 
  742. higher than this to setcolor, the actual color will be calculated as 
  743.  
  744.    requested_color % maximum_color
  745.  
  746. Status:  Complete. 
  747.  
  748. Related Functions: 
  749.  
  750. getbkcolor getcolor getpalette getpalettesize setcolor 
  751.  
  752.  
  753. ΓòÉΓòÉΓòÉ 9.26. getmaxmode ΓòÉΓòÉΓòÉ
  754.  
  755. int getmaxmode(void) 
  756.  
  757. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  758.  
  759. Returns the maximum mode number that may be specified for the driver currently 
  760. being emulated.  The minimum value it will return is 0. 
  761.  
  762. Status:  Complete. 
  763.  
  764. Related Functions: 
  765.  
  766. getmodename getmoderange 
  767.  
  768.  
  769. ΓòÉΓòÉΓòÉ 9.27. getmaxx ΓòÉΓòÉΓòÉ
  770.  
  771. int getmaxx(void) 
  772.  
  773. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  774.  
  775. Returns the maximum permitted x-coordinate value for the graphics mode 
  776. currently being emulated. 
  777.  
  778. Status:  Complete. 
  779.  
  780. Related Functions: 
  781.  
  782. getmaxy getx gety 
  783.  
  784.  
  785. ΓòÉΓòÉΓòÉ 9.28. getmaxy ΓòÉΓòÉΓòÉ
  786.  
  787. int getmaxy(void) 
  788.  
  789. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  790.  
  791. Returns the maximum permitted y-coordinate value for the graphics mode 
  792. currently being emulated. 
  793.  
  794. Status:  Complete. 
  795.  
  796. Related Functions: 
  797.  
  798. getmaxx getx gety 
  799.  
  800.  
  801. ΓòÉΓòÉΓòÉ 9.29. <getmodename> ΓòÉΓòÉΓòÉ
  802.  
  803. Note:  This function is not currently supported 
  804.  
  805.  
  806. ΓòÉΓòÉΓòÉ 9.30. getmoderange ΓòÉΓòÉΓòÉ
  807.  
  808. void getmaxmode(int graphdriver,int *lomode,int *himode) 
  809.  
  810. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  811.  
  812. Gets the range of valid graphics modes for a given driver.  The lowest allowed 
  813. mode value is returned in lomode and the highest in himode.  If a value of -1 
  814. is specified for graphdriver the modes for the currently loaded driver are 
  815. given.  If any other negative value is specified, -1 is given for both lomode 
  816. and himode.  Currently, no checking is done to see if the value for graphdriver 
  817. is too high. 
  818.  
  819. Status:  Complete, except possibly for some error checking. 
  820.  
  821. Related Functions: 
  822.  
  823. getgraphmode getmaxmode getmodename initgraph setgraphmode 
  824.  
  825.  
  826. ΓòÉΓòÉΓòÉ 9.31. <getpalette> ΓòÉΓòÉΓòÉ
  827.  
  828. Note:  This function is not currently supported 
  829.  
  830.  
  831. ΓòÉΓòÉΓòÉ 9.32. <getpalettesize> ΓòÉΓòÉΓòÉ
  832.  
  833. Note:  This function is not currently supported 
  834.  
  835.  
  836. ΓòÉΓòÉΓòÉ 9.33. <getpixel> ΓòÉΓòÉΓòÉ
  837.  
  838. Note:  This function is not currently supported 
  839.  
  840.  
  841. ΓòÉΓòÉΓòÉ 9.34. gettextsettings ΓòÉΓòÉΓòÉ
  842.  
  843. void gettextsettings(struct textsettingstype *texttypeinfo) 
  844.  
  845. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  846.  
  847. Returns information about the current font.  The textsettingstype structure is 
  848. defined as: 
  849.  
  850. struct textsettingstype {
  851.    int font;
  852.    int direction;
  853.    int charsize;
  854.    int horiz;
  855.    int vert;
  856. }
  857.  
  858. font is the currently selected font number, direction is the current text 
  859. direction, charsize is the scaling factor, horiz is the horizontal alignment, 
  860. and vert is the vertical alignment. 
  861.  
  862. Status:  Complete. 
  863.  
  864. Related Functions: 
  865.  
  866. outtext outtextxy registerbgifont settextjustify settextstyle setusercharsize 
  867. textheight textwidth 
  868.  
  869.  
  870. ΓòÉΓòÉΓòÉ 9.35. <getviewsettings> ΓòÉΓòÉΓòÉ
  871.  
  872. Note:  This function is not currently supported 
  873.  
  874.  
  875. ΓòÉΓòÉΓòÉ 9.36. getx ΓòÉΓòÉΓòÉ
  876.  
  877. int getx(void) 
  878.  
  879. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  880.  
  881. Returns the x coordinate of the graphics cursor current position. 
  882.  
  883. Status:  Will need to be adapted when viewports are implemented. 
  884.  
  885. Related Functions: 
  886.  
  887. getmaxx getmaxy getviewsettings gety moveto 
  888.  
  889.  
  890. ΓòÉΓòÉΓòÉ 9.37. gety ΓòÉΓòÉΓòÉ
  891.  
  892. int getx(void) 
  893.  
  894. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  895.  
  896. Returns the y coordinate of the graphics cursor current position. 
  897.  
  898. Status:  Will need to be adapted when viewports are implemented. 
  899.  
  900. Related Functions: 
  901.  
  902. getmaxx getmaxy getviewsettings getx moveto 
  903.  
  904.  
  905. ΓòÉΓòÉΓòÉ 9.38. <graphdefaults> ΓòÉΓòÉΓòÉ
  906.  
  907. Note:  This function is not currently supported 
  908.  
  909.  
  910. ΓòÉΓòÉΓòÉ 9.39. <grapherrormsg> ΓòÉΓòÉΓòÉ
  911.  
  912. Note:  This function is not currently supported 
  913.  
  914.  
  915. ΓòÉΓòÉΓòÉ 9.40. <_graphfreemem> ΓòÉΓòÉΓòÉ
  916.  
  917. Note:  This function is not currently supported 
  918.  
  919.  
  920. ΓòÉΓòÉΓòÉ 9.41. <_graphgetmem> ΓòÉΓòÉΓòÉ
  921.  
  922. Note:  This function is not currently supported 
  923.  
  924.  
  925. ΓòÉΓòÉΓòÉ 9.42. <graphresult> ΓòÉΓòÉΓòÉ
  926.  
  927. Note:  This function is not currently supported 
  928.  
  929.  
  930. ΓòÉΓòÉΓòÉ 9.43. <imagesize> ΓòÉΓòÉΓòÉ
  931.  
  932. Note:  This function is not currently supported 
  933.  
  934.  
  935. ΓòÉΓòÉΓòÉ 9.44. initgraph ΓòÉΓòÉΓòÉ
  936.  
  937. initgraph(int *driver,int *mode,int *pathtodriver) 
  938.  
  939. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  940.  
  941. In BGI, initializes the graphics system by loading a driver and putting the 
  942. system in graphics mode. 
  943.  
  944. In BGIEM, the initgraph/closegraph pair is not yet working as intended. 
  945. Currently, a new window is created as soon as the program starts.  Initgraph 
  946. merely performs some initialization functions.  Closegraph does not cause the 
  947. window to disappear, and it does not yet fully clean up after initgraph. 
  948.  
  949. Eventually, the intention is to have initgraph open a new window.  Closegraph 
  950. will optionally destroy that window, or leave it until the user destroys it. A 
  951. subsequent initgraph will open a new window, possibly emulating a different 
  952. mode.  However, some technical issues remain to be resolved before this can be 
  953. done. 
  954.  
  955. BGIEM simulates the resolution and colour range of the mode selected. With the 
  956. exception of the 8514 modes, all of the modes emulated are 16 color or less, 
  957. which means that they can be accurately simulated on any of the hardware 
  958. supported by OS/2.  256 color modes will be supported by dithering on 16 color 
  959. hardware, or exactly on 16 color hardware.  This has not been tested yet, 
  960. however. 
  961.  
  962. Currently, the initial window size is determined by the operating system. When 
  963. the window is created, if it is too small to display the entire emulated 
  964. window, scroll bars are created to allow the user to see the entire emulated 
  965. graphic area.  This area of behaviour is only loosly implemented so far, so do 
  966. not be surprised by strange behaviour. 
  967.  
  968. Note:  The pathtodriver parameter is ignored, since no drivers are actually 
  969. loaded.  Also, because of this, you cannot use any custom drivers that may have 
  970. been implemented.  Some time in the future, BGIEM will allow user-defined modes 
  971. to be created with custom pixel and colour resolution. 
  972.  
  973. Note:  Autodetection is not yet supported. 
  974.  
  975. Status:  Partially implemented.  Major behaviour changes to come. 
  976.  
  977. Related Functions: 
  978.  
  979. closegraph detectgraph getdefaultpalette getdrivername getgraphmode 
  980. getmoderange graphdefaults _graphgetmem graphresult installuserdriver 
  981. registerbgidriver registerbgifont restorecrtmode setgraphbufsize setgraphmode 
  982.  
  983.  
  984. ΓòÉΓòÉΓòÉ 9.45. <installuserdriver> ΓòÉΓòÉΓòÉ
  985.  
  986. Note:  This function is not currently supported 
  987.  
  988.  
  989. ΓòÉΓòÉΓòÉ 9.46. <installuserfont> ΓòÉΓòÉΓòÉ
  990.  
  991. Note:  This function is not currently supported 
  992.  
  993.  
  994. ΓòÉΓòÉΓòÉ 9.47. line ΓòÉΓòÉΓòÉ
  995.  
  996. void line(int x1,int y1,int x2,int y2) 
  997.  
  998. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  999.  
  1000. Draws a line in the current colour and linestyle between (x1,y1) and (x2,y2). 
  1001. The current position is not updated. 
  1002.  
  1003. Status:  Working. 
  1004.  
  1005. Related Functions: 
  1006.  
  1007. getlinesettings linerel lineto setcolor setlinestyle setwritemode 
  1008.  
  1009.  
  1010. ΓòÉΓòÉΓòÉ 9.48. linerel ΓòÉΓòÉΓòÉ
  1011.  
  1012. void linerel(int dx,int dy) 
  1013.  
  1014. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  1015.  
  1016. Draws a line from the current position to a relative position that is (dx,dy) 
  1017. away.  Ie, if the current position is (x,y), then the line is drawn from (x,y) 
  1018. to (x+dx,y+dy).  The current position is updated to the line end point. 
  1019.  
  1020. Status:  Working. 
  1021.  
  1022. Related Functions: 
  1023.  
  1024. getlinesettings line lineto setcolor setlinestyle setwritemode 
  1025.  
  1026.  
  1027. ΓòÉΓòÉΓòÉ 9.49. lineto ΓòÉΓòÉΓòÉ
  1028.  
  1029. void lineto(int x,int y) 
  1030.  
  1031. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  1032.  
  1033. Draws a line from the current position to (x,y) and updates the current 
  1034. position to (x,y). 
  1035.  
  1036. Status:  Working. 
  1037.  
  1038. Related Functions: 
  1039.  
  1040. getlinesettings line linerel setcolor setlinestyle setwritemode 
  1041.  
  1042.  
  1043. ΓòÉΓòÉΓòÉ 9.50. moverel ΓòÉΓòÉΓòÉ
  1044.  
  1045. void moverel(int dx,int dy) 
  1046.  
  1047. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  1048.  
  1049. Moves the current position dx pixels in the x direction and dydy pixels in the 
  1050. y direction. 
  1051.  
  1052. Status:  Working. 
  1053.  
  1054. Related Functions: 
  1055.  
  1056. moveto 
  1057.  
  1058.  
  1059. ΓòÉΓòÉΓòÉ 9.51. moveto ΓòÉΓòÉΓòÉ
  1060.  
  1061. void moveto(int x,int y) 
  1062.  
  1063. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  1064.  
  1065. Moves the current position to (x,y). 
  1066.  
  1067. Status:  Working. 
  1068.  
  1069. Related Functions: 
  1070.  
  1071. moverel 
  1072.  
  1073.  
  1074. ΓòÉΓòÉΓòÉ 9.52. outtext ΓòÉΓòÉΓòÉ
  1075.  
  1076. void outtext(char *textstring) 
  1077.  
  1078. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  1079.  
  1080. Displays a text string using the current font, font direction, font size, and 
  1081. the current text justification settings.  The text is output at the current 
  1082. position.  If the horizontal justification is LEFT_TEXT and the text direction 
  1083. is HORIZ_DIR the x-coordinate of the current position is increased by 
  1084. textwidth(textstring) Otherwise, the current position is not changed. 
  1085.  
  1086. Status:  Working. 
  1087.  
  1088. Related Functions: 
  1089.  
  1090. gettextsettings outtextxy settextjustify textheight textwidth 
  1091.  
  1092.  
  1093. ΓòÉΓòÉΓòÉ 9.53. outtextxy ΓòÉΓòÉΓòÉ
  1094.  
  1095. void outtextxy(int x,int y,char *textstring) 
  1096.  
  1097. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  1098.  
  1099. Displays a text string using the current font, font direction, font size, and 
  1100. the current text justification settings at the position specified by (x,y). 
  1101.  
  1102. Status:  Working. 
  1103.  
  1104. Related Functions: 
  1105.  
  1106. gettextsettings outtext settextjustify textheight textwidth 
  1107.  
  1108.  
  1109. ΓòÉΓòÉΓòÉ 9.54. pieslice ΓòÉΓòÉΓòÉ
  1110.  
  1111. void pieslice(int x,int y,int stangle,int endangle, int radius) 
  1112.  
  1113. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  1114.  
  1115. Draws a pieslice (sector of a circle) centered at (x,y) with a radius of radius 
  1116. The pieslice is drawn in the current colour and font, and filled using the 
  1117. current fill pattern and colour. The slice travels from stangle to endangle The 
  1118. angle increases in a counterclockwise direction, with 0 degrees at 3 o'clock. 
  1119.  
  1120. Note:  In BGI the linestyle parameter does not affect arcs, circles, ellipses, 
  1121. or pie slices.  Only the thicknessparameter is used. This behaviour is 
  1122. maintained in the emulation. 
  1123.  
  1124. Status:  Working. 
  1125.  
  1126. Related Functions: 
  1127.  
  1128. fillellipse graphresult sector setfillstyle 
  1129.  
  1130.  
  1131. ΓòÉΓòÉΓòÉ 9.55. <putimage> ΓòÉΓòÉΓòÉ
  1132.  
  1133. Note:  This function is not currently supported 
  1134.  
  1135.  
  1136. ΓòÉΓòÉΓòÉ 9.56. putpixel ΓòÉΓòÉΓòÉ
  1137.  
  1138. void putpixel(int x,int y,int color) 
  1139.  
  1140. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  1141.  
  1142. Sets the pixel at the specified (x,y) coordinates to the specified colour. 
  1143. Does not alter the current drawing color or the current position. 
  1144.  
  1145. Status:  Complete except for error handling 
  1146.  
  1147. Related Functions: 
  1148.  
  1149. getpixel putimage 
  1150.  
  1151.  
  1152. ΓòÉΓòÉΓòÉ 9.57. rectangle ΓòÉΓòÉΓòÉ
  1153.  
  1154. void rectangle(int left,int top,int right,int bottom) 
  1155.  
  1156. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  1157.  
  1158. Draws a rectangle using the current line style, thickness and colour. 
  1159. (left,top) is the upper left corner, and (right,bottom) is the lower right 
  1160. corner. 
  1161.  
  1162. Status:  Complete except for error handling 
  1163.  
  1164. Related Functions: 
  1165.  
  1166. bar bar3d setcolor setlinestyle 
  1167.  
  1168.  
  1169. ΓòÉΓòÉΓòÉ 9.58. <registerbgidriver> ΓòÉΓòÉΓòÉ
  1170.  
  1171. Note:  This function is not currently supported 
  1172.  
  1173.  
  1174. ΓòÉΓòÉΓòÉ 9.59. <registerbgifont> ΓòÉΓòÉΓòÉ
  1175.  
  1176. Note:  This function is not currently supported 
  1177.  
  1178.  
  1179. ΓòÉΓòÉΓòÉ 9.60. <restorecrtmode> ΓòÉΓòÉΓòÉ
  1180.  
  1181. Note:  This function is not currently supported 
  1182.  
  1183.  
  1184. ΓòÉΓòÉΓòÉ 9.61. sector ΓòÉΓòÉΓòÉ
  1185.  
  1186. void sector(int x,int y,int stangle,int endangle,int xradius,int yradius) 
  1187.  
  1188. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  1189.  
  1190. Draws and fills an elliptical pie slice.  (x,y) is the center point, xradius is 
  1191. the width, yradius is the height, and the angle sweeps from stangle to 
  1192. endangle. The sector is outlined using the current line settings, and filled 
  1193. using the current fill pattern and colour. The angle increases in a 
  1194. counterclockwise direction, with 0 degrees at 3 o'clock. 
  1195.  
  1196. Note:  In BGI the linestyle parameter does not affect arcs, circles, ellipses, 
  1197. or pie slices.  Only the thicknessparameter is used. This behaviour is 
  1198. maintained in the emulation. 
  1199.  
  1200. Status:  Complete except for error handling 
  1201.  
  1202. Related Functions: 
  1203.  
  1204. arc circle ellipse getarccoords getaspectratio graphresult pieslice 
  1205. setfillpattern setfillstyle setgraphbufsize 
  1206.  
  1207.  
  1208. ΓòÉΓòÉΓòÉ 9.62. <setactivepage> ΓòÉΓòÉΓòÉ
  1209.  
  1210. Note:  This function is not currently supported 
  1211.  
  1212.  
  1213. ΓòÉΓòÉΓòÉ 9.63. <setallpalette> ΓòÉΓòÉΓòÉ
  1214.  
  1215. Note:  This function is not currently supported 
  1216.  
  1217.  
  1218. ΓòÉΓòÉΓòÉ 9.64. <setaspectratio> ΓòÉΓòÉΓòÉ
  1219.  
  1220. Note:  This function is not currently supported 
  1221.  
  1222.  
  1223. ΓòÉΓòÉΓòÉ 9.65. setbkcolor ΓòÉΓòÉΓòÉ
  1224.  
  1225. void setbkcolor(int color) 
  1226.  
  1227. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  1228.  
  1229. Sets the background color to color. 
  1230.  
  1231. Status:  Working 
  1232.  
  1233. Related Functions: 
  1234.  
  1235. getbkcolor setallpalette setcolor setpalette 
  1236.  
  1237.  
  1238. ΓòÉΓòÉΓòÉ 9.66. setcolor ΓòÉΓòÉΓòÉ
  1239.  
  1240. void setcolor(int color) 
  1241.  
  1242. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  1243.  
  1244. Sets the current colour to color, which can range from 0 to getmaxcolor(). 
  1245.  
  1246. Status:  Working 
  1247.  
  1248. Related Functions: 
  1249.  
  1250. getcolor getmaxcolor graphresult setallpalette setbkcolor setpalette 
  1251.  
  1252.  
  1253. ΓòÉΓòÉΓòÉ 9.67. setfillpattern ΓòÉΓòÉΓòÉ
  1254.  
  1255. void setfillpattern(char *upattern,int color) 
  1256.  
  1257. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  1258.  
  1259. Sets the current fillstyle to the user-defined pattern specified by upattern. 
  1260. upattern is a pointer to an array of 8 bytes.  Each byte corresponds to one row 
  1261. in the pattern, with each pixel value of 1 representing a pixel that is on in 
  1262. the pattern. The fill pattern colour is set to color.  To change the fillstyle 
  1263. back to one of the pre-defined styles, call setfillstyle. 
  1264.  
  1265. Status:  Complete except for error handling and optimization. Currently the 
  1266. method being used to transfer the pattern from upattern  to presentation 
  1267. manager format is very simplistic, and can be sped up considerably. 
  1268.  
  1269. Related Functions: 
  1270.  
  1271. bar getfillpattern getfillsettings graphresult sector setfillstyle 
  1272.  
  1273.  
  1274. ΓòÉΓòÉΓòÉ 9.68. setfillstyle ΓòÉΓòÉΓòÉ
  1275.  
  1276. void setfillstyle(int pattern,int color) 
  1277.  
  1278. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  1279.  
  1280. Sets the current fillstyle to the style specified by pattern, and the current 
  1281. fill color to color  Currently, the pre-defined Borland fill styles are mapped 
  1282. on to the pre-defined PM fill styles in the default style set.  The match is 
  1283. very close, the only exception being the WIDE_DOT_FILL style, which is 
  1284. currently the same as CLOSE_DOT_FILL.  The USER_FILL pattern should not be used 
  1285. to specify a user-defined pattern, instead call setfillpattern. 
  1286.  
  1287. Status:  Complete except for error handling 
  1288.  
  1289. Related Functions: 
  1290.  
  1291. bar bar3d fillpoly floodfill getfillsettings graphresult pieslice sector 
  1292. setfillpattern 
  1293.  
  1294.  
  1295. ΓòÉΓòÉΓòÉ 9.69. <setgraphbufsize> ΓòÉΓòÉΓòÉ
  1296.  
  1297. Note:  This function is not currently supported 
  1298.  
  1299.  
  1300. ΓòÉΓòÉΓòÉ 9.70. <setgraphmode> ΓòÉΓòÉΓòÉ
  1301.  
  1302. Note:  This function is not currently supported 
  1303.  
  1304.  
  1305. ΓòÉΓòÉΓòÉ 9.71. setlinestyle ΓòÉΓòÉΓòÉ
  1306.  
  1307. void setlinestyle(int linestyle,unsigned upattern,int thickness) 
  1308.  
  1309. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  1310.  
  1311. Sets the linestyle for all lines drawn.  Linestyle may be one of the following: 
  1312.  
  1313. o SOLID_LINE* 
  1314.  
  1315. o DOTTED_LINE* 
  1316.  
  1317. o CENTER_LINE* 
  1318.  
  1319. o DASHED_LINE* 
  1320.  
  1321. o DOUBLEDOT_LINE 
  1322.  
  1323. o LONGDASH_LINE 
  1324.  
  1325. o DASHDOUBLEDOT_LINE 
  1326.  
  1327. o INVISIBLE_LINE 
  1328.  
  1329. o ALTERNATE_LINE 
  1330.  
  1331. Note:  The linestyles marked with an asterix (*) are those defined by BGI. 
  1332. These were mapped onto the Presentation Manager pre-defined linestyles that 
  1333. most closely matched the BGI ones.  The other linestyles are those in 
  1334. Presentation Manager that have no BGI analog.  Do not use these in code that 
  1335. you want to be backwards compatible to DOS. 
  1336.  
  1337. thickness specifies the width of subsequent lines.  It can be either NORM_WIDTH 
  1338. - 1 pixel wide, or THICK_WIDTH - 3 pixels wide.  This parameter is currently 
  1339. not supported because Presentation Manager does not support thick lines and 
  1340. line patterns at the same time. Hopefully, a workaround for this will be found 
  1341. before final release. 
  1342.  
  1343. upattern is not supported in BGIEM, because OS/2 does not support user-defined 
  1344. linestyles. 
  1345.  
  1346. Status:  Working.  No error handling.  Still need support for thickness 
  1347. parameter. 
  1348.  
  1349. Related Functions: 
  1350.  
  1351. arc bar3d circle drawpoly ellipse getlinesettings graphresult line linerel 
  1352. lineto pieslice rectangle 
  1353.  
  1354.  
  1355. ΓòÉΓòÉΓòÉ 9.72. <setpalette> ΓòÉΓòÉΓòÉ
  1356.  
  1357. Note:  This function is not currently supported 
  1358.  
  1359.  
  1360. ΓòÉΓòÉΓòÉ 9.73. <setrgbpalette> ΓòÉΓòÉΓòÉ
  1361.  
  1362. Note:  This function is not currently supported 
  1363.  
  1364.  
  1365. ΓòÉΓòÉΓòÉ 9.74. settextjustify ΓòÉΓòÉΓòÉ
  1366.  
  1367. void settextjustify(int horiz,int vert) 
  1368.  
  1369. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  1370.  
  1371. Sets how text is justified with respect to the current position (for outtext) 
  1372. or the specified drawing position (for outtextxy).  The default settings are 
  1373. LEFT_TEXT for horiz and TOP_TEXT for vert.  The following are the valid values: 
  1374.  
  1375.  Description   Name            Value   Action 
  1376.  
  1377. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  1378. Γöéhoriz     ΓöéLEFT_TEXT           Γöé0    Γöéleft-justify text             Γöé
  1379. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1380. Γöé          ΓöéCENTER_TEXT         Γöé1    Γöécenter text                   Γöé
  1381. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1382. Γöé          ΓöéRIGHT_TEXT          Γöé2    Γöéright-justify text            Γöé
  1383. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1384. Γöévert      ΓöéBOTTOM_TEXT         Γöé0    Γöéjustify from bottom           Γöé
  1385. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1386. Γöé          ΓöéCENTER_TEXT         Γöé1    Γöécenter text                   Γöé
  1387. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1388. Γöé          ΓöéTOP_TEXT            Γöé2    Γöéjustify from top              Γöé
  1389. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  1390.  
  1391. Status:  Working.  No error handling. 
  1392.  
  1393. Related Functions: 
  1394.  
  1395. gettextsettings graphresult outtext settextstyle 
  1396.  
  1397.  
  1398. ΓòÉΓòÉΓòÉ 9.75. settextstyle ΓòÉΓòÉΓòÉ
  1399.  
  1400. void settextstyle(int font,int direction,int charsize) 
  1401.  
  1402. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  1403.  
  1404. Sets the font, direction, and scaling factors for text. 
  1405.  
  1406. The BGI implementation that came with BC++ 3.0 offered quite a few stroked 
  1407. fonts.  For each of these, an attempt was made to match them with one of the 
  1408. fonts that comes with OS/2 version 2.1 that looks similar.  Each of the OS/2 
  1409. fonts is scaled to look about the same size as the BGI font. Later, it will be 
  1410. possible to set up other fonts installed under OS/2 to be accessible with this 
  1411. function call, but this is not supported yet.  For the DEFAULT_FONT, which is a 
  1412. bit-mapped font, the VIO 8x8 font was mapped to it.  Currently, scaling is not 
  1413. supported for this font in BGIEM, but it is supported for all of the "stroked" 
  1414. fonts, which are emulated using the Adobe scalabale fonts. 
  1415.  
  1416. direction may be horizontal text (left to right) or vertical text (rotated 90 
  1417. degrees counterclockwise).  These are specified as either HORIZ_DIR, or 
  1418. VERT_DIR. 
  1419.  
  1420. charsize specifies the scaling for each font.  Scaling of bit-mapped fonts is 
  1421. not currently supported.  For scaling of stroked or scalable fonts, only two 
  1422. values are valid:  0, and 1.  A value of 1 specifies the default size for the 
  1423. font, while a value of 0 specifies that the scaling should be taken from 
  1424. setusercharsize. 
  1425.  
  1426. Note:  Although it is not documented to work this way, it appears that when BGI 
  1427. uses a charsize of 0 the usercharsize defaults to 1/1 for both x and y, but 
  1428. when charsize is 0, the size is equivalent to a usercharsize of 3/2 for both x 
  1429. and y.  The behaviour of BGIEM reflects the observed actual behaviour, rather 
  1430. than the documented behaviour. 
  1431.  
  1432. Status:  Working.  No error handling.  Would like to figure out a way to scale 
  1433. the bitmap font. 
  1434.  
  1435. Related Functions: 
  1436.  
  1437. gettextsettings graphresult installuserfont settextjustify setusercharsize 
  1438. textheight textwidth 
  1439.  
  1440.  
  1441. ΓòÉΓòÉΓòÉ 9.76. setusercharsize ΓòÉΓòÉΓòÉ
  1442.  
  1443. void setusercharsize(int multx,int divx,int multy,int divy) 
  1444.  
  1445. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  1446.  
  1447. Specify multiply and divide factors to scale the text font by.  The default 
  1448. width is scaled by multx/divx and the default height is scaled by multy/divy 
  1449. These settings only take effect if charsize equals 0, as set by a call to 
  1450. settextstyle. 
  1451.  
  1452. Status:  Working.  No error handling. 
  1453.  
  1454. Related Functions: 
  1455.  
  1456. gettextsettings graphresult settextstyle 
  1457.  
  1458.  
  1459. ΓòÉΓòÉΓòÉ 9.77. <setviewport> ΓòÉΓòÉΓòÉ
  1460.  
  1461. Note:  This function is not currently supported 
  1462.  
  1463.  
  1464. ΓòÉΓòÉΓòÉ 9.78. <setvisualpage> ΓòÉΓòÉΓòÉ
  1465.  
  1466. Note:  This function is not currently supported 
  1467.  
  1468.  
  1469. ΓòÉΓòÉΓòÉ 9.79. setwritemode ΓòÉΓòÉΓòÉ
  1470.  
  1471. void setwritemode(int mode) 
  1472.  
  1473. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  1474.  
  1475. Sets the write mode to mode.  There are two styles defined: 
  1476.  
  1477. o COPY_PUT = 0 
  1478.  
  1479. o XOR_PUT = 1 
  1480.  
  1481. When the write mode is COPY_PUT, the line drawn overwrites whatever is on the 
  1482. screen.  When the write mode is XOR_PUT, the line is exclusive or'd with 
  1483. whatever is on the screen.  The write mode only affects the line, linerel, 
  1484. lineto, rectangle, and drawpoly functions. 
  1485.  
  1486. Status:  Complete. 
  1487.  
  1488. Related Functions: 
  1489.  
  1490. drawpoly line linerel lineto rectangle 
  1491.  
  1492.  
  1493. ΓòÉΓòÉΓòÉ 9.80. textheight ΓòÉΓòÉΓòÉ
  1494.  
  1495. int textheight(char *textstring) 
  1496.  
  1497. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  1498.  
  1499. Determines the height of textstring in pixels, based on the currently selected 
  1500. font and scaling factor. 
  1501.  
  1502. Status:  Complete. 
  1503.  
  1504. Related Functions: 
  1505.  
  1506. gettextsettings outtext outtextxy settextstyle textwidth 
  1507.  
  1508.  
  1509. ΓòÉΓòÉΓòÉ 9.81. textwidth ΓòÉΓòÉΓòÉ
  1510.  
  1511. int textwidth(char *textstring) 
  1512.  
  1513. ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
  1514.  
  1515. Determines the width of textstring in pixels, based on the currently selected 
  1516. font and scaling factor. 
  1517.  
  1518. Status:  Complete. 
  1519.  
  1520. Related Functions: 
  1521.  
  1522. gettextsettings outtext outtextxy settextstyle textheight