| OLD | NEW |
| 1 | 1 |
| 2 /* | 2 /* |
| 3 * Copyright 2012 Google Inc. | 3 * Copyright 2012 Google Inc. |
| 4 * | 4 * |
| 5 * Use of this source code is governed by a BSD-style license that can be | 5 * Use of this source code is governed by a BSD-style license that can be |
| 6 * found in the LICENSE file. | 6 * found in the LICENSE file. |
| 7 */ | 7 */ |
| 8 | 8 |
| 9 #include "SkRasterWidget.h" | 9 #include "SkRasterWidget.h" |
| 10 | 10 |
| 11 SkRasterWidget::SkRasterWidget(SkDebugger *debugger) : QWidget() { | 11 SkRasterWidget::SkRasterWidget(SkDebugger *debugger) : QWidget() { |
| 12 fBitmap.setConfig(SkBitmap::kARGB_8888_Config, 800, 800); | 12 fBitmap.setConfig(SkBitmap::kARGB_8888_Config, 800, 800); |
| 13 fBitmap.allocPixels(); | 13 fBitmap.allocPixels(); |
| 14 fBitmap.eraseColor(SK_ColorTRANSPARENT); | 14 fBitmap.eraseColor(SK_ColorTRANSPARENT); |
| 15 fDevice = new SkDevice(fBitmap); | 15 fDevice = new SkBitmapDevice(fBitmap); |
| 16 fDebugger = debugger; | 16 fDebugger = debugger; |
| 17 fCanvas = new SkCanvas(fDevice); | 17 fCanvas = new SkCanvas(fDevice); |
| 18 this->setStyleSheet("QWidget {background-color: white; border: 1px solid #cc
cccc;}"); | 18 this->setStyleSheet("QWidget {background-color: white; border: 1px solid #cc
cccc;}"); |
| 19 } | 19 } |
| 20 | 20 |
| 21 SkRasterWidget::~SkRasterWidget() { | 21 SkRasterWidget::~SkRasterWidget() { |
| 22 SkSafeUnref(fCanvas); | 22 SkSafeUnref(fCanvas); |
| 23 SkSafeUnref(fDevice); | 23 SkSafeUnref(fDevice); |
| 24 } | 24 } |
| 25 | 25 |
| 26 void SkRasterWidget::resizeEvent(QResizeEvent* event) { | 26 void SkRasterWidget::resizeEvent(QResizeEvent* event) { |
| 27 fBitmap.setConfig(SkBitmap::kARGB_8888_Config, event->size().width(), event-
>size().height()); | 27 fBitmap.setConfig(SkBitmap::kARGB_8888_Config, event->size().width(), event-
>size().height()); |
| 28 fBitmap.allocPixels(); | 28 fBitmap.allocPixels(); |
| 29 fBitmap.eraseColor(SK_ColorTRANSPARENT); | 29 fBitmap.eraseColor(SK_ColorTRANSPARENT); |
| 30 SkSafeUnref(fCanvas); | 30 SkSafeUnref(fCanvas); |
| 31 SkSafeUnref(fDevice); | 31 SkSafeUnref(fDevice); |
| 32 fDevice = new SkDevice(fBitmap); | 32 fDevice = new SkBitmapDevice(fBitmap); |
| 33 fCanvas = new SkCanvas(fDevice); | 33 fCanvas = new SkCanvas(fDevice); |
| 34 fDebugger->resize(event->size().width(), event->size().height()); | 34 fDebugger->resize(event->size().width(), event->size().height()); |
| 35 this->update(); | 35 this->update(); |
| 36 } | 36 } |
| 37 | 37 |
| 38 void SkRasterWidget::paintEvent(QPaintEvent* event) { | 38 void SkRasterWidget::paintEvent(QPaintEvent* event) { |
| 39 if (!this->isHidden()) { | 39 if (!this->isHidden()) { |
| 40 fDebugger->draw(fCanvas); | 40 fDebugger->draw(fCanvas); |
| 41 QPainter painter(this); | 41 QPainter painter(this); |
| 42 QStyleOption opt; | 42 QStyleOption opt; |
| 43 opt.init(this); | 43 opt.init(this); |
| 44 | 44 |
| 45 style()->drawPrimitive(QStyle::PE_Widget, &opt, &painter, this); | 45 style()->drawPrimitive(QStyle::PE_Widget, &opt, &painter, this); |
| 46 | 46 |
| 47 QPoint origin(0,0); | 47 QPoint origin(0,0); |
| 48 QImage image((uchar *)fBitmap.getPixels(), fBitmap.width(), | 48 QImage image((uchar *)fBitmap.getPixels(), fBitmap.width(), |
| 49 fBitmap.height(), QImage::Format_ARGB32_Premultiplied); | 49 fBitmap.height(), QImage::Format_ARGB32_Premultiplied); |
| 50 | 50 |
| 51 #if SK_R32_SHIFT == 0 | 51 #if SK_R32_SHIFT == 0 |
| 52 painter.drawImage(origin, image.rgbSwapped()); | 52 painter.drawImage(origin, image.rgbSwapped()); |
| 53 #else | 53 #else |
| 54 painter.drawImage(origin, image); | 54 painter.drawImage(origin, image); |
| 55 #endif | 55 #endif |
| 56 painter.end(); | 56 painter.end(); |
| 57 emit drawComplete(); | 57 emit drawComplete(); |
| 58 } | 58 } |
| 59 } | 59 } |
| OLD | NEW |