Russian Qt Forum

Qt => 2D и 3D графика => Тема начата: Anatolym78 от Январь 18, 2011, 15:18



Название: Как запретить сохранение фона окна.
Отправлено: Anatolym78 от Январь 18, 2011, 15:18
Рисую в окне средствами Direct3D, через полученный с помощью winID идентификатор окна(HWND). Но проблема в том, что qt запоминает фон рисунка (все, что нарисовано через QPainter, мой Direct3D естественно не учитывается), а потом его обновляет когда не просят. То есть рисую трехмерную графику (в paintEvent), а он сразу после этого рисует поверх фон окна. Как это можно победить?
OpenGL не предлагать, так как уже дофига написано на Direct3D и переписывать это нет не времени ни желания. Плюс с OpenGL не смог решить проблему рисования на втором мониторе в режиме вертикальной синхронизации.


Название: Re: Как запретить сохранение фона окна.
Отправлено: Anatolym78 от Январь 18, 2011, 16:26
setAttribute(Qt::WA_OpaquePaintEvent, true);
setAttribute(Qt::WA_NoSystemBackground, true);
setAttribute(Qt::WA_PaintOnScreen, true);

QPaintEngine* D3DWidget::paintEngine() const
{
  return 0;
}