Computer graphics tutorial
---->Basic term that use in graphics in c or c++ language
What are initgraph, gd and gm?
- gd = graphdriver;
- gm = graphmode;
Syntax for initgraph:
void initgraph (int *graphdriver, int *graphmode, char *pathtodriver) ;
Description for initgraph:
initgraph
initgraph is used to initialize the graphics system by loading a graphics driver from disk and thereby putting the system into graphics mode.
To start the graphics system, we first call the initgraph function. initgraph may use a particular graphics driver and mode, or it may auto-detect and pick the corresponding driver at runtime, according to our needs.
If we tell initgraph to autodetect, it calls detectgraph to select a graphics driver and mode. It also resets all graphics settings to their defaults values like current position, color, viewport and so on and also resets graphresult to 0.
Normally, memory is allocated by initgraph to load a particular graphics driver through _graphgetmem, then it loads the appropriate BGI file from disk.
pathtodriver
pathtodriver denotes the directory path where initgraph must look for graphic drivers. initgraph first goes through the directed path to look for the files and if they are not found there, it goes to the current directory. The graphic driver must files must be present in the current directory if the pathtodriver is null.
graphdriver
*graphdriver is the integer that specifies which graphics driver is to be used. We can give it a value using a constant of the graphics_drivers enum type, which is defined in graphics.h and listed below.
graphics_drivers constant Numeric value DETECT 0 (requests autodetect) CGA 1 MCGA 2 EGA 3 EGA64 4 EGAMONO 5 IBM8514 6 HERCMONO 7 ATT400 8 VGA 9 PC3270 10
graphmode
*graphmode is also an integer that specifies the initial graphics mode. The table for the values of *graphmode are given in the tlink below and its values are assigned in the same way as for *graphdriver.
graphdriver and graphmode must be given proper values from the tables or we will get absurd and unexpected results. The exception here is when graphdriver = DETECT. In this case, initgraph sets *graphmode to the highest resolution available for the detected driver.
Reference: https://www.cs.colorado.edu/~main/bgi/doc/initgraph.html
What is BGI?
Borland Graphics Interface (BGI) is a graphics library that is bundled with several Borland compilers for the DOS operating systems since 1987. The library loads graphic drivers (*.BGI) and vector fonts (*.CHR) from disk so to provide device independent graphics support to the programmers.
BGI is accessible in C/C++ with graphics.lib/graphics.h.
Reference: Borland Graphics Interface
What is closegraph()?
Syntax for closegraph() :
void closegraph (int wid= ALL_WINDOWS);
Description:
closegraph deallocates the memory allocated by the graphics system and then restores the screen to the mode it was in before calling initgraph.
Return Value: Return value is none.
Windows Version of closegraph() :
In windows version of closegraph, there is an optional parameter called the ‘wid’ which is the window id (returned by initwindow) of the window that is supposed to be closed.
The wid parameter can also take one of the two constant values given below:
- CURRENT_WINDOW which closes only the current window or
- ALL_WINDOWS which by default closes all the open graphic windows.
By closing the current window, current window will no longer exist and we will not be able to give any further drawing commands until a new window is created or a current window is set by calling setcurrentwindow.

0 Comments