Changeset View
Changeset View
Standalone View
Standalone View
plugins/scenes/qpainter/scene_qpainter.cpp
Show First 20 Lines • Show All 274 Lines • ▼ Show 20 Line(s) | 247 | { | |||
---|---|---|---|---|---|
275 | QImage tempImage; | 275 | QImage tempImage; | ||
276 | QPainter tempPainter; | 276 | QPainter tempPainter; | ||
277 | if (!opaque) { | 277 | if (!opaque) { | ||
278 | // need a temp render target which we later on blit to the screen | 278 | // need a temp render target which we later on blit to the screen | ||
279 | tempImage = QImage(toplevel->visibleRect().size(), QImage::Format_ARGB32_Premultiplied); | 279 | tempImage = QImage(toplevel->visibleRect().size(), QImage::Format_ARGB32_Premultiplied); | ||
280 | tempImage.fill(Qt::transparent); | 280 | tempImage.fill(Qt::transparent); | ||
281 | tempPainter.begin(&tempImage); | 281 | tempPainter.begin(&tempImage); | ||
282 | tempPainter.save(); | 282 | tempPainter.save(); | ||
283 | tempPainter.translate(toplevel->geometry().topLeft() - toplevel->visibleRect().topLeft()); | 283 | tempPainter.translate(toplevel->frameGeometry().topLeft() - toplevel->visibleRect().topLeft()); | ||
284 | painter = &tempPainter; | 284 | painter = &tempPainter; | ||
285 | } | 285 | } | ||
286 | renderShadow(painter); | 286 | renderShadow(painter); | ||
287 | renderWindowDecorations(painter); | 287 | renderWindowDecorations(painter); | ||
288 | 288 | | |||
289 | // render content | 289 | // render content | ||
290 | const QRect target = QRect(toplevel->clientPos(), toplevel->clientSize()); | 290 | const QRect target = QRect(toplevel->clientPos(), toplevel->clientSize()); | ||
291 | QSize srcSize = pixmap->image().size(); | 291 | QSize srcSize = pixmap->image().size(); | ||
Show All 16 Lines | |||||
308 | if (!opaque) { | 308 | if (!opaque) { | ||
309 | tempPainter.restore(); | 309 | tempPainter.restore(); | ||
310 | tempPainter.setCompositionMode(QPainter::CompositionMode_DestinationIn); | 310 | tempPainter.setCompositionMode(QPainter::CompositionMode_DestinationIn); | ||
311 | QColor translucent(Qt::transparent); | 311 | QColor translucent(Qt::transparent); | ||
312 | translucent.setAlphaF(data.opacity()); | 312 | translucent.setAlphaF(data.opacity()); | ||
313 | tempPainter.fillRect(QRect(QPoint(0, 0), toplevel->visibleRect().size()), translucent); | 313 | tempPainter.fillRect(QRect(QPoint(0, 0), toplevel->visibleRect().size()), translucent); | ||
314 | tempPainter.end(); | 314 | tempPainter.end(); | ||
315 | painter = scenePainter; | 315 | painter = scenePainter; | ||
316 | painter->drawImage(toplevel->visibleRect().topLeft() - toplevel->geometry().topLeft(), tempImage); | 316 | painter->drawImage(toplevel->visibleRect().topLeft() - toplevel->frameGeometry().topLeft(), tempImage); | ||
317 | } | 317 | } | ||
318 | 318 | | |||
319 | painter->restore(); | 319 | painter->restore(); | ||
320 | } | 320 | } | ||
321 | 321 | | |||
322 | void SceneQPainter::Window::renderShadow(QPainter* painter) | 322 | void SceneQPainter::Window::renderShadow(QPainter* painter) | ||
323 | { | 323 | { | ||
324 | if (!toplevel->shadow()) { | 324 | if (!toplevel->shadow()) { | ||
▲ Show 20 Lines • Show All 576 Lines • Show Last 20 Lines |