From ScummVM :: Wiki
Jump to navigation Jump to search
Name Alejandro Marzini
Team Member since 26/04/2010
Working on SDL backend and OpenGL
Personal webpage/BLOG


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: In progress - Cleanup and documentation
    • 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: To do
    • To do:
      • Design the base structure for a SDL OpenGL graphics manager
      • Implement OpenGL setup and screen initialization code for having at least a black screen when running
      • Implement blitting to screen code (drawing of game, overlay, mouse) and screen update
      • Implement OpenGL scalers for any aspect ratio
      • Implement a OpenGL graphics manager for non SDL platforms
      • 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 14
    • Status: To do