From kde-kimageshop Wed Oct 08 23:13:11 2003 From: Patrick Julien Date: Wed, 08 Oct 2003 23:13:11 +0000 To: kde-kimageshop Subject: Re: Bwerk! X-MARC-Message: https://marc.info/?l=kde-kimageshop&m=106566243313232 On October 8, 2003 05:04 pm, Boudewijn Rempt wrote: > I managed to mess things up good and well... > > I added the following to kis_painter, knowing full well I wasn't supposed > to mess about with QPixmaps, but still doing so for the sake of quick > results: > > The raw tile stuff is actually 2 coordinates, not 1 coordinate and a size. > void KisPainter::drawPolyline(const QPointArray& polyline) > { > QRect r = polyline.boundingRect(); > r = r.normalize(); > > KisTileMgrSP tileMgr = m_device -> data(); > // Let's hope that PJ counts from left-top to right-bottom, too, > KisPixelDataSP pixels = tileMgr->pixelData( r.left(), > r.top(), > r.right(), > r.bottom(), > TILEMODE_RW ); > > QImage image = QImage( ( int ) pixels->data, > r.width(), > r.height(), > tileMgr->depth() ); > > QPixmap buffer = QPixmap( image ); > QPainter p; > p.begin(&buffer); > p.drawPolyline( polyline ); > p.end(); > > tileMgr->writePixelData( pixels ); // memcpy to destination > tileMgr->releasePixelData( pixels ); // Is this necessary? > > m_device->invalidate( r ); // And this? > } > > And then I called that like this: > > void KisToolBrush2::mouseMove(QMouseEvent *e) > { > if ( m_mousePressed ) { > m_polyline[2] = m_polyline[1]; > m_polyline[1] = m_polyline[0]; > m_polyline[0] = e->pos(); > > QRect r = m_polyline.boundingRect(); > r = r.normalize(); > > > KisImageSP img = m_view -> currentImg(); > if (img) { > KisPaintDeviceSP device = img -> activeDevice(); > if (device) { > KisPainter p; > p.begin(device); > p.drawPolyline( m_polyline ); > p.end(); > > //m_doc -> addCommand(new Brush2Cmd(img)); > device->anchor(); > } > > } > img -> invalidate(r); > m_view -> updateCanvas(r); > } > > And now Krita crashes in drawPolyline, giving me the distinc impression I > should finish reading Accelerated C++ as soon as possible... Back to comfy > chair and the meditative pipe for now. _______________________________________________ kimageshop mailing list kimageshop@mail.kde.org http://mail.kde.org/mailman/listinfo/kimageshop