1
/****************************************************************************
3
** Copyright (C) 1992-2005 Trolltech AS. All rights reserved.
5
** This file is part of the opengl module of the Qt Toolkit.
7
** This file may be distributed under the terms of the Q Public License
8
** as defined by Trolltech AS of Norway and appearing in the file
9
** LICENSE.QPL included in the packaging of this file.
11
** This file may be distributed and/or modified under the terms of the
12
** GNU General Public License version 2 as published by the Free Software
13
** Foundation and appearing in the file LICENSE.GPL included in the
14
** packaging of this file.
16
** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for
17
** information about Qt Commercial License Agreements.
18
** See http://www.trolltech.com/qpl/ for QPL licensing information.
19
** See http://www.trolltech.com/gpl/ for GPL licensing information.
21
** Contact info@trolltech.com if any conditions of this licensing are
24
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
25
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
27
****************************************************************************/
29
#ifndef QPAINTENGINE_OPENGL_P_H
30
#define QPAINTENGINE_OPENGL_P_H
32
#include "qpaintengine.h"
34
class QOpenGLPaintEnginePrivate;
36
class QOpenGLPaintEngine : public QPaintEngine
38
Q_DECLARE_PRIVATE(QOpenGLPaintEngine)
41
~QOpenGLPaintEngine();
43
bool begin(QPaintDevice *pdev);
46
void updateState(const QPaintEngineState &state);
48
void updatePen(const QPen &pen);
49
void updateBrush(const QBrush &brush, const QPointF &pt);
50
void updateFont(const QFont &font);
51
void updateBackground(Qt::BGMode bgmode, const QBrush &bgBrush);
52
void updateMatrix(const QMatrix &matrix);
53
void updateClipRegion(const QRegion ®ion, Qt::ClipOperation op);
54
void updateRenderHints(QPainter::RenderHints hints);
56
void drawRects(const QRectF *r, int rectCount);
57
void drawLines(const QLineF *lines, int lineCount);
58
void drawPoints(const QPointF *p, int pointCount);
60
void drawPixmap(const QRectF &r, const QPixmap &pm, const QRectF &sr);
62
void drawPath(const QPainterPath &path);
63
void drawPolygon(const QPointF *points, int pointCount, PolygonDrawMode mode);
64
inline void drawPolygon(const QPoint *points, int pointCount, PolygonDrawMode mode)
65
{ QPaintEngine::drawPolygon(points, pointCount, mode); }
66
void drawTiledPixmap(const QRectF &r, const QPixmap &pixmap, const QPointF &s);
67
void drawImage(const QRectF &r, const QImage &image, const QRectF &sr,
68
Qt::ImageConversionFlags conversionFlags);
69
void drawTextItem(const QPointF &p, const QTextItem &ti);
74
Qt::HANDLE handle() const;
76
inline Type type() const { return QPaintEngine::OpenGL; }
79
void drawPolyInternal(const QPolygonF &pa, bool close = true);
80
void drawTextureRect(int tx_width, int tx_height, const QRectF &r, const QRectF &sr, GLenum target);
81
Q_DISABLE_COPY(QOpenGLPaintEngine)
84
#endif // QPAINTENGINE_OPENGL_P_H