RBackedUpWindow Class Reference

class RBackedUpWindow : public RDrawableWindow

Client-side handle to a drawable window with a backup bitmap.

A backed-up window is associated with a backup bitmap which retains the contents of the window. When an area of the window is invalidated, the window server uses the bitmap directly to update the window without requiring an application redraw. The backup bitmap is owned by the font and bitmap server and resides on the font and bitmap server's shared heap, which is accessible to all client programs: functions are provided to allow the client application to access this bitmap directly and perform updates to the window under application control.

Public Member Functions
RBackedUpWindow()
RBackedUpWindow(RWsSession &)
IMPORT_C TIntBitmapHandle()
IMPORT_C TIntConstruct(const RWindowTreeNode &, TDisplayMode, TUint32)
IMPORT_C voidMaintainBackup()
IMPORT_C voidUpdateBackupBitmap()
IMPORT_C voidUpdateScreen()
IMPORT_C voidUpdateScreen(const TRegion &)
Inherited Functions
MWsClientClass::AddToBitmapArray(const TInt)const
MWsClientClass::AsyncRequest(TRequestStatus &,TUint)const
MWsClientClass::CachedWindowSize(TSize &)const
MWsClientClass::DestroyWindowNativeSizeCacheEntry()
MWsClientClass::DestroyWindowSizeCacheEntry()
MWsClientClass::EnableWindowNativeSizeCacheL()
MWsClientClass::MWsClientClass()
MWsClientClass::MWsClientClass(RWsBuffer *)
MWsClientClass::MarkWindowSizeCacheDirty()
MWsClientClass::RefreshWindowSizeCache(const TSize &)const
MWsClientClass::SetWindowNativeSize(const TSize &)const
MWsClientClass::WindowNativeSize(TSize &)const
MWsClientClass::WindowNativeSizeCacheEnabled()const
MWsClientClass::WindowSizeCacheEnabled()const
MWsClientClass::Write(TUint)const
MWsClientClass::Write(const TAny *,TInt,TUint)const
MWsClientClass::Write(const TAny *,TInt,const TAny *,TInt,TUint)const
MWsClientClass::WriteInt(TInt,TUint)const
MWsClientClass::WritePoint(const TPoint &,TUint)const
MWsClientClass::WriteRect(const TRect &,TUint)const
MWsClientClass::WriteReply(TUint,const TIpcArgs *)const
MWsClientClass::WriteReply(const TAny *,TInt,TUint,const TIpcArgs *)const
MWsClientClass::WriteReply(const TAny *,TInt,const TAny *,TInt,TUint,const TIpcArgs *)const
MWsClientClass::WriteReplyByProvidingRemoteReadAccess(const TAny *,TInt,const TReadDescriptorType &,TUint)const
MWsClientClass::WriteReplyInt(TInt,TUint,const TIpcArgs *)const
MWsClientClass::WriteReplyIntP(TInt,const TWriteDescriptorType &,TUint)const
MWsClientClass::WriteReplyP(const TAny *,TInt,const TAny *,TInt,const TWriteDescriptorType &,TUint)const
MWsClientClass::WriteReplyP(const TAny *,TInt,const TWriteDescriptorType &,TUint)const
MWsClientClass::WriteReplyP(const TWriteDescriptorType &,TUint)const
MWsClientClass::WriteSize(const TSize &,TUint)const
MWsClientClass::WsHandle()const
RDrawableWindow::GetDrawRect()const
RDrawableWindow::RDrawableWindow()
RDrawableWindow::RDrawableWindow(RWsSession &)
RDrawableWindow::Scroll(const TPoint &)
RDrawableWindow::Scroll(const TPoint &,const TRect &)
RDrawableWindow::Scroll(const TRect &,const TPoint &)
RDrawableWindow::Scroll(const TRect &,const TPoint &,const TRect &)
RDrawableWindow::SetDrawRect(const TRect &)
RWindowBase::AbsPosition()const
RWindowBase::Activate()
RWindowBase::AddKeyRect(const TRect &,TInt,TBool)
RWindowBase::AllocPointerMoveBuffer(TInt,TUint)
RWindowBase::CancelPointerRepeatEventRequest()
RWindowBase::CancelPointerRepeatEventRequest(const TUint8)
RWindowBase::ClaimPointerGrab(TBool)
RWindowBase::ClaimPointerGrab(const TUint8,const TBool)
RWindowBase::DisablePointerMoveBuffer()
RWindowBase::DiscardPointerMoveBuffer()
RWindowBase::DisplayMode()const
RWindowBase::EnableAdvancedPointers()
RWindowBase::EnableBackup(TUint)
RWindowBase::EnablePointerMoveBuffer()
RWindowBase::FadeBehind(TBool)
RWindowBase::FixNativeOrientation()
RWindowBase::FreePointerMoveBuffer()
RWindowBase::GetBackgroundSurface(TSurfaceConfiguration &)const
RWindowBase::GetPointerCapturePriority()const
RWindowBase::InquireOffset(const RWindowTreeNode &)const
RWindowBase::IsFaded()const
RWindowBase::IsNonFading()const
RWindowBase::KeyColor()const
RWindowBase::MoveToGroup(TInt)
RWindowBase::PasswordWindow(TPasswordMode)
RWindowBase::PointerFilter(TUint32,TUint32)
RWindowBase::Position()const
RWindowBase::RWindowBase()
RWindowBase::RWindowBase(RWsSession &)
RWindowBase::RemoveAllKeyRects()
RWindowBase::RemoveBackgroundSurface(TBool)
RWindowBase::RequestPointerRepeatEvent(TTimeIntervalMicroSeconds32,const TRect &)
RWindowBase::RequestPointerRepeatEvent(TTimeIntervalMicroSeconds32,const TRect &,const TUint8)
RWindowBase::RetrievePointerMoveBuffer(TDes8 &)const
RWindowBase::SetBackgroundSurface(const TSurfaceConfiguration &,TBool)
RWindowBase::SetBackgroundSurface(const TSurfaceId &)
RWindowBase::SetCornerType(TCornerType,TInt)
RWindowBase::SetExtentErr(const TPoint &,const TSize &)
RWindowBase::SetPointerCapture(TInt)
RWindowBase::SetPointerCapturePriority(TInt)
RWindowBase::SetPointerGrab(TBool)
RWindowBase::SetPosition(const TPoint &)
RWindowBase::SetRequiredDisplayMode(TDisplayMode)
RWindowBase::SetShadowDisabled(TBool)
RWindowBase::SetShadowHeight(TInt)
RWindowBase::SetShape(const TRegion &)
RWindowBase::SetSizeErr(const TSize &)
RWindowBase::SetSurfaceTransparency(TBool)
RWindowBase::SetVisible(TBool)
RWindowBase::Size()const
RWindowBase::SizeForEgl()const
RWindowBase::construct(const RWindowTreeNode &,TUint32,TInt,TDisplayMode)
RWindowTreeNode::Child()const
RWindowTreeNode::ClearPointerCursor()
RWindowTreeNode::ClientHandle()const
RWindowTreeNode::Close()
RWindowTreeNode::Destroy()
RWindowTreeNode::DisableErrorMessages()
RWindowTreeNode::DisableFocusChangeEvents()
RWindowTreeNode::DisableGroupChangeEvents()
RWindowTreeNode::DisableGroupListChangeEvents()
RWindowTreeNode::DisableModifierChangedEvents()
RWindowTreeNode::DisableOnEvents()
RWindowTreeNode::DisableVisibilityChangeEvents()
RWindowTreeNode::EnableErrorMessages(TEventControl)
RWindowTreeNode::EnableFocusChangeEvents()
RWindowTreeNode::EnableGroupChangeEvents()
RWindowTreeNode::EnableGroupListChangeEvents()
RWindowTreeNode::EnableModifierChangedEvents(TUint,TEventControl)
RWindowTreeNode::EnableOnEvents(TEventControl)
RWindowTreeNode::EnableVisibilityChangeEvents()
RWindowTreeNode::FullOrdinalPosition()const
RWindowTreeNode::NextSibling()const
RWindowTreeNode::OrdinalPosition()const
RWindowTreeNode::OrdinalPriority()const
RWindowTreeNode::Parent()const
RWindowTreeNode::PrevSibling()const
RWindowTreeNode::RWindowTreeNode()
RWindowTreeNode::RWindowTreeNode(RWsSession &)
RWindowTreeNode::ScreenNumber()const
RWindowTreeNode::Session()const
RWindowTreeNode::SetCustomPointerCursor(const RWsPointerCursor &)
RWindowTreeNode::SetFaded(TBool,TFadeControl)
RWindowTreeNode::SetFaded(TBool,TFadeControl,TUint8,TUint8)
RWindowTreeNode::SetNonFading(TBool)
RWindowTreeNode::SetOrdinalPosition(TInt)
RWindowTreeNode::SetOrdinalPosition(TInt,TInt)
RWindowTreeNode::SetPointerCursor(TInt)
RWindowTreeNode::WindowGroupId()const
Inherited Enumerations
RWindowBase:TCaptureFlags
RWindowTreeNode:TFadeControl
Inherited Attributes
MWsClientClass::iBuffer
MWsClientClass::iWsHandle
RWindowTreeNode::__DECLARE_TEST

Constructor & Destructor Documentation

RBackedUpWindow()

IMPORT_CRBackedUpWindow()

Default C++ constructor which creates a sessionless backed-up window handle.

Handles to server-side objects must be created in a session in order to be operational; this constructor is merely a convenience to allow the handle to be stored as a data member. See RWindowTreeNode::RWindowTreeNode() for details of how the complete setup of a handle field may be deferred until the window server session is known.

RBackedUpWindow(RWsSession &)

IMPORT_CRBackedUpWindow(RWsSession &aWs)

Constructor which creates an uninitialised backed-up window handle within a session.

Parameters

RWsSession & aWsThe window server session that owns the window.

Member Functions Documentation

BitmapHandle()

IMPORT_C TIntBitmapHandle()const

Gets a handle to the backup bitmap.

This handle can then be passed to CFbsBitmap::Duplicate() to gain access to the bitmap. Once the bitmap has been obtained, it can be drawn to or read from by the application.

Notes: in most circumstances this function should be used only after MaintainBackup() has been called. Otherwise, the content of the backup bitmap will be unpredictable.

This function always causes a flush of the window server buffer.

Construct(const RWindowTreeNode &, TDisplayMode, TUint32)

IMPORT_C TIntConstruct(const RWindowTreeNode &parent,
TDisplayModeaDisplayMode,
TUint32aHandle
)

Completes the construction of a backed up window.

This method should be called after the RBackedUpWindow(RWsSession&) constructor, and before any other functions are performed on the window. It creates a window in the window server corresponding to the RBackedUpWindow object, and allocates a bitmap with which to perform the window backup.

Unlike non backed up windows, the size of a backed up window is not inherited from its parent. The window will be created with an initial size of zero, but this can be altered. The display mode must be specified because it determines the amount of memory required to store the backup bitmap.

This function always causes a flush of the window server buffer.

RWindowBase::SetSizeErr() RWindowBase::SetExtentErr() RWindow::Construct()

Parameters

const RWindowTreeNode & parentThe window's parent.
TDisplayMode aDisplayModeThe display mode for the window.
TUint32 aHandleThe client's handle for the window. See RWindow::Construct() for a description of the client handle.

MaintainBackup()

IMPORT_C voidMaintainBackup()

Tells the window server to start maintaining a backup bitmap with the entire window contents.

By default, the window only backs up the non-visible and shadowed part of the window. Calling this function makes drawing to the window much faster.

Once this function has been called, it cannot be reversed.

UpdateBackupBitmap()

IMPORT_C voidUpdateBackupBitmap()

Copies to the backup bitmap any areas of the window which are not currently stored in the bitmap.

This method does not need to be called if the server has not been instructed to maintain the backup buffer constantly

MaintainBackup()

UpdateScreen()

IMPORT_C voidUpdateScreen()

Copies the backup bitmap's image to the on-screen bitmap.

This function should be used if the application draws directly to the backup bitmap. Any changes made to the backup bitmap will not be reflected on the screen until this function is called.

UpdateScreen(const TRegion &)

IMPORT_C voidUpdateScreen(const TRegion &aRegion)

Copies a part of the backup bitmap to the on-screen bitmap.

This function behaves in the same way as UpdateScreen(), but copies only the specified region of the backup bitmap to the window on screen.

This function always causes a flush of the window server buffer.

Parameters

const TRegion & aRegionArea of the backup bitmap to copy.