Programming Reference/Librarys
Question & Answer
Q&A is closed
Some of the graphics routines (such as floodfill) use a memory buffer that is allocated when initgraph is called and released when closegraph is called. The default size of this buffer, allocated by _graphgetmem, is 4,096 bytes. You might want to make this buffer smaller (to save memory space) or bigger (if, for example, a call to floodfill produces error -7: Out of flood memory). setgraphbufsize tells initgraph how much memory to allocate for this internal graphics buffer when it calls _graphgetmem. You must call setgraphbufsize before calling initgraph. Once initgraph has been called, all calls to setgraphbufsize are ignored until after the next call to closegraph.
/* setgraphbufsize example */ #include <graphics.h> #include <stdlib.h> #include <stdio.h> #include <conio.h> #define BUFSIZE 1000 /* internal graphics buffer size */ int main(void) { /* request autodetection */ int gdriver = DETECT, gmode, errorcode; int x, y, oldsize; char msg[80]; /* _set size of internal graphics buffer before calling initgraph */ oldsize = setgraphbufsize(BUFSIZE); /* 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:"); getch(); exit(1); /* terminate with an error code */ } x = getmaxx() / 2; y = getmaxy() / 2; /* output some messages */ sprintf(msg, "Graphics buffer size: %d", BUFSIZE); settextjustify(CENTER_TEXT, CENTER_TEXT); outtextxy(x, y, msg); sprintf(msg, "Old graphics buffer size: %d", oldsize); outtextxy(x, y+textheight("W"), msg); /* clean up */ getch(); closegraph(); return 0; }
no output of example at the moment do not hesitate and add it...