CodeNet / Языки программирования / C / C++ / Руководства и справочные материалы по C/C++ / Справочники по функциям / Справочник по функциям C/C++
setgraphbufsize
setgraphbufsize
Функция Изменяет размер внутреннего графического буфера. Синтаксис #include <graphics.h> unsigned far setgraphbufsize(unsigned bufsize); Файл, содержащий graphics.h прототип Описание Некоторые графические функции (такие как floodfill) используют буфер памяти, который выделяется при вызове initgraph и отменяется при вызове closegraph. По умолчанию размер этого, выделяемого с помощью _graphgetmem, буфера равен 4096 байт. Вы можете сделать этот буфер меньше (для сбережения памяти) или больше (если, например, при обращении к floodfill возвращается ошибка -7: Out of flood memory). setgraphbufsize сообщает initgraph сколько памяти выделить для этого встроенного графического буфера, когда она обращается к _graphgetmem. Замечание. Вы должны вызывать setgraphbufsize до вызова initgraph. Если же initgraph вызван, то все обращения к setgraphbufsize будут игнорироваться до вызова closegraph. Возвращаемое setgraphbufsize возвращает предыдущий размер значение встроенного буфера. Переносимость Функция уникальна для Borland C++. Она работает только на компьютерах IBM PC и совместимых с ними, оснащенных дисплейными адаптерами, поддерживающими графический режим. Функция не совместима с Windows. Смотрите также closegraph, _graphfreemem, _graphgetmem, initgraph, sector. Пример: #include <graphics.h> #include <stdlib.h> #include <stdio.h> #include <conio.h> #define BUFSIZE 1000 /* размер внутреннего буфера */ int main(void) { /* Запрос автоопределения */ int graphdriver = DETECT, gmode, errorcode; int x,y,oldsize; char msg[80]; oldsize = setgraphbufsize(BUFSIZE); /* инициализация графики и локальных переменных */ initgraph(&graphdriver,&gmode,""); /* получение результата инициализации */ errorcode = graphresult(); if(errorcode != grOk) /* если ошибка */ { printf("Ошибка :%s\n",grapherrormessage(errorcode)); printf("Для останова нажмите любую клавишу\n"); getch(); exit(1); /* завершение с кодом ошибки */ } x = getmaxx()/2; y = getmaxy()/2; /* вывести информацию */ sprintf(msg,"Размер графического буфера: %d",BUFSIZE); settextjustify(CENTER_TEXT,CENTER_TEXT); outtextxy(x,y,msg); sprintf(msg,"Старый размер графического буфера: %d",oldsize); outtextxy(x,y+textheigth("W"),msg); /* очистка */ getch(); closegraph(); return 0; }