QDirectPainter

Section: Misc. Reference Manual Pages (3qt)
Updated: 2 February 2007
Index Return to Main Contents
 

NAME

QDirectPainter - Direct access to the video hardware  

SYNOPSIS

#include <qdirectpainter_qws.h>

Inherits QPainter.

 

Public Members


QDirectPainter ( const QWidget * w )

~QDirectPainter ()

uchar * frameBuffer ()

int lineStep ()

int transformOrientation ()

int numRects () const

const QRect & rect ( int i ) const

QRegion region () const

int depth () const

int width () const

int height () const

int xOffset () const

int yOffset () const

QPoint offset () const

QSize size () const

void setAreaChanged ( const QRect & r )
 

DESCRIPTION

The QDirectPainter class provides direct access to the video hardware.

Only available in Qt/Embedded.

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.

QDirectPainter provides this functionality.

In the simplest case, you make a QDirectPainter on a widget and then, observing the clip region, perform some platform-specific operation. For example:


void MyWidget::updatePlatformGraphics()
{
QDirectPainter dp( this );
for ( int i = 0; i < dp.numRects; i++ ) {
const QRect& clip = dp.rect(i);
... // platform specific operation
}
}

The platform-specific code has access to the display, but should only modify graphics in the rectangles specified by numRects() and rect(). Note that these rectangles are relative to the entire display.

The offset() function returns the position of the widget relative to the entire display, allowing you to offset platform-specific operations appropriately. The xOffset() and yOffset() functions merely return the component values of offset().

For simple frame-buffer hardware, the frameBuffer(), lineStep(), and depth() functions provide basic access, though some hardware configurations are insufficiently specified by such simple parameters.

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.

See also Graphics Classes.  

MEMBER FUNCTION DOCUMENTATION

 

QDirectPainter::QDirectPainter ( const QWidget * w )

Construct a direct painter on w. The display is locked and the mouse cursor is hidden if it is above w.  

QDirectPainter::~QDirectPainter ()

Destroys the direct painter. The mouse cursor is revealed if necessary and the display is unlocked.  

int QDirectPainter::depth () const

Returns the bit-depth of the display.  

uchar * QDirectPainter::frameBuffer ()

Returns a pointer to the framebuffer memory if available.  

int QDirectPainter::height