返回介绍

QScreen Class

发布于 2019-10-04 15:02:19 字数 15946 浏览 1290 评论 0 收藏 0

The QScreen class and its descendants manage the framebuffer and palette. More...

#include <qgfx_qws.h>

List of all member functions.

Public Members

  • QScreen ( intdisplay_id )
  • virtual ~QScreen ()
  • virtual bool initDevice () = 0
  • virtual bool connect ( constQString&displaySpec ) = 0
  • virtual void disconnect () = 0
  • virtual int initCursor ( void*end_of_location, boolinit = FALSE )
  • virtual void shutdownDevice ()
  • virtual void setMode ( int, int, int ) = 0
  • virtual bool supportsDepth ( intd ) const
  • virtual QGfx * createGfx ( unsignedchar*bytes, intw, inth, intd, intlinestep )
  • virtual QGfx * screenGfx ()
  • virtual void save ()
  • virtual void restore ()
  • virtual void blank ( boolon )
  • virtual int pixmapOffsetAlignment ()
  • virtual int pixmapLinestepAlignment ()
  • virtual bool onCard ( unsignedchar*p ) const
  • virtual bool onCard ( unsignedchar*p, ulong&offset ) const
  • virtual void set ( unsigned int, unsigned int, unsigned int, unsigned int )
  • virtual int alloc ( unsignedintr, unsignedintg, unsignedintb )
  • int width () const
  • int height () const
  • int depth () const
  • virtual int pixmapDepth () const
  • int pixelType () const
  • int linestep () const
  • int deviceWidth () const
  • int deviceHeight () const
  • uchar * base () const
  • virtual uchar * cache ( int, int )
  • virtual void uncache ( uchar * )
  • int screenSize () const
  • int totalSize () const
  • QRgb * clut ()
  • int numCols ()
  • virtual QSize mapToDevice ( constQSize&s ) const
  • virtual QSize mapFromDevice ( constQSize&s ) const
  • virtual QPoint mapToDevice ( const QPoint &, const QSize & ) const
  • virtual QPoint mapFromDevice ( const QPoint &, const QSize & ) const
  • virtual QRect mapToDevice ( constQRect&r, const QSize & ) const
  • virtual QRect mapFromDevice ( constQRect&r, const QSize & ) const
  • virtual QImage mapToDevice ( constQImage&i ) const
  • virtual QImage mapFromDevice ( constQImage&i ) const
  • virtual QRegion mapToDevice ( constQRegion&r, const QSize & ) const
  • virtual QRegion mapFromDevice ( constQRegion&r, const QSize & ) const
  • virtual int transformOrientation () const
  • virtual bool isTransformed () const
  • virtual bool isInterlaced () const
  • virtual void setDirty ( const QRect & )
  • int * opType ()
  • int * lastOp ()

Detailed Description

The QScreen class and its descendants manage the framebuffer and palette.

QScreens act as factories for the screen cursor and QGfx's. QLinuxFbScreen manages a Linux framebuffer; accelerated drivers subclass QLinuxFbScreen. There can only be one screen in a Qt/Embedded application.

See also Qt/Embedded.


Member Function Documentation

QScreen::QScreen ( intdisplay_id )

Create a screen; the display_id is the number of the Qt/Embedded server to connect to.

QScreen::~QScreen () [virtual]

Destroys a QScreen

int QScreen::alloc ( unsignedintr, unsignedintg, unsignedintb ) [virtual]

Given an RGB value r g b, return an index which is the closest match to it in the screen's palette. Used in paletted modes only.

uchar * QScreen::base () const

Returns a pointer to the start of the framebuffer.

void QScreen::blank ( boolon ) [virtual]

If on is true, blank the screen. Otherwise unblank it.

uchar * QScreen::cache ( int, int ) [virtual]

This function is used to store pixmaps in graphics memory for the use of the accelerated drivers. See QLinuxFbScreen (where the cacheing is implemented) for more information.

QRgb * QScreen::clut ()

Returns the screen's color lookup table (color palette). This is only valid in paletted modes (8bpp and lower).

bool QScreen::connect ( constQString&displaySpec ) [pure virtual]

This function is called by every Qt/Embedded application on startup. It maps in the framebuffer and in the accelerated drivers the graphics card control registers. displaySpec has the following syntax:

[gfx driver][:driver specific options][:display number]

for example if you want to use the mach64 driver on fb1 as display 2:

Mach64:/dev/fb1:2

displaySpec is passed in via the QWS_DISPLAY environment variable or the -display command line parameter.

QGfx * QScreen::createGfx ( unsignedchar*bytes, intw, inth, intd, intlinestep ) [virtual]

Creates a gfx on an arbitrary buffer bytes, width w and height h in pixels, depth d and linestep (length in bytes of each line in the buffer). Accelerated drivers can check to see if bytes points into graphics memory and create an accelerated Gfx.

int QScreen::depth () const

Gives the depth in bits per pixel of the framebuffer. This is the number of bits each pixel takes up rather than the number of significant bits, so 24bpp and 32bpp express the same range of colors (8 bits of red, green and blue)

int QScreen::deviceHeight () const

Gives the full height of the framebuffer device, as opposed to the height which Qt/Embedded will actually use. These can differ if the display is centered within the framebuffer.

int QScreen::deviceWidth () const

Gives the full width of the framebuffer device, as opposed to the width which Qt/Embedded will actually use. These can differ if the display is centered within the framebuffer.

void QScreen::disconnect () [pure virtual]

This function is called by every Qt/Embedded application just before exitting; it's normally used to unmap the framebuffer.

int QScreen::height () const

Gives the height in pixels of the framebuffer.

int QScreen::initCursor ( void*end_of_location, boolinit = FALSE ) [virtual]

This is used to initialize the software cursor - end_of_location points to the address after the area where the cursor image can be stored. init is true for the first application this method is called from (the Qt/Embedded server), false otherwise.

bool QScreen::initDevice () [pure virtual]

This function is called by the Qt/Embedded server when initializing the framebuffer. Accelerated drivers use it to set up the graphics card.

bool QScreen::isInterlaced () const [virtual]

Returns TRUE if the display is interlaced (for instance a television screen); otherwise returns FALSE. If TRUE, drawing is altered to look better on such displays.

bool QScreen::isTransformed () const [virtual]

Returns TRUE if the screen is transformed (for instance, rotated 90 degrees); otherwise returns FALSE. QScreen's version always returns FALSE.

int * QScreen::lastOp ()

Returns the screens last operation.

int QScreen::linestep () const

Returns the length in bytes of each scanline of the framebuffer.

QSize QScreen::mapFromDevice ( constQSize&s ) const [virtual]

Map a framebuffer coordinate to the coordinate space used by the application. Used by the rotated driver; the QScreen implementation simply returns s.

QPoint QScreen::mapFromDevice ( constQPoint&, constQSize& ) const [virtual]

This is an overloaded member function, provided for convenience. It behaves essentially like the above function.

Map a framebuffer coordinate to the coordinate space used by the application. Used by the rotated driver; the QScreen implementation simply returns the point.

QRect QScreen::mapFromDevice ( constQRect&r, constQSize& ) const [virtual]

This is an overloaded member function, provided for convenience. It behaves essentially like the above function.

Map a framebuffer coordinate to the coordinate space used by the application. Used by the rotated driver; the QScreen implementation simply returns r.

QImage QScreen::mapFromDevice ( constQImage&i ) const [virtual]

This is an overloaded member function, provided for convenience. It behaves essentially like the above function.

Transforms an image so that it matches the application coordinate space (e.g. rotating it 90 degrees counter-clockwise). The QScreen implementation simply returns i.

QRegion QScreen::mapFromDevice ( constQRegion&r, constQSize& ) const [virtual]

This is an overloaded member function, provided for convenience. It behaves essentially like the above function.

Transforms a region so that it matches the application coordinate space (e.g. rotating it 90 degrees counter-clockwise). The QScreen implementation simply returns r.

QSize QScreen::mapToDevice ( constQSize&s ) const [virtual]

Map a user coordinate to the one to actually draw. Used by the rotated driver; the QScreen implementation simply returns s.

QPoint QScreen::mapToDevice ( constQPoint&, constQSize& ) const [virtual]

This is an overloaded member function, provided for convenience. It behaves essentially like the above function.

Map a user coordinate to the one to actually draw. Used by the rotated driver; the QScreen implementation simply returns the point passed in.

QRect QScreen::mapToDevice ( constQRect&r, constQSize& ) const [virtual]

This is an overloaded member function, provided for convenience. It behaves essentially like the above function.

Map a user coordinate to the one to actually draw. Used by the rotated driver; the QScreen implementation simply returns r.

QImage QScreen::mapToDevice ( constQImage&i ) const [virtual]

This is an overloaded member function, provided for convenience. It behaves essentially like the above function.

Transforms an image so that it fits the device coordinate space (e.g. rotating it 90 degrees clockwise). The QScreen implementation simply returns i.

QRegion QScreen::mapToDevice ( constQRegion&r, constQSize& ) const [virtual]

This is an overloaded member function, provided for convenience. It behaves essentially like the above function.

Transforms a region so that it fits the device coordinate space (e.g. rotating it 90 degrees clockwise). The QScreen implementation simply returns r.

int QScreen::numCols ()

Returns the number of entries in the color table returned by clut().

bool QScreen::onCard ( unsignedchar*p ) const [virtual]

Returns true if the buffer pointed to by p is within graphics card memory, false if it's in main RAM.

bool QScreen::onCard ( unsignedchar*p, ulong&offset ) const [virtual]

This is an overloaded member function, provided for convenience. It behaves essentially like the above function.

This checks whether the buffer specified by p is on the card (as per the other version of onCard) and returns an offset in bytes from the start of graphics card memory in offset if it is.

int * QScreen::opType ()

Returns the screen's operation type.

int QScreen::pixelType () const

Returns an integer (taking the same values as QGfx::PixelType) that specifies the pixel storage format of the screen.

int QScreen::pixmapDepth () const [virtual]

Gives the preferred depth for pixmaps. By default this is the same as the screen depth, but for the VGA16 driver it's 8bpp.

int QScreen::pixmapLinestepAlignment () [virtual]

Returns the value in bytes to which individual scanlines of pixmaps held in graphics card memory should be aligned. This is only useful for accelerated drivers. By default the value returned is 64 but it can be overridden by individual accelerated drivers.

int QScreen::pixmapOffsetAlignment () [virtual]

Returns the value in bytes to which the start address of pixmaps held in graphics card memory should be aligned. This is only useful for accelerated drivers. By default the value returned is 64 but it can be overridden by individual accelerated drivers.

void QScreen::restore () [virtual]

Restores the state of the graphics card from a previous save()

void QScreen::save () [virtual]

Saves the state of the graphics card - used so that, for instance, the palette can be restored when switching between linux virtual consoles. Hardware QScreen descendants should save register state here if necessary if switching between virtual consoles (for example to/from X) is to be permitted.

QGfx * QScreen::screenGfx () [virtual]

Returns a QGfx (normally a QGfxRaster) initialized to point to the screen, with an origin at 0,0 and a clip region covering the whole screen.

int QScreen::screenSize () const

Returns the size in bytes of the screen. This is always located at the beginning of framebuffer memory (i.e. at base()).

void QScreen::set ( unsigned int, unsigned int, unsigned int, unsigned int ) [virtual]

Sets an entry in the color palette.

void QScreen::setDirty ( constQRect& ) [virtual]

Indicates which section of the screen has been altered. Used by the VNC and VFB displays; the QScreen version does nothing.

void QScreen::setMode ( int, int, int ) [pure virtual]

This function can be used to set the framebuffer width, height and depth. It's currently unused.

void QScreen::shutdownDevice () [virtual]

Called by the Qt/Embedded server on shutdown; never called by a Qt/Embedded client. This is intended to support graphics card specific shutdown; the unaccelerated implementation simply hides the mouse cursor.

bool QScreen::supportsDepth ( intd ) const [virtual]

Returns true if the screen supports a particular color depth d. Possible values are 1,4,8,16 and 32.

int QScreen::totalSize () const

Returns the size in bytes of available graphics card memory, including the screen. Offscreen memory is only used by the accelerated drivers.

int QScreen::transformOrientation () const [virtual]

Used by the rotated server. The QScreeen implementation returns 0.

void QScreen::uncache ( uchar * ) [virtual]

This function is called on pixmap destruction to remove them from graphics card memory.

int QScreen::width () const

Gives the width in pixels of the framebuffer.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文