I am one of the 2010 GSoC students working on ScummVM. I will be working on refactoring the SDL backend, and adding OpenGL(ES) as a new render engine for ScummVM.
I have created a blog, where I will post all my progress on this task.
- Design and creation of base subsystems
- Description: Design of a new backend structure that make ports easier to manage
- Time: May 24 – June 7
- Status: Finished
- Deliverables: The new backend structure consists on having the specialized code of the backends (Graphics, Events, Audio, CD, Timer, and else) separated on different manager classes. These managers then are initialized and called from the main backend class.
- New Classes: ModularBackend, MutexManager, GraphicsManager
- Refactored Classes: AudioCDManager
- Refactoring of SDL backend
- Description: Implement the new backend structure to the SDL backend and its ports (Some ports may be left for later if time allows it)
- Time: June 7 – June 28
- Status: Finished
- Deliverables: The SDL backend has been refactored, and almost all its code has been modularized. Most SDL based ports have been modularized.
- Refactored OSystem_SDL, SdlAudioManager, SdlMutexManager, SdlEventManager, SdlGraphicsManager, SdlMixerImpl, OSystem_Win32, OSystem_POSIX, OSystem_MacOSX, OSystem_SDL_SamsungTV, OSystem_SDL_Symbian, OSystem_LINUXMOTO, OSystem_GP2XWIZ, OSystem_GP2X
- Implementation of OpenGL support
- Description: Implement a OpenGL (and OpenGL ES 1.1 compatible) Graphics Manager for use with a SDL backend, and another Manager without using SDL.
- Time: June 28 – July 19
- Status: In progress - Code cleanup and documentation
- To do:
Design the base structure for a OpenGL graphics manager
Implement OpenGL setup and screen initialization code for having at least a blank screen when running
Implement overlay surface
Implement mouse surface
Implement game surface
Implement OpenGL scalers for any aspect ratio (Still need to work on aspect ratio)
Add options for switching between OpenGL manager and SDL manager
Porting to OpenGL ES and testing
- Code cleanup and documentation
- Implementation of new modular backend for other platform backends
- Description: Refactor the actual ports for subclassing the ModularBackend class
- Time: July 19 – August 7
- Status: In progress - Working on WinCE port
- Final tweaks and merging with trunk
- Description: Have the code ready for merging with trunk
- Time: August 14 – August 16
- Status: To do