Using SDL as simple framebuffer

Hello all :slight_smile: I am researching engines to use for my current game library and the wide platform support for SDL is key as I wish to support Windows, OSX, Linux, iOS, and Android. Currently my games use my own 2d engine and this has worked fine for me over the years, but I wish to add support for Android and Linux, and rather than doing custom implementations for them I thought moving to SDL might be a better decision? As it will allow me to wrap all of them into one ecosystem.

All of my code is C/C++ and very portable as it currently compiles for Windows, iOS, OSX, and Windows CE. I am confident that SDL is mature on Windows, Linux, and OSX, but after browsing the forums am not so sure about iOS and Andriod, are these platforms mature enough for a shipping game? Are there any notable problems with iOS or Andriod support? One issue I noticed is no support for landscape mode on iOS?

My main concern is frame buffer performance, since my games all use my custom 2d engine I only need “one copy to screen” call per frame, my engine supports 8888 and 565 pixel formats and I currently use the former for Windows and OSX, and the latter for iOS. I was hoping someone has some performance metrics for the time SDL takes for copying a full screen buffer on various platforms? Or is there a tutorial or sample project that uses direct frame copying like this that I can test myself?

Thank you,

In my current engine glTexSubImage2D blits 480x320x16 in 1.6ms
on the iPhone 3gs and 1ms on iPhone 4, on Mac I use glDrawPixels which updates a
1440x900x32 screen in 4ms. In Windows I use GDI which blits 1920x1200x32 in 1ms.