[SDL] SDL 1.3 status ?

Mason Wheeler masonwheeler at yahoo.com
Wed Jul 27 22:46:55 PDT 2011


>From: Nicholas Vining <mordred at icculus.org>

>Subject: Re: [SDL] SDL 1.3 status ?
>
>Also, for the record: what is a "modern renderer"? Nobody
>complaining about what SDL 1.3 is missing out on by continuing
>to maintain some of the older, Actually Useful renderers, is
>willing to let themselves get pinned into a corner by admitting
>what a "modern renderer" is. It's a NONSENSE WORD. Simply
>talking about hardware acceleration via OpenGL, and calling that
>a modern renderer, doesn't solve anything.


Are you familiar with the concept in legal documents known as
"incorporates by reference"?  Something like that is in play here.
I'm not sure how 
long you've been following the SDL list, but this
discussion is not 
something new.  It's been around for a couple years
now, and your 
"NONSENSE WORD" is anything but.  But for the
benefit of those who are 
new to the discussion, allow me to provide
an informal working 
definition:

A modern renderer understands that sprites are not, and do not have
tobe, immutable rectangles.  It is capable of scaling, rotating, flipping,
and arbitrarily distortingthem.  It can also play around with their colors
in interesting ways, some of which may require shaders.

>Everybody thinks they want that, but nobody actually does, because
>once you start doing that you can't expand on it without throwing the
>library out and writing it yourself. As soon as you want to do something
>that the "modern renderer" doesn't allow you to, it becomes useless.

Sorry, not buying it.  Any sealed abstraction that you cannot get beneath
when necessary is evil, and anyone who builds a library (of any kind) that
way has no business building libraries.  You want to see it done right, take
a look at the gold standard of widget libraries, the Delphi VCL.  It does
for the windows API what SDL does for low-level rendering systems: it
wraps them in simple, high-level, easy-to-understand abstractions that
makes it possible for people to quickly and easily build stuff out of
them.  But the interesting thing is, all the winapi stuff is still there, and
it's still accessible if necessary.  In fact, if it's needed, every VCL control
has a Handle property that returns the control's HWND, allowing direct
access to the low-level winapi commands.

A well-designed renderer would do the same thing: wrap the complicated,
low-level GL/D3D/GLES functionality and keep it out of the coder's face
so he can concentrate on building a working system, but still provide a
Handle that would give access to each object's underlying GLUint or other
renderer-specific handle, to make it possible to do things that the "modern
renderer" didn't account for.

Mason
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.libsdl.org/pipermail/sdl-libsdl.org/attachments/20110727/123443c2/attachment-0008.htm>


More information about the SDL mailing list