aboutsummaryrefslogtreecommitdiffhomepage
path: root/debugger/QT/SkRasterWidget.h
blob: af65792e77f153289acc5772aaf3fc5c37963936 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
/*
 * SkRasterWidget.h
 *
 *  Created on: Jul 28, 2012
 *      Author: chudy
 */


#ifndef SKRASTERWIDGET_H_
#define SKRASTERWIDGET_H_

#include "SkGpuDevice.h"
#include "SkDevice.h"
#include "SkDebugCanvas.h"

#include <QApplication>
#include <QtGui>
#include <QWidget>

class  SkRasterWidget : public QWidget {

public:
    SkRasterWidget(QWidget* parent = NULL);

    ~SkRasterWidget();

    void drawTo(int index) {
        fIndex = index;
        this->update();
    }

    void setDebugCanvas(SkDebugCanvas* debugCanvas) {
        fDebugCanvas = debugCanvas;
        fIndex = debugCanvas->getSize();
        this->update();
    }

    int getBitmapHeight() {
        return fBitmap.height();
    }

    int getBitmapWidth() {
        return fBitmap.width();
    }

    const SkMatrix& getCurrentMatrix() {
        return fMatrix;
    }

    const SkIRect& getCurrentClip() {
        return fClip;
    }

    void setTranslate(SkIPoint transform) {
        fTransform = transform;
    }

    void setScale(float scale) {
        fScaleFactor = scale;
    }

protected:
    void paintEvent(QPaintEvent* event);

    void resizeEvent(QResizeEvent* event);

private:
    SkBitmap fBitmap;
    SkDebugCanvas* fDebugCanvas;
    SkDevice* fDevice;

    SkMatrix fMatrix;
    SkIRect fClip;

    int fIndex;
    SkIPoint fTransform;
    float fScaleFactor;
};

#endif /* SKRASTERWIDGET_H_ */