Размещение поверхностей QWSWindow над QGLWidget в Qt / Embedded - PullRequest
1 голос
/ 01 мая 2011

Я пытаюсь написать драйвер QScreen для Qt для встраиваемых Linux-систем, чтобы можно было интегрировать возможности OpenGL через кадровый буфер. У меня есть оба окна QWS вместе с поверхностями EGL на экране с моим водителем на данный момент. Я использую стандартные реализации методов exposeRegion, blit и solidFill. К сожалению, я заметил, что если я пытаюсь разместить окно QWS над поверхностью EGL, я получаю, что поверхность EGL всегда находится над окном QWS.

Можно ли как-то позволить окнам QWS проходить над поверхностью EGL, когда поверхность EGL не является окном верхнего уровня? Как я могу это сделать?

Я знаю, что OpenGL рисует прямо на экране, но я предположил, что прерывание процедуры обновления должно было позволить драйверу QScreen нарисовать окно поверх него, но, похоже, этого не происходит.

Спасибо!

1 Ответ

2 голосов
/ 14 мая 2011

На всякий случай, если кому-то еще это интересно, это можно сделать.Я не мог просто потому, что некоторые другие функции нужно было переопределить.В моем случае этого не было:

bool CompositeGLScreen::chooseContext(QGLContext *context, const QGLContext *shareContext)
{
    Q_UNUSED(context);
    Q_UNUSED(shareContext);
    return false;
}

Референсная реализация Qt для PowerVR делает это следующим образом.

...