This topic provides an example of flipping and rotating a surface in order to mirror the camera viewfinder during video telephony.
Variant : ScreenPlay. Target audience : Device creators.
When users use the camera at the front of their phone during video telephony, they expect their image to be mirrored like when they look in a mirror. The camera viewfinder renders its content to a graphics surface which is displayed in a window by setting it as the background surface. To mirror the viewfinder content, first flip the surface and then rotate it by 180°.
The following example code assumes that the surface already exists. Call TSurfaceConfiguration::SetFlip() to flip the surface, then call TSurfaceConfiguration::SetOrientation() to rotate the flipped surface by 180°. Finally bind the surface to the window. If necessary, set attributes such as extent to the surface configuration.
TSurfaceConfiguration config;
RWindow iWindow;
// Set the surface ID.
config.SetSurfaceId(iSurfaceId);
// Get the window size and set the extent.
const TRect windowSize(iWindow->Size());
config.SetExtent(windowSize);
// Set the flipping
config.SetFlip(ETrue);
// Rotate the flipped surface by 180°
config.SetOrientation(CFbsBitGc::EGraphicsOrientationRotated180);
// Bind the surface to the window using the configuration
iWindow.SetBackgroundSurface(config, ETrue);
Copyright ©2010 Nokia Corporation and/or its subsidiary(-ies).
All rights
reserved. Unless otherwise stated, these materials are provided under the terms of the Eclipse Public License
v1.0.