Russian Belarusian English German Japanese Ukrainian

Rashka.studio - игры и приложения для Android! Заходи, ждём тебя =)

Setgraphbufsize

CuBook05

Функция

Изменяет размер внутреннего графического буфера.
 
Синтаксис

#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.
 
Пример

#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;
}
Если заметили ошибку, выделите фрагмент текста и нажмите Ctrl+Enter

Добавить комментарий