ВУЗ:
Составители:
Основы компьютерной графики для программистов 68
____________________________________________________________________________________________________________________
http://www.ksu.ru/persons/9134.ru.html
);
Для освобождении контекста воспроизведения потока первый параметр игнорируется,
а второй должен иметь нулевое значение. При успешном выполнении функция
возвращает значение True.
Завершающие действия описаны в процедуре
FormDestroy:
procedure TfrmGL.FormDestroy(Sender: TObject);
begin
wglMakeCurrent(0, 0);
wglDeleteContext(RContext);
ReleaseDC (Handle, RContext);
DeleteDC (hdc);
end;
Параметры визуализации
Для изучения моделей отражения и освещения в OpenGL рассмотрим фрагменты
программы, которая предназначена для интерактивной и наглядной демонстрации
работы этих моделей.
Процедура вывода на экран очередного кадра изображения является ключевой. Для
того чтобы автоматическая перерисовка окна не стирала изображение кадра, все
действия встроены в обработчик перерисовки формы
FormPaint.
procedure TfrmGL.FormPaint(Sender: TObject);
var
ps : TPaintStruct;
begin
try
BeginPaint (Panel1.Handle, ps); //для устойчивой работы
//очистка буферов цвета и глубины
glClear (GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT );
SetUpCommons;
DrawScene;
glFlush;
SwapBuffers(hrc);
EndPaint (Panel1.Handle, ps);
except
end;
end;
Для большей надежности работы операторы заключены в конструкцию try..except, а
также в программные скобки BeginPaint – EndPaint. Функция BeginPaint подготавливает
окно для вывода графики.
Собственно обновление окна производится вызовом функций OpenGL:
• glFlush;
•
SwapBuffers(hrc);
Функция glFlush заставляет сервер OpenGL закончить все команды по построении
сцены OpenGL за конечное, как сказано в документации, время. Таким образом, мы
Основы компьютерной графики для программистов 68
____________________________________________________________________________________________________________________
);
Для освобождении контекста воспроизведения потока первый параметр игнорируется,
а второй должен иметь нулевое значение. При успешном выполнении функция
возвращает значение True.
Завершающие действия описаны в процедуре FormDestroy:
procedure TfrmGL.FormDestroy(Sender: TObject);
begin
wglMakeCurrent(0, 0);
wglDeleteContext(RContext);
ReleaseDC (Handle, RContext);
DeleteDC (hdc);
end;
Параметры визуализации
Для изучения моделей отражения и освещения в OpenGL рассмотрим фрагменты
программы, которая предназначена для интерактивной и наглядной демонстрации
работы этих моделей.
Процедура вывода на экран очередного кадра изображения является ключевой. Для
того чтобы автоматическая перерисовка окна не стирала изображение кадра, все
действия встроены в обработчик перерисовки формы FormPaint.
procedure TfrmGL.FormPaint(Sender: TObject);
var
ps : TPaintStruct;
begin
try
BeginPaint (Panel1.Handle, ps); //для устойчивой работы
//очистка буферов цвета и глубины
glClear (GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT );
SetUpCommons;
DrawScene;
glFlush;
SwapBuffers(hrc);
EndPaint (Panel1.Handle, ps);
except
end;
end;
Для большей надежности работы операторы заключены в конструкцию try..except, а
также в программные скобки BeginPaint – EndPaint. Функция BeginPaint подготавливает
окно для вывода графики.
Собственно обновление окна производится вызовом функций OpenGL:
• glFlush;
• SwapBuffers(hrc);
Функция glFlush заставляет сервер OpenGL закончить все команды по построении
сцены OpenGL за конечное, как сказано в документации, время. Таким образом, мы
http://www.ksu.ru/persons/9134.ru.html
Страницы
- « первая
- ‹ предыдущая
- …
- 66
- 67
- 68
- 69
- 70
- …
- следующая ›
- последняя »
