ВУЗ:
Составители:
Основы компьютерной графики для программистов 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
- …
- следующая ›
- последняя »