Yeah, seems like a poor choice of title without the explanation.
For rendering implementations, "surface" usually refers to a part of memory being rendered into as output or that something else has rendered into that is being used as input, like an image buffer that webcam output is dumped into. One example set of docs: https://docs.microsoft.com/en-us/windows/win32/direct3d9/dir...
I don't know if I've ever really thought about the name. I guess maybe at some point it was more straightforward and a surface was just a part of memory that was going to be blitted directly to screen and so in that sense you're painting a "surface" of that area of the screen? I'd be interested if anyone knows a more detailed etymology.
In D3D terminology I think it's almost always been "surfaces" and "render targets", where the latter is something you can paint into. Surfaces are often broken down into levels, and don't necessarily contain image data (they can contain depth/stencil data for 3D rendering, for example)
I chose the title so long ago that I can't really remember what I was thinking.
> A surface represents a linear area of display memory and usually resides in the display memory of the display card, although surfaces can exist in system memory.
https://stackoverflow.com/questions/1033445/what-exactly-is-...
> broadly speaking, a surface is some 2D image data.
For example, a graphics API like Metal or Direct3D lets you create surfaces that reside either in GPU or CPU memory.
Or, an OS-level interprocess API like Apple's IOSurface lets you create shared surfaces that can be accessed by multiple processes.