scene: Use hardware clipping when painting overlay items

It's needed to properly render transformed overlay items. Ideally, the
ItemRenderer would split items that can be rendered with and without the
scissor test on its own. But we are not there yet, so pass the
PAINT_SCREEN_TRANSFORMED flag to force the ItemRendererOpenGL to use
hardware clipping.
This commit is contained in:
Vlad Zahorodnii 2023-12-09 18:40:45 +02:00
parent 916710ea01
commit bcba59a7f5

View file

@ -382,7 +382,7 @@ void WorkspaceScene::paint(const RenderTarget &renderTarget, const QRegion &regi
if (m_overlayItem) {
const QRegion repaint = region & m_overlayItem->mapToScene(m_overlayItem->boundingRect()).toRect();
if (!repaint.isEmpty()) {
m_renderer->renderItem(renderTarget, viewport, m_overlayItem.get(), 0, repaint, WindowPaintData{});
m_renderer->renderItem(renderTarget, viewport, m_overlayItem.get(), PAINT_SCREEN_TRANSFORMED, repaint, WindowPaintData{});
}
}