bool FLPicturePrivate::end() { if ( ownerPte && pte->isActive() ) return pte->end(); else if ( !ownerPte && pte->isActive() && endPte ) return pte->end(); return false; }
void ImageBufferDataPrivateUnaccelerated::platformTransformColorSpace(const Vector<int>& lookUpTable) { QPainter* painter = paintDevice()->paintEngine()->painter(); bool isPainting = painter->isActive(); if (isPainting) painter->end(); QImage image = toQImage().convertToFormat(QImage::Format_ARGB32); ASSERT(!image.isNull()); uchar* bits = image.bits(); const int bytesPerLine = image.bytesPerLine(); for (int y = 0; y < m_pixmap.height(); ++y) { quint32* scanLine = reinterpret_cast_ptr<quint32*>(bits + y * bytesPerLine); for (int x = 0; x < m_pixmap.width(); ++x) { QRgb& pixel = scanLine[x]; pixel = qRgba(lookUpTable[qRed(pixel)], lookUpTable[qGreen(pixel)], lookUpTable[qBlue(pixel)], qAlpha(pixel)); } } m_pixmap = QPixmap::fromImage(image); if (isPainting) painter->begin(&m_pixmap); }
void Canvas::paintEvent(QPaintEvent *e) { QPainter *p = new QPainter(this); QPen pen(QColor(0,0,0,255)); if(p->isActive()){ p->setRenderHint(QPainter::Antialiasing); pen.setWidth(1); p->setPen(pen); p->save(); pen.setColor(QColor(255,0,0,255)); p->setPen(pen); foreach(QPainterPath t, _ticks) p->drawPath(t); p->restore(); p->drawEllipse(PADDING,PADDING,_radiusX*2,_radiusY*2); p->end(); } QFrame::paintEvent(e); }
void Canvas::paintEvent(QPaintEvent *e) { QPainter *p = new QPainter(this); QPen pen(QColor(0,0,0,255)); qreal curangle = 0.0; if(p->isActive()){ p->setRenderHint(QPainter::Antialiasing); pen.setWidth(1); p->setPen(pen); p->save(); pen.setColor(QColor(255,0,0,255)); p->setPen(pen); foreach(qreal v, _values){ qreal span = (5760.0 / _valueSum) * v; cout << "Value: " << v << " (sum="<<_valueSum<<") , span = " << span << "/5760, curangle = " << curangle; p->drawPie(rect(), curangle, span); curangle += span; cout << ", newangle = " << curangle << endl; }
void FLPicturePrivate::setPainter( QPainter * pt ) { if ( pic && pt ) { if ( pte ) { end(); if ( ownerPte ) delete pte; } pte = pt; ownerPte = false; endPte = !pte->isActive(); } }
void SVGFrame::resizeEvent ( QResizeEvent* event ) { QFrame::resizeEvent ( event ); emit resized ( event->size() ); if ( drawImg && event->size().width() >0 && event->size().height() >0 &&!empty ) { QPalette pal=palette(); QImage img ( event->size(),QImage::Format_ARGB32_Premultiplied ); QPainter p ( &img ); if ( p.isActive() ) renderer->render ( &p ); pal.setBrush ( QPalette::Window,QBrush ( QPixmap::fromImage ( img ) ) ); setPalette ( pal ); } }
// Note : should be called with lock held static inline bool maskPainter(int qtGraphDesc, QPainter &p) { bool r = false; QColor c; switch (QtGraphDescPool[qtGraphDesc].blendmode) { case java_awt_AlphaComposite_SRC_OVER: if((QtGraphDescPool[qtGraphDesc].currentalpha & 0x80) != 0) { c = Qt::color1; r = true; } break; case java_awt_AlphaComposite_SRC: c = (QtGraphDescPool[qtGraphDesc].currentalpha & 0x80) ? Qt::color1 : Qt::color0; r = true; break; case java_awt_AlphaComposite_CLEAR: c = Qt::color0; r = true; break; default: r = false; } if(r) { QPen qp(p.pen()); QBrush qb(p.brush()); qp.setColor(c); qb.setColor(c); if(p.isActive()) p.end(); p.begin((QPaintDevice *)(QtImageDescPool[QtGraphDescPool[qtGraphDesc].qid].mask)); p.setPen(qp); p.setBrush(qb); setPainterClip(&p, qtGraphDesc) ; } return r; }
// Get the metrics for a font. QFontMetrics SurfaceImpl::metrics(Font &font_) { QFont *f = PFont(font_.GetID()), fnt; if (f) fnt = *f; else fnt = QApplication::font(); if (painter && painter->isActive()) { painter->setFont(fnt); return painter->fontMetrics(); } return QFontMetrics(fnt); }
void NLabel::paintEvent(QPaintEvent *event) { Q_UNUSED(event); QPainter painter; QRect rect = contentsRect(); if (painter.isActive()) painter.setFont(font()); if (m_enabled && m_shadowOffset != QPoint(0, 0)) { painter.begin(this); painter.setPen(QPen(m_shadowColor)); painter.drawText(rect.translated(m_shadowOffset), alignment(), m_elidedText); painter.end(); } painter.begin(this); painter.drawText(rect, alignment(), m_elidedText); painter.end(); }
void OscilloscopeView::paintEvent( QPaintEvent *e) { QRect r = e->rect(); if(b_needRedraw) { updateOutputHeight(); const double pixelsPerSecond = Oscilloscope::self()->pixelsPerSecond(); if (!m_pixmap) { qWarning() << Q_FUNC_INFO << " unexpected null m_pixmap in " << this; return; } QPainter p; //m_pixmap->fill( paletteBackgroundColor()); m_pixmap->fill( palette().color( backgroundRole() )); const bool startSuccess = p.begin(m_pixmap); if ((!startSuccess) || (!p.isActive())) { qWarning() << Q_FUNC_INFO << " painter is not active"; } p.setClipRegion(e->region()); //BEGIN Draw vertical marker lines const double divisions = 5.0; const double min_sep = 10.0; double spacing = pixelsPerSecond/(std::pow( divisions, std::floor(std::log(pixelsPerSecond/min_sep)/std::log(divisions)))); // Pixels offset is the number of pixels that the view is scrolled along const int64_t pixelsOffset = int64_t(Oscilloscope::self()->scrollTime()*pixelsPerSecond/LOGIC_UPDATE_RATE); double linesOffset = - lld_modulus( pixelsOffset, spacing); int blackness = 256 - int(184.0 * spacing / (min_sep*divisions*divisions)); p.setPen( QColor( blackness, blackness, blackness)); for( double i = linesOffset; i <= frameRect().width(); i += spacing) p.drawLine( int(i), 1, int(i), frameRect().height()-2); spacing *= divisions; linesOffset = - lld_modulus( pixelsOffset, spacing); blackness = 256 - int(184.0 * spacing / (min_sep*divisions*divisions)); p.setPen( QColor( blackness, blackness, blackness)); for( double i = linesOffset; i <= frameRect().width(); i += spacing) p.drawLine( int(i), 1, int(i), frameRect().height()-2); spacing *= divisions; linesOffset = - lld_modulus( pixelsOffset, spacing); blackness = 256 - int(184.0); p.setPen( QColor( blackness, blackness, blackness)); for( double i = linesOffset; i <= frameRect().width(); i += spacing) p.drawLine( int(i), 1, int(i), frameRect().height()-2); //END Draw vertical marker lines drawLogicData(p); drawFloatingData(p); p.setPen(Qt::black); p.drawRect( frameRect()); b_needRedraw = false; } //bitBlt( this, r.x(), r.y(), m_pixmap, r.x(), r.y(), r.width(), r.height()); // 2018.12.07 QPainter p; const bool paintStarted = p.begin(this); if (!paintStarted) { qWarning() << Q_FUNC_INFO << " failed to start painting "; } p.drawImage(r, m_pixmap->toImage(), r); }
// public virtual [base kpCommand] void kpToolAutoCropCommand::unexecute () { #if DEBUG_KP_TOOL_AUTO_CROP && 1 kdDebug () << "kpToolAutoCropCommand::unexecute()" << endl; #endif kpDocument *doc = document (); if (!doc) return; QPixmap pixmap (m_oldWidth, m_oldHeight); QBitmap maskBitmap; // restore the position of the centre image kpPixmapFX::setPixmapAt (&pixmap, m_contentsRect, *doc->pixmap (m_actOnSelection)); // draw the borders QPainter painter (&pixmap); QPainter maskPainter; const kpToolAutoCropBorder *borders [] = { &m_leftBorder, &m_rightBorder, &m_topBorder, &m_botBorder, 0 }; const QPixmap *pixmaps [] = { m_leftPixmap, m_rightPixmap, m_topPixmap, m_botPixmap, 0 }; const QPixmap **p = pixmaps; for (const kpToolAutoCropBorder **b = borders; *b; b++, p++) { if (!(*b)->exists ()) continue; if ((*b)->isSingleColor ()) { kpColor col = (*b)->referenceColor (); #if DEBUG_KP_TOOL_AUTO_CROP && 1 kdDebug () << "\tdrawing border " << (*b)->rect () << " rgb=" << (int *) col.toQRgb () /* %X hack */ << endl; #endif if (col.isOpaque ()) { painter.fillRect ((*b)->rect (), col.toQColor ()); } else { if (maskBitmap.isNull ()) { // TODO: dangerous when a painter is active on pixmap? maskBitmap = kpPixmapFX::getNonNullMask (pixmap); maskPainter.begin (&maskBitmap); } maskPainter.fillRect ((*b)->rect (), Qt::color0/*transparent*/); } } else { #if DEBUG_KP_TOOL_AUTO_CROP && 1 kdDebug () << "\trestoring border pixmap " << (*b)->rect () << endl; #endif // **p cannot contain a single transparent pixel because // if it did, all other pixels must be transparent (only // transparent pixels are similar to transparent pixels) // and the other branch would execute. if (*p) { // TODO: We should really edit the mask here. Due to good // luck (if "maskBitmap" is initialized above, this region // will be marked as opaque in the mask; if it's not // initialized, we will be opaque by default), we // don't actually have to edit the mask but this is // highly error-prone. painter.drawPixmap ((*b)->rect (), **p); } } } if (maskPainter.isActive ()) maskPainter.end (); painter.end (); if (!maskBitmap.isNull ()) pixmap.setMask (maskBitmap); if (!m_actOnSelection) doc->setPixmap (pixmap); else { kpSelection sel = m_oldSelection; sel.setPixmap (pixmap); doc->setSelection (sel); if (m_mainWindow->tool ()) m_mainWindow->tool ()->somethingBelowTheCursorChanged (); } deleteUndoPixmaps (); }
bool FLPicturePrivate::begin() { if ( !pte->isActive() ) return pte->begin( pic ); return false; }
STDMETHODIMP CThumbnailProvider::GetThumbnail(UINT cx, HBITMAP *phbmp, WTS_ALPHATYPE *pdwAlpha) { *phbmp = NULL; *pdwAlpha = WTSAT_ARGB; int width, height; QSize size = renderer.defaultSize(); if(size.width() == size.height()){ width = cx; height = cx; } else if (size.width() > size.height()){ width = cx; height = size.height() * ((double)cx / (double)size.width()); } else { width = size.width() * ((double)cx / (double)size.height()); height = cx; } QFile * f = new QFile("C:\\dev\\svg.log"); f->open(QFile::Append); f->write(QString("Size: %1 \n.").arg(cx).toAscii()); f->flush(); f->close(); QImage * device = new QImage(width, height, QImage::Format_ARGB32); device->fill(Qt::transparent); QPainter * painter = new QPainter(); QFont font; QColor color_font = QColor(255, 0, 0); painter->begin(device); painter->setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform | QPainter::TextAntialiasing); assert(device->paintingActive() && painter->isActive()); if(loaded){ renderer.render(painter); } else { int font_size = cx / 10; font.setStyleHint(QFont::Monospace); font.setPixelSize(font_size); painter->setPen(color_font); painter->setFont(font); painter->drawText(font_size, (cx - font_size) / 2, "Invalid SVG file."); } painter->end(); assert(!device->isNull()); #ifndef NDEBUG device->save(QString("C:\\dev\\%1.png").arg(QDateTime::currentMSecsSinceEpoch()), "PNG"); #endif *phbmp = QPixmap::fromImage(*device).toWinHBITMAP(QPixmap::Alpha); assert(*phbmp != NULL); delete painter; delete device; if( *phbmp != NULL ) return NOERROR; return E_NOTIMPL; }