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 |