I have added overlay support for SDL in BeOS. It works pretty well for my purposes. However, I
did have some questions come up when I was implementing it.
From what I can tell the overlay is supposed to be able to used in addition to the normal surface.
(on top?) So, for example, I could have a picture of my TV, and then have that be all over the
surface, with an overlay for the TV screen displaying some video. Is this correct?
I note that if I decide to make that window resizable, the overlay scaling can come for “free”, but
the rest of the surface has to be stretched by software. There doesn’t really seem to be a way
around this, unless the overlay abuts at least two opposing sides of the window, in which case I
suppose you could opt for not stretching the non-overlay portion. Is this a reasonable policy to
implement, or does SDL have some resizing policies that I just didn’t see in my cursory
This also goes into the discussion on fullscreen. Although running in fullscreen on beos is not the
same as resizing to take up the entire display, for layout purposes we could mostly consider it to
be so. But let us consider a window & surface, say, 400x300. Assume the entire surface is overlay.
If the window/surface is scaled by 3, and then the window is made fullscreen, the resulting screen
will be 1280x1024, since that is the smallest resolution that will accomodate 1200x900. Right now
we center this 1200x900 region on the center of the display, and surround it by black borders.
However, if the entire window is overlay, then it’s possible to resize it to fit the display with no
cost and pretty much without image quality loss as well. I think a lot of applications would find
this behavior desirable.
In both the cases of resizing the window and resizing to full screen there’s the issue of preserving
the aspect ratio as well. I assume that one would want to do so. So, in the above case of the
400x300 scaled by 3 resized to full screen, if it were scaled to fill the screen it’d actually end up as
1280x960, leaving 32 lines above and below the display. Reasonable?
In addition, I didn’t notice a patch submission address in the FAQ. My patch requires adding
another file so it needs some autoconfig majik that I wasn’t able to get working locally. I am
working from the 1.2.7 tar.
A few other questions: is overlay considered a hardware surface? Also, on beos there are non-
YUV overlays possible as well. (not that many cards support non-YUV overlay) If someone asks
for a plain hardware surface, is it reasonable to give them back an overlay surface?