void StackFolder::paintInterface(QPainter *p, const QStyleOptionGraphicsItem *option, const QRect &contentsRect) { Q_UNUSED(p); Q_UNUSED(option); Q_UNUSED(contentsRect); if (m_placesModel && m_iconAnimationGroup->state() != QAbstractAnimation::Stopped) { if (m_hoverState) { stopAnimation(); } else { setPopupIcon(m_icon.pixmap(m_popupIconSize.width(), m_popupIconSize.height())); return; } } if (m_hoverShow) { if (m_hoverState) { QPixmap pixmap = m_icon.pixmap(geometry().width(), geometry().height()); QPixmap alphaMask(pixmap.width(), pixmap.height()); const QColor color(127, 127, 127); alphaMask.fill(color); pixmap.setAlphaChannel(alphaMask); setPopupIcon(pixmap); } else { setPopupIcon(m_icon); } } }
void RatingWidget::applyFading(QPixmap& pix) { if (hasFading() && d->fadingValue < 255) { QPixmap alphaMask(pix.width(), pix.height()); const QColor color(d->fadingValue, d->fadingValue, d->fadingValue); alphaMask.fill(color); pix.setAlphaChannel(alphaMask); } }
/** * Creates a ExtGState with the SMask set to the luminosityShader in * luminosity mode. The shader pattern extends to the bbox. */ SkPDFGraphicState* SkPDFAlphaFunctionShader::CreateSMaskGraphicState() { SkRect bbox; bbox.set(fState.get()->fBBox); SkAutoTUnref<SkPDFObject> luminosityShader( SkPDFShader::GetPDFShaderByState( fState->CreateAlphaToLuminosityState())); SkAutoTUnref<SkStream> alphaStream(create_pattern_fill_content(-1, bbox)); SkAutoTUnref<SkPDFResourceDict> resources(get_gradient_resource_dict(luminosityShader, NULL)); SkAutoTUnref<SkPDFFormXObject> alphaMask( new SkPDFFormXObject(alphaStream.get(), bbox, resources.get())); return SkPDFGraphicState::GetSMaskGraphicState( alphaMask.get(), false, SkPDFGraphicState::kLuminosity_SMaskMode); }
/** * Creates a ExtGState with the SMask set to the luminosityShader in * luminosity mode. The shader pattern extends to the bbox. */ static SkPDFObject* create_smask_graphic_state( SkPDFCanon* canon, SkScalar dpi, const SkPDFShader::State& state) { SkRect bbox; bbox.set(state.fBBox); SkAutoTDelete<SkPDFShader::State> alphaToLuminosityState( state.CreateAlphaToLuminosityState()); SkAutoTUnref<SkPDFObject> luminosityShader( get_pdf_shader_by_state(canon, dpi, &alphaToLuminosityState)); SkAutoTDelete<SkStream> alphaStream(create_pattern_fill_content(-1, bbox)); SkAutoTUnref<SkPDFDict> resources(get_gradient_resource_dict(luminosityShader, NULL)); SkAutoTUnref<SkPDFFormXObject> alphaMask( new SkPDFFormXObject(alphaStream.get(), bbox, resources.get())); return SkPDFGraphicState::GetSMaskGraphicState( alphaMask.get(), false, SkPDFGraphicState::kLuminosity_SMaskMode); }
void GraphicsLayer::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) { if (!m_layerScene) { return; } if (m_prevSceneRect != m_sceneRect) { m_pixmap = QPixmap(m_viewRect.size()); QBitmap alphaMask(m_viewRect.size()); alphaMask.clear(); m_pixmap.setMask(alphaMask); m_prevSceneRect = m_sceneRect; QPainter sourcePainter(&m_pixmap); m_layerScene->render(&sourcePainter, m_viewRect, m_sceneRect); } painter->save(); painter->setCompositionMode(QPainter::CompositionMode_Difference); painter->drawPixmap(m_sceneRect, m_pixmap, m_viewRect); painter->restore(); }