C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
мерцание окна при использовании OpenGL
VortEX
Отправлено: 08.10.2005, 21:01


Не зарегистрирован







Hi All,

Наблюдается сабж. Сцена рисуется в OnPaint'е так:

== cut ==
PAINTSTRUCT ps;
BeginPaint(Form1->Handle, &ps);
..
SwapBuffers(Form1->Canvas->Handle);
EndPaint(Form1->Handle, &ps);
== cut ==

В другом месте программы сцена рисуется через вызов Form1->Repaint();
При частом вызове Repaint'a окно мерцает.

Заранее спасибо.
В Delphi это фиксилось так:
в свойствах формы писалось:

protected procedure WMPaint(var Msg: TWMPaint); message WM_PAINT;

и затем:
procedure TForm1.WMPaint(var Msg: TWMPaint);
begin
// тут обработка WMPaint
end;

А как так сделать в билдере?
klen
Отправлено: 11.10.2005, 16:00


Машинист паровоза

Группа: Участник
Сообщений: 239



какойто странный у тебя OpenGL. Если ты правильно задаш вопрос (чтоб я понял где GL а где GDI у тебя) то я тебе отвечу.
Guest
Отправлено: 11.10.2005, 17:38


Не зарегистрирован







А что именно уточнить?

== cut ==
PAINTSTRUCT ps;
BeginPaint(Form1->Handle, &ps);
// ***** тут весь OpenGL *****
SwapBuffers(Form1->Canvas->Handle);
EndPaint(Form1->Handle, &ps);
== cut ==
.....................
и затем:
procedure TForm1.WMPaint(var Msg: TWMPaint);
begin
// тут обработка WMPaint <=> написанному выще под катом
end;

Вернуться в Вопросы программирования в C++Builder