diff options
author | 2012-07-28 23:26:10 +0000 | |
---|---|---|
committer | 2012-07-28 23:26:10 +0000 | |
commit | 38b08ce020f451a66263110b32e70f5022df4f83 (patch) | |
tree | 9aa894b799659b7a09627a2adbbcb1e50866a934 /debugger/QT/SkRasterWidget.cpp | |
parent | 0ab03397afd3420ea8fd9323d78ddd562a7b7bdf (diff) |
Added missing files to fix build.
TBR
Review URL: https://codereview.appspot.com/6455058
git-svn-id: http://skia.googlecode.com/svn/trunk@4822 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'debugger/QT/SkRasterWidget.cpp')
-rw-r--r-- | debugger/QT/SkRasterWidget.cpp | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/debugger/QT/SkRasterWidget.cpp b/debugger/QT/SkRasterWidget.cpp new file mode 100644 index 0000000000..0549649543 --- /dev/null +++ b/debugger/QT/SkRasterWidget.cpp @@ -0,0 +1,64 @@ + +/* + * Copyright 2012 Google Inc. + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + + +#include "SkRasterWidget.h" + +SkRasterWidget::SkRasterWidget(QWidget* parent) : QWidget(parent) { + fBitmap.setConfig(SkBitmap::kARGB_8888_Config, 800, 800); + fBitmap.allocPixels(); + fBitmap.eraseColor(0); + fTransform.set(0,0); + fScaleFactor = 1.0; + fIndex = 0; + + fDebugCanvas = new SkDebugCanvas(); + this->setStyleSheet("QWidget {background-color: white; border: 1px solid #cccccc;}"); +} + +SkRasterWidget::~SkRasterWidget() { + delete fDevice; + delete fDebugCanvas; +} + +void SkRasterWidget::resizeEvent(QResizeEvent* event) { + fBitmap.setConfig(SkBitmap::kARGB_8888_Config, event->size().width(), event->size().height()); + fBitmap.allocPixels(); + delete fDevice; + fDevice = new SkDevice(fBitmap); + fDebugCanvas->setBounds(event->size().width(), event->size().height()); + this->update(); +} + +void SkRasterWidget::paintEvent(QPaintEvent* event) { + fBitmap.eraseColor(0); + SkCanvas canvas(fDevice); + canvas.translate(fTransform.fX, fTransform.fY); + if (fScaleFactor < 0) { + canvas.scale((1.0 / -fScaleFactor), (1.0 / -fScaleFactor)); + } else if (fScaleFactor > 0) { + canvas.scale(fScaleFactor, fScaleFactor); + } + + fMatrix = canvas.getTotalMatrix(); + fClip = canvas.getTotalClip().getBounds(); + fDebugCanvas->drawTo(&canvas, fIndex+1, &fBitmap); + + QPainter painter(this); + QStyleOption opt; + opt.init(this); + + style()->drawPrimitive(QStyle::PE_Widget, &opt, &painter, this); + + QPoint origin(0,0); + QImage image((uchar *)fBitmap.getPixels(), fBitmap.width(), + fBitmap.height(), QImage::Format_ARGB32_Premultiplied); + + painter.drawImage(origin, image); + painter.end(); +} |