diff -r 51a74ef9ed63 -r ae94777fff8f Symbian3/SDK/Source/GUID-53707903-9A88-409B-80F8-FDF7EF47ACBF.dita --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Symbian3/SDK/Source/GUID-53707903-9A88-409B-80F8-FDF7EF47ACBF.dita Fri Jun 11 12:39:03 2010 +0100 @@ -0,0 +1,102 @@ + + + + + +CoverFlow: using ScreenPlayThis example application demonstrates creating semi-transparent +UI content over OpenVG content that is rendered to a composition surface. +This is only possible when ScreenPlay is enabled. +
Download

Click on the following link to download the example: GraphicsShell.zip

Click: browse to view the example code.

The example +is located in the examples\Graphics\CoverFlow directory.

+
Description This code implements a 'coverflow' application. It uses OpenVG to +display images while semi-transparent or transparent windows and controls +are used to display overlaid content. The application does the following: +
    +
  • Creates an EGL drawing surface by calling the eglCreateWindowSurface() function.
  • +
  • Converts bitmap cover images to OpenVG images.
  • +
  • Applies OpenVG transformations on the converted OpenVG images.
  • +
  • Draws the transformed images on the EGL surface by calling the vgDrawImage() function.
  • +
  • Draws the mirror image of bitmap cover images on the surface.
  • +
  • Displays an incoming call animation and a moving ticker window +in a separate active object. These are activated when relevant key +press events are detected. It uses the invalidate and re-draw pattern +of the window server to draw the contents on the window.
  • +
The ScreenPlay graphics architecture uses a composition +engine to display multiple overlaid windows. The composition engine +takes multiple overlaid surfaces as input and creates a single screen +buffer. For more information, see Graphics Composition and The ScreenPlay +Graphics Architecture.
+
Screenshots + Basic Screenshot + + +Screenshot showing ticker and incoming call animation + + +Screenshot showing the absence of the mirror surface + +
+
Class +Summary

These are the principal classes used in this example:

    +
  • CCoverFlowAppUi
  • +
  • CEGLRendering
  • +
  • MEngine
  • +
  • CDialogBox
  • +
  • COpenVGEngine
  • +
  • CTicker
  • +
  • CLoader
  • +

+
Design +and Implementation

+UML class diagram + + +

+
Building +and running

The Symbian build +process describes how to build an application.

+
Configuration +settings for running the example on an Emulator or H4 board
    +
  1. Change the WINDOWMODE parameter to Color16MAP in epoc32\release\winscw\<udeb/urel>\z\system\data\wsini.ini (epoc32\data\z\system\data\wsini.ini on the H4 board).

  2. +
  3. The application +cannot run if ScreenPlay is disabled. If it is not already enabled, +you need to enable it. See Enabling the Graphics +Architecture Variants for more information.

  4. +
  5. (Emulator only): +Copy all .mbm (image) files from the coverflow\gfx\call directory to the epoc32\release\winscw\<udeb/urel>\z\resource\apps directory.

  6. +
  7. Performance +can be boosted significantly by switching to portrait mode, which +is the native mode for the LCD controller. To enable portrait mode, +uncomment the following line in the coverflowapp.mmp:

    // MACRO PORTRAIT_MODE
  8. +
  9. Add the following +configuration statements to the epoc32\data\epoc.ini to run the example in portrait mode.

    screenwidth 240 +screenheight 320 +fasciabitmap null.bmp +screenoffsetx 0 +screenoffsety 0
  10. +
+ + +
Running +and using the example

    +
  1. Run coverflowapp.exe.
  2. +
  3. Press the Left +or the Right arrow key to navigate through the covers.
  4. +
  5. Press the Down +arrow key to show or hide the Ticker at the bottom of the screen.
  6. +
  7. Press the Up arrow +key to show or hide the incoming call animation.
  8. +
  9. Press the Tab key +to show or hide the semi-transparent green window around the incoming +call animation.
  10. +
  11. Press the Backspace +key to show or hide mirror images of the covers.
  12. +

+ +
\ No newline at end of file