summaryrefslogtreecommitdiffstats
path: root/doc/html/qdirectpainter.html
blob: c4eea9dd925f7b94210e37f39062c85fa158b569 (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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- /home/espenr/tmp/qt-3.3.8-espenr-2499/qt-x11-free-3.3.8/src/kernel/qdirectpainter_qws.cpp:72 -->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>QDirectPainter Class</title>
<style type="text/css"><!--
fn { margin-left: 1cm; text-indent: -1cm; }
a:link { color: #004faf; text-decoration: none }
a:visited { color: #672967; text-decoration: none }
body { background: #ffffff; color: black; }
--></style>
</head>
<body>

<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr bgcolor="#E5E5E5">
<td valign=center>
 <a href="index.html">
<font color="#004faf">Home</font></a>
 | <a href="classes.html">
<font color="#004faf">All&nbsp;Classes</font></a>
 | <a href="mainclasses.html">
<font color="#004faf">Main&nbsp;Classes</font></a>
 | <a href="annotated.html">
<font color="#004faf">Annotated</font></a>
 | <a href="groups.html">
<font color="#004faf">Grouped&nbsp;Classes</font></a>
 | <a href="functions.html">
<font color="#004faf">Functions</font></a>
</td>
<td align="right" valign="center"><img src="logo32.png" align="right" width="64" height="32" border="0"></td></tr></table><h1 align=center>QDirectPainter Class Reference</h1>

<p>The QDirectPainter class provides direct access to the video hardware.
<a href="#details">More...</a>
<p><tt>#include &lt;<a href="qdirectpainter_qws-h.html">qdirectpainter_qws.h</a>&gt;</tt>
<p>Inherits <a href="qpainter.html">QPainter</a>.
<p><a href="qdirectpainter-members.html">List of all member functions.</a>
<h2>Public Members</h2>
<ul>
<li class=fn><a href="#QDirectPainter"><b>QDirectPainter</b></a> ( const&nbsp;QWidget&nbsp;*&nbsp;w )</li>
<li class=fn><a href="#~QDirectPainter"><b>~QDirectPainter</b></a> ()</li>
<li class=fn>uchar * <a href="#frameBuffer"><b>frameBuffer</b></a> ()</li>
<li class=fn>int <a href="#lineStep"><b>lineStep</b></a> ()</li>
<li class=fn>int <a href="#transformOrientation"><b>transformOrientation</b></a> ()</li>
<li class=fn>int <a href="#numRects"><b>numRects</b></a> () const</li>
<li class=fn>const QRect &amp; <a href="#rect"><b>rect</b></a> ( int&nbsp;i ) const</li>
<li class=fn>QRegion <a href="#region"><b>region</b></a> () const</li>
<li class=fn>int <a href="#depth"><b>depth</b></a> () const</li>
<li class=fn>int <a href="#width"><b>width</b></a> () const</li>
<li class=fn>int <a href="#height"><b>height</b></a> () const</li>
<li class=fn>int <a href="#xOffset"><b>xOffset</b></a> () const</li>
<li class=fn>int <a href="#yOffset"><b>yOffset</b></a> () const</li>
<li class=fn>QPoint <a href="#offset"><b>offset</b></a> () const</li>
<li class=fn>QSize <a href="#size"><b>size</b></a> () const</li>
<li class=fn>void <a href="#setAreaChanged"><b>setAreaChanged</b></a> ( const&nbsp;QRect&nbsp;&amp;&nbsp;r )</li>
</ul>
<hr><a name="details"></a><h2>Detailed Description</h2>


The QDirectPainter class provides direct access to the video hardware.
<p> 
<p> Only available in Qt/Embedded.
<p> When the hardware is known and well defined, as is often the case
with software for embedded devices, it may be useful to manipulate
the underlying video hardware directly. In order to do this in a
way that is co-operative with other applications, you must lock
the video hardware for exclusive use for a small time while you
write to it, and you must know the clipping region which is
allocated to a widget.
<p> QDirectPainter provides this functionality.
<p> In the simplest case, you make a QDirectPainter on a widget and
then, observing the clip region, perform some platform-specific
operation. For example:
<pre>
        void MyWidget::updatePlatformGraphics()
        {
            QDirectPainter dp( this );
            for ( int i = 0; i &lt; dp.numRects; i++ ) {
                const <a href="qrect.html">QRect</a>&amp; clip = dp.<a href="#rect">rect</a>(i);
                ... // platform specific operation
            }
        }
    </pre>
 
<p> The platform-specific code has access to the display, but should
only modify graphics in the rectangles specified by <a href="#numRects">numRects</a>() and
<a href="#rect">rect</a>(). Note that these rectangles are relative to the entire
display.
<p> The <a href="#offset">offset</a>() function returns the position of the widget relative
to the entire display, allowing you to offset platform-specific
operations appropriately. The <a href="#xOffset">xOffset</a>() and <a href="#yOffset">yOffset</a>() functions
merely return the component values of offset().
<p> For simple frame-buffer hardware, the <a href="#frameBuffer">frameBuffer</a>(), <a href="#lineStep">lineStep</a>(),
and <a href="#depth">depth</a>() functions provide basic access, though some hardware
configurations are insufficiently specified by such simple
parameters.
<p> Note that while a QDirectPainter exists, the entire Qt/Embedded
window system is locked from use by other applications. Always
construct the QDirectPainter as an auto (stack) variable, and be
very careful to write robust and stable code within its scope.
<p>See also <a href="graphics.html">Graphics Classes</a>.

<hr><h2>Member Function Documentation</h2>
<h3 class=fn><a name="QDirectPainter"></a>QDirectPainter::QDirectPainter ( const&nbsp;<a href="qwidget.html">QWidget</a>&nbsp;*&nbsp;w )
</h3>
Construct a direct painter on <em>w</em>. The display is locked and the
mouse cursor is hidden if it is above <em>w</em>.

<h3 class=fn><a name="~QDirectPainter"></a>QDirectPainter::~QDirectPainter ()
</h3>
Destroys the direct painter. The mouse cursor is revealed if
necessary and the display is unlocked.

<h3 class=fn>int <a name="depth"></a>QDirectPainter::depth () const
</h3>
Returns the bit-depth of the display.

<h3 class=fn>uchar * <a name="frameBuffer"></a>QDirectPainter::frameBuffer ()
</h3>
Returns a pointer to the framebuffer memory if available.

<h3 class=fn>int <a name="height"></a>QDirectPainter::height () const
</h3>
Returns the height of the widget drawn upon.

<h3 class=fn>int <a name="lineStep"></a>QDirectPainter::lineStep ()
</h3>
Returns the spacing in bytes from one framebuffer line to the
next.

<h3 class=fn>int <a name="numRects"></a>QDirectPainter::numRects () const
</h3>
Returns the number of rectangles in the drawable region.
<p> <p>See also <a href="#rect">rect</a>() and <a href="#region">region</a>().

<h3 class=fn><a href="qpoint.html">QPoint</a> <a name="offset"></a>QDirectPainter::offset () const
</h3>
Returns the position of the widget relative to the entire display.

<h3 class=fn>const&nbsp;<a href="qrect.html">QRect</a>&nbsp;&amp; <a name="rect"></a>QDirectPainter::rect ( int&nbsp;i ) const
</h3>
Returns a reference to rectangle <em>i</em> of the drawable region.
Valid values for <em>i</em> are 0..<a href="#numRects">numRects</a>()-1.
<p> <p>See also <a href="#region">region</a>().

<h3 class=fn><a href="qregion.html">QRegion</a> <a name="region"></a>QDirectPainter::region () const
</h3>
Returns the region of the framebuffer which represents the exposed
area of the widget being painted on. Note that this may be a sub-area of
the clip region, because of child widgets and overlapping cousin widgets.
<p> <p>See also <a href="#numRects">numRects</a>() and <a href="#rect">rect</a>().

<h3 class=fn>void <a name="setAreaChanged"></a>QDirectPainter::setAreaChanged ( const&nbsp;<a href="qrect.html">QRect</a>&nbsp;&amp;&nbsp;r )
</h3>
Sets the area changed by the transaction to <em>r</em>. By default, the
entire widget is assumed to have changed. The area changed is only
used by some graphics drivers, so often calling this function for
a smaller area will make no difference to performance.

<h3 class=fn><a href="qsize.html">QSize</a> <a name="size"></a>QDirectPainter::size () const
</h3>
Returns the size of the widget drawn upon.
<p> <p>See also <a href="#width">width</a>() and <a href="#height">height</a>().

<h3 class=fn>int <a name="transformOrientation"></a>QDirectPainter::transformOrientation ()
</h3>
Returns a number that signifies the orientation of the
framebuffer.
<center><table cellpadding="4" cellspacing="2" border="0">
<tr bgcolor="#f0f0f0"> <td valign="top" colspan="1" rowspan="1"> 0 <td valign="top" colspan="1" rowspan="1"> no rotation
<tr bgcolor="#d0d0d0"> <td valign="top" colspan="1" rowspan="1"> 1 <td valign="top" colspan="1" rowspan="1"> 90 degrees rotation
<tr bgcolor="#f0f0f0"> <td valign="top" colspan="1" rowspan="1"> 2 <td valign="top" colspan="1" rowspan="1"> 180 degrees rotation
<tr bgcolor="#d0d0d0"> <td valign="top" colspan="1" rowspan="1"> 3 <td valign="top" colspan="1" rowspan="1"> 270 degrees rotation
</table></center>

<h3 class=fn>int <a name="width"></a>QDirectPainter::width () const
</h3>
Returns the width of the widget drawn upon.

<h3 class=fn>int <a name="xOffset"></a>QDirectPainter::xOffset () const
</h3>
Returns the X-position of the widget relative to the entire
display.

<h3 class=fn>int <a name="yOffset"></a>QDirectPainter::yOffset () const
</h3>
Returns the Y-position of the widget relative to the entire
display.

<!-- eof -->
<hr><p>
This file is part of the <a href="index.html">Qt toolkit</a>.
Copyright &copy; 1995-2007
<a href="http://www.trolltech.com/">Trolltech</a>. All Rights Reserved.<p><address><hr><div align=center>
<table width=100% cellspacing=0 border=0><tr>
<td>Copyright &copy; 2007
<a href="troll.html">Trolltech</a><td align=center><a href="trademarks.html">Trademarks</a>
<td align=right><div align=right>Qt 3.3.8</div>
</table></div></address></body>
</html>