Borland C++ reference

_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

DOSUNIXWindowsANSI CC++ only
■

Remarks

Routines in the graphics library (not the user program) normally call

_graphgetmemto allocate memory for internal buffers, graphics drivers,
and character sets. You can choose to control the memory managementof
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.