GDC 2005 - PowerPoint PPT Presentation

1 / 23
About This Presentation
Title:

GDC 2005

Description:

b) PBuffer eglCopyBuffers( target bitmap ) c) PBuffer glReadPixels( target bitmap ) d) bitmap - texture, mix with GL rendering. Performance. First devices are ... – PowerPoint PPT presentation

Number of Views:84
Avg rating:3.0/5.0
Slides: 24
Provided by: jami131
Category:
Tags: gdc | bitmap

less

Transcript and Presenter's Notes

Title: GDC 2005


1
(No Transcript)
2
  • OpenGL ES on Symbian

Presented by Jani Vaarala, Graphics Architect
3
Symbian S60
  • Symbian is a smartphone OS
  • OpenGL ES part of Symbian since 8.x
  • OpenGL ES part of S60 since 2nd ed FP2

4
First wave is SW
  • Nokia 6630, 6680, 6681, 6682, N90,
  • OpenGL ES 1.0 CM conformant
  • Also support the MIDP M3G 3D API (Java)

5
Second wave is HW based
  • Already rumors about some devices
  • From multiple manufacturers
  • Dont know which ones support Symbian native APIs
    yet

6
SDKs Support
  • http//www.forum.nokia.com
  • SDK
  • Developer forums
  • Developer notes
  • What (examples etc.)
  • Check out the SDK help from the START menu
  • Series 60 Developer Tools -gt Series 60 C SDKs
    -gt ltsdk vergt -gt SDK Help

7
Examples (in S60 SDK)
8
Symbian specific OpenGL ES info
  • Symbian programming model is different
  • Check the OpenGL ES examples in SDK to get started

9
Symbian application
DATA
EXAMPLE.APP (.DLL / .EXE)
Application
Document
Container
AppUI
VIEW
Handle Commands (Events, Keys) Handle Application
views
10
Symbian WSERV classes
  • RWindowGroup
  • Element of sorting in the window hierarchy
  • RWindow
  • One RWindowGroup may contain many
  • Created automatically for normal application
  • This is the NativeWindowType in Symbian

11
EGL Surfaces
  • Window Surface
  • On-screen, double-buffered (best performance)
  • RWindow in Symbian
  • PBuffer Surface
  • OS independent, HW owned, single-buffered
  • Pixmap Surface
  • OS dependent, OS owned, single-buffered
  • CFbsBitmap in Symbian

12
EGL initialization
  • SetExtentToWholeScreen()
  • iEglDisplay eglGetDisplay(EGL_DEFAULT_DISPLAY)
  • eglInitialize(iEglDisplay,NULL,NULL)
  • TInt bpp 32
  • if( DisplayMode() EColor64K ) bpp 16
  • EGLint attrib_list
  • EGL_BUFFER_SIZE, bpp, EGL_DEPTH_SIZE,
    15,
  • EGL_SURFACE_TYPE, EGL_WINDOW_BIT,
  • EGL_NONE

Note error checking removed (to simplify)
13
EGL initialization
  • EGLConfig config
  • TInt numOfConfigs
  • eglChooseConfig(iEglDisplay,
  • attrib_list,
  • config,
  • 1,
  • numOfConfigs)
  • iEglSurface eglCreateWindowSurface(iEglDisplay,
    config,
  • Window(),
  • NULL )

Here we only take the best matching config.
14
EGL initialization
  • iEglContext eglCreateContext( iEglDisplay,
  • config,
  • EGL_NO_CONTEXT,
  • NULL )
  • eglMakeCurrent( iEglDisplay,
  • iEglSurface,
  • iEglSurface,
  • iEglContext )
  • // OpenGL ES render calls (possibly running from
    timer)
  • eglSwapBuffers( iEglDisplay, iEglSurface )
  • if( !((iFrameNo)100) ) UserResetInactivityTi
    me()

15
EGL Termination
  • eglMakeCurrent( iEglDisplay,
  • EGL_NO_SURFACE,
  • EGL_NO_SURFACE,
  • EGL_NO_CONTEXT )
  • eglTerminate( iEglDisplay )

16
Generic info
  • Symbian supports OpenGL ES CL CM libGLES_CM.dll
    and libGLES_CL.dll
  • Series 60 supports only OpenGL ES CM Since CM is
    a superset of CL, all CL applications also
    compile on it

17
Generic info
  • FPS can be limited by display refresh
  • For benchmarks scale content to be heavy
  • 3D in emulator is currently slower than the real
    device
  • Dont measure content performance in it

18
Generic info
  • Dont install OpenGL ES DLL to system libs folder
  • May prevent other apps from getting HW
    acceleration

19
Perf. tip use fullscreen
  • Mobile phone -gt other uses
  • Track application focus

LCD transfer
MOM IS CALLING 358 69 876 7374
Memory read
MOM IS CALLING 358 69 876 7374
COMPOSITION
MOM IS CALLING 358 69 876 7374
Memory read
20
Mixing with Native rendering
  • Window surfaces may be overlays
  • No native 2D GFX interaction
  • Mix native GFX with 3D by
  • a) EGLPixmapSurface ( _if_ supported ! )
  • b) PBuffer eglCopyBuffers(lttarget bitmapgt)
  • c) PBuffer glReadPixels(lttarget bitmapgt)
  • d) bitmap -gt texture, mix with GL rendering

21
Performance
  • First devices are SW based
  • Depth tex fillrate 3-4 MPix/s
  • Triangle perf 90-150 kTris/s
  • HW is coming
  • MUCH faster ?, Bilinear, Trilinear, AA, etc.

22
Demos
  • Demo platform has the same HW as in the real
    products
  • But, the performance may be even better
  • Demos at Nokia N-Gage booth in expo
  • And here during coffee break

23
Questions?
?
?
?
Write a Comment
User Comments (0)
About PowerShow.com