_graphgetmem
raw OCR
User hook into graphics memory allocation.
Defined in header <graphics.h>
Syntax
#include <graphics.h>
void far * far _graphgetmem (unsigned size);
Portability
| DOS | UNIX | Windows | ANSI C | C++ only |
|---|---|---|---|---|
| ■ |
Remarks
Routines in the graphics library (not the user program) normally call
| _graphgetmem | to allocate memory for internal buffers, graphics drivers, |
| and character sets. You can choose to control the memory management | of |
| the graphics library by defining your own version of _graphgetmem | (you |
must declare it exactly as shown in the declaration). The default version of this routine merely calls malloc.
Return value
None.
See also
Example
#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <alloc.h>
int main (void)
{
/* request autodetection */
int gdriver = DETECT, gmode, errorcode, midx, midy;
/* clear the text screen */
clrscr 0 ;
printf ("Press any key to initialize graphics mode:");
getchO ;
clrscr 0 ;
/* initialize graphics and local variables */
initgraph (&gdriver, &gmode, "") ;
/* read result of initialization */
errorcode = graphresult ();
if (errorcode != grOk) { /.* an error occurred */
printf ("Graphics error: %s\n", grapherrormsg(errorcode));
printf ("Press any key to halt:");
getchO ;
exit(l); /* terminate with an error code */
}
midx = getmaxxO / 2;
midy = getmaxy () / 2;
/* display a message */
settextjustify (CENTER_TEXT, CENTER_TEXT);
outtextxy (midx, midy, "Press any key to exit graphics mode:")
/* clean up */
getchO ;
closegraphO ;
return 0;
}
/* called by the graphics kernel to allocate memory */
void far * far _graphgetmem (unsigned size) {
printf ("_graphgetmem called to allocate %d bytes.\n", size);
printf ("hit any key:");
getchO;
printf ("\n");
/* allocate memory from far heap */
return farmalloc(size) ;
}
/* called by the graphics kernel to free memory */
void far _graphfreemem(void far *ptr, unsigned size) {
printf ("_graphfreemem called to free %d bytes.\n", size)
printf ("hit any key:");
getchO ;
printf ("\n");
/* free ptr from far heap */
farfree(ptr);
Differences from modern implementations
Nothing recorded yet.
Modern references
These are search links, not yet checked by hand.
Stable link: /3.1/graphics.h/_graphgetmem/
· short form /3.1/_graphgetmem/