info.txt 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. About
  2. -----
  3. This application is meant to be an example on how to show OpenGL ES content on top of camera viewfinder
  4. in a Symbian^3 device. Profiling graphics resource (GPU memory) usage is also added as an add-on feature.
  5. The application consists of 3 basic containers which are used to show the different features.
  6. Currently all 3 containers are either visible or invisible at the same time. Visibility can be
  7. controlled using left softkey (start/stop). Containers can be shown separately but logic for showing
  8. and hiding different containers needs to be added to the application.
  9. When all containers are visible the content from bottom to top in that case is:
  10. 1) Viewfinder - shows camera viewfinder.
  11. 2) OpenGL - shows animated OpenGL scene on top of viewfinder. Purely an example on how
  12. transparency and animation can work with camera viewfinder. Cube animation code is copied
  13. almost as-is from Forum Nokia "Simple Cube" example [1].
  14. 3) Info - shows the amount of free graphics memory on top of viewfinder and OpenGL content. This should give you
  15. an idea on how much graphics memory is left for OpenGL textures and other resources. It is recommended to leave at
  16. least 1MB of memory free for system use. The value is updated once a second.
  17. Implementation details
  18. ----------------------
  19. - Camera needs to be prepared in video mode to save some resources for e.g. OpenGL texture use.
  20. This also enables the use of 16:9 aspect ratio for viewfinder, giving the opportunity to use full
  21. screen (640x360) viewfinder.
  22. - OpenGL window has to be separately set transparent using native API.
  23. - GPU memory profiling data is provided as an example. The values could be used in real use case
  24. e.g. for releasing cached resources in case of low memory.
  25. Dependencies:
  26. -------------
  27. - CAlfCompositionSource class is needed for enabling transparency for the OpenGL surface.
  28. This is not a public API normally provided with the SDKs. One option to get hands on the API would be
  29. getting the sources from Symbian Foundation repository and compiling the needed classes in local environment.
  30. - In this project we are exporting needed headers and libraries from project's exported folder to proper place
  31. in the environment before compiling.
  32. - MCameraUseCaseHint interface is used for hinting CCamera our use case before reserving camera.
  33. This helps to speed up camera startup and also keeps resource usage during startup to the minimum.
  34. Links
  35. -----
  36. [1] | Simple Cube example | http://library.forum.nokia.com/index.jsp?topic=/S60_5th_Edition_Cpp_Developers_Library/GUID-441D327D-D737-42A2-BCEA-FE89FBCA2F35/OpenGLEx/SimpleCube/doc/index.html