The SDL forums have moved to discourse.libsdl.org.
This is just a read-only archive of the previous forums, to keep old links working.


SDL Forum Index
SDL
Simple Directmedia Layer Forums
SDL2 Graphics API, was Re: compiling with SDL_NO_COMPAT
Sam Lantinga


Joined: 10 Sep 2009
Posts: 1765
Bob, I don't think we're quite ready to talk about this, unless you're talking about something you'd like to write and maintain separately from SDL. :)

On Sun, Jan 8, 2012 at 1:28 AM, Bob Pendleton wrote:
Quote:
If we are going to start talking about what features should be in the
graphics API for SDL2 I think we should start a new thread.

Since this is a 3D API based running on top of modern hardware I'm
going to suggest that it should include layers. We have a Z-Buffer,
even though we are just doing 2D doesn't mean we shouldn't use it. It
makes doing so many things so much easier.

Also, I've heard a lot of people talking about render to texture as a
requirement, and I'm very much in favor of that, so the minimum
version of OpenGL/DirectX that can be supported is the first version
that supports that functionality.

While is is possible to build up all the graphic primitives, such as
lines, circles, and so on, from a simple scan line fill operation, it
is also pretty trivial to provide a set of solid fill and textured
primitives based on the underlying libraries. They do not have to
complex. It is possible to do textured primitives without ever
specifying a texture coordinate.

And, lets not forget fonts. People need fonts.

A critical problem is the coordinate system to be used. Using Pixels
*is* rather natural. But, then the library needs to be able to scale
everything for when the window changes size.

Bob Pendleton

To make a *modern* 2D system anyone want to talk about doing it based
on SVG instead of pixels?

Bob Pendleton


On Fri, Jan 6, 2012 at 9:53 PM, bala_48225 wrote:
Quote:
So far I haven't used SDL 1.3, but as far as the proposed split-from-base 2D
rendering API
is concerned, perhaps its features could be limited, basic and modern:

1) Allow the user to flip, rotate and scale images; 2) Provide multiple
alpha blend modes for
images, including multiply alpha, and 3) Provide something akin to SDL 1.2's
SDL_FillRect,
perhaps with blending modes as well.

The last feature could put the burden for simpler functions such as lines
and circles on the user,
and the possibility of having a bloated fixed-function pipeline could thus
be evaded. The only
other thing I can think is, maybe the rendering API could support less
platforms than the rest of SDL
does, thus decreasing its development overhead. For my part I don't see why
any DirectX prior to 8 or
later than 9 would be necessary to support for a 2D API, and OpenGL should
be supported from 1.0.
Those three features I suggested should update SDL to the 2010s while
keeping it low-level from the
user's perspective.

_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org




--
+-----------------------------------------------------------
+ Bob Pendleton: writer and programmer
+ email:
+ web: www.TheGrumpyProgrammer.com
_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org
SDL2 Graphics API, was Re: compiling with SDL_NO_COMPAT
Jonathan Greig
Guest

Guys,
I would suggest structuring it something similar to Qt's QGraphicsView/QGraphicsScene API. It is quite powerful, fairly simple to understand, and a joy to use. Practically if not everything Bob has mentioned is there. I dont use SDL for graphics anymore simply because getting HW-accelerated graphics using SDL just simply isn't "Simple". I've found the new Haptic API to be quite enjoyable, and I still use the Joystick and SDL_mixer stuff, but the one thing that really excited me about SDL2 that I was looking forward to was the HW Graphics API.
SDL2 Graphics API, was Re: compiling with SDL_NO_COMPAT
Jonny D


Joined: 12 Sep 2009
Posts: 932
I'm probably reinventing the wheel (particularly wrt SDL2 renderers), but I started writing a "simple" 2D abstraction lib for OpenGL and Direct3D.  I'm not going to link to it, since I think my last email with a link got lost in moderation (we'll probably see it in the next mailing burp).  Tentatively called SDL_gpu, you can find it on Google Code.  I'd love help with it in both design and implementation.  However it works out, a library on top of the core SDL is the way to go.  I'm working off of SDL 1.2 right now and it should be very easy to port to SDL2.

Any takers?


Jonny D


On Sun, Jan 8, 2012 at 4:15 AM, Jonathan Greig wrote:
Quote:
Guys,
I would suggest structuring it something similar to Qt's QGraphicsView/QGraphicsScene API. It is quite powerful, fairly simple to understand, and a joy to use. Practically if not everything Bob has mentioned is there. I dont use SDL for graphics anymore simply because getting HW-accelerated graphics using SDL just simply isn't "Simple". I've found the new Haptic API to be quite enjoyable, and I still use the Joystick and SDL_mixer stuff, but the one thing that really excited me about SDL2 that I was looking forward to was the HW Graphics API.

_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org

SDL2 Graphics API, was Re: compiling with SDL_NO_COMPAT
Jared Maddox
Guest

Quote:
Date: Wed, 4 Jan 2012 17:17:10 -0600
From: Bob Pendleton
Subject: Re: [SDL] compiling with SDL_NO_COMPAT

Quote:
Does SDL2 need any graphics support in it? It needs to be able to load
images, it needs to be able to do the kinds of image manipulation that
a graphics program needs to do to prepare images for use by a graphics
program, and it would be nice if it had helper functions to hand off
images to the OpenGL and DirectX and whatever other high level
graphics API you are using.

In my opinion, SDL2 should have functions to load and save images and
hand them off to OpenGL, DirectX, and what ever other high level
graphics APIs may be in use.


In my opinion, SDL2 should have enough graphics functions to do basic
rendering (load textures to video card from memory, NOT from files; display
textures on screen), an API for extension libraries (where I would put things
like line-drawing, AND render-to-texture), and that's it for the
ACTUAL graphics. Everything else should be implemented in an extension
library, and if it can't be, then that indicates the SDL2 api doesn't
properly support extensions.

Whether rotation etc. belongs in SDL2 or in such an extension library
I'm not inclined to speak on. I will say that if it isn't implemented
for the software renderer, then it shouldn't be in the SDL core.

Regardless, I think it should always be possible to implement simple
graphical SDL programs with ONLY SDL, regardless of whether it's SDL
1.2, SDL2, etc.



Quote:
Date: Wed, 4 Jan 2012 19:58:23 -0500
From: Sam Lantinga
Subject: Re: [SDL] compiling with SDL_NO_COMPAT


Quote:
Mason is absolutely right that the current API doesn't expose the things he
needs to extend the underlying rendering system. To some extent this is
intentional as the API user isn't supposed to have to worry about whether
the underlying rendering system is OpenGL, Direct3D or software.


I think that some exposure of the underlying system will probably be
necessary, for the sake of library interoperability. Hopefully a
handful of functions, enums, and structures, all declared in an
optional header file. Maybe call it "extension_api.h" or something.

Quote:
My feeling is that there are still one or two things that the API can use
to be really useful, such as render to texture, but I have drawn the line
at things that would expose 3D math - once you go there you're better off
using a real 3D engine or going directly to OpenGL/Direct3D.


I personally would prefer render-to-texture to be in an official
extension library, but I have a smart-phone that doesn't support it,
so I'm biased on this subject.



Quote:
Date: Sun, 8 Jan 2012 00:28:21 -0600
From: Bob Pendleton
To:
Subject: [SDL] SDL2 Graphics API, was Re: compiling with
SDL_NO_COMPAT
Message-ID:
<CAKabUS5zgoAeMixVjaie5841HSugn-42SPzcAW-hUGyL=
Content-Type: text/plain; charset=ISO-8859-1

If we are going to start talking about what features should be in the
graphics API for SDL2 I think we should start a new thread.


Fair enough.

Quote:
Since this is a 3D API based running on top of modern hardware I'm
going to suggest that it should include layers. We have a Z-Buffer,
even though we are just doing 2D doesn't mean we shouldn't use it. It
makes doing so many things so much easier.


Doesn't really strike me as sufficiently simple, but I've written
enough image-layering stuff that I'm willing to look at the current
software renderer, and attempt to add support, if Sam & the team
decide to go with it. It isn't like it's THAT complex if you aren't
using MMX & co. (which would be enough for the reference/emergency
backup implementation that the software renderer *optimistically* is).

That having been said, an api that supported it would need to be
defined for, e.g., clearing a single layer.

Quote:
Also, I've heard a lot of people talking about render to texture as a
requirement, and I'm very much in favor of that, so the minimum
version of OpenGL/DirectX that can be supported is the first version
that supports that functionality.


I'm in favor of using an *official* extension library (ala SDL_mixer)
for that, but see my note above Wink .

Quote:
While is is possible to build up all the graphic primitives, such as
lines, circles, and so on, from a simple scan line fill operation, it
is also pretty trivial to provide a set of solid fill and textured
primitives based on the underlying libraries. They do not have to
complex. It is possible to do textured primitives without ever
specifying a texture coordinate.


My perspective on primitives is that the core graphics api should
provide textured triangles or rectangles and nothing else. With a good
extension interface you can do a low-level implementation of other
standards (lines, circles, etc.), and without it you can use the
textured triangle/rectangle function to implement them.

Quote:
And, lets not forget fonts. People need fonts.


I'd say that should be kept separate, much as SDL_TTF currently is.
More prominent placement and mention of the 'standard support
libraries' (preferably mentioned and downloadable right beside the
core library) would be nice though.

Quote:
A critical problem is the coordinate system to be used. Using Pixels
*is* rather natural. But, then the library needs to be able to scale
everything for when the window changes size.


For the core Windowing/Graphics api, pixels make the most sense for
every platform where that's the 'native way'. For a richer Grahics api
that sits on top of SDL, instead of just extending it, I think the
field should be considered wide-open.

Quote:
To make a *modern* 2D system anyone want to talk about doing it based
on SVG instead of pixels?


I don't know SVG, but from a quick glance at what appeared to be the
relevant info, I'd suggest the following for a library that USES SDL2:
1) The 'drawable area' is always considered '1.0' wide, and tall. If a
3d library, then it also has a depth of '1.0'. Drawing & etc.
functions always use this particular floating-point coordinate system.
Resizing the drawable area does not modify this coordinate scheme: no
matter what the size of the drawable area is, it's dimensions are
always 1.0*1.0(*1.0). After all, a viewport will ALWAYS be exactly 1
viewport in width, and 1 viewport in height. From what I read, this is
not what SVG does; the other two suggestions are:
2) The drawable area can be queried for it's dimensions in pixels (or
voxels if a 3d library). This coordinate system is not used by
graphics functions, it is only provided for informational purposes
(e.g. to choose texture resolutions).
3) The drawable area can be asked for it's real-world dimensions
(inches, centimeters, etc.) but is not required to provide them. This
coordinate system is provided for the same purpose as the pixel
coordinate system.

But, again, this wouldn't be for SDL2 itself, just for a graphics
library sitting on top of it.
_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org
SDL2 Graphics API, was Re: compiling with SDL_NO_COMPAT
Mason Wheeler
Guest

*blink* OK, this is getting ridiculous. What is with your obsession with putting all
possible functionality in extension libraries? It's like you've never heard the term
DLL Hell before!


It's bad enough as it is. Every bit of external code I use requires yet another DLL
in my deployment package. The worst offender (in my game engine at least) is
Firebird. There's no good reason it should take 7 different DLLs just to support a
simple embedded database, but it does! But second on the list is SDL. I need
two different DLLs just to open a ubiquitous file format such as PNG or JPEG
and draw it on the screen, plus an external library for each file format I want
to support, plus other dependencies for those libraries (zlib for libpng, etc.)
And heaven help me if I want to include music-playing capabilities! And now
you want to make it even worse?!?



Give me one good reason why fundamental functionality that every game
is going to need, such as loading images, rendering, playing audio and displaying
text should *not* be included as part of the basic package in a multimedia library
whose name proclaims that its goal is to make multimedia programming "simple"!

Sure, plugin support is a good idea, but let's be realistic and save it for stuff that
really is only optional, not for core functionality that everyone is realistically
likely to need!


From: Jared Maddox
Subject: Re: [SDL] SDL2 Graphics API, was Re: compiling with SDL_NO_COMPAT

Quote:
Date: Wed, 4 Jan 2012 17:17:10 -0600
From: Bob Pendleton
Subject: Re: [SDL] compiling with SDL_NO_COMPAT

Quote:
Does SDL2 need any graphics support in it? It needs to be able to load
images, it needs to be able to do the kinds of image manipulation that
a graphics program needs to do to prepare images for use by a graphics
program, and it would be nice if it had helper functions to hand off
images to the OpenGL and DirectX and whatever other high level
graphics API you are using.

In my opinion, SDL2 should have functions to load and save images and
hand them off to OpenGL, DirectX, and what ever other high level
graphics APIs may be in use.


In my opinion, SDL2 should have enough graphics functions to do basic
rendering (load textures to video card from memory, NOT from files; display
textures on screen), an API for extension libraries (where I would put things
like line-drawing, AND render-to-texture), and that's it for the
ACTUAL graphics. Everything else should be implemented in an extension
library, and if it can't be, then that indicates the SDL2 api doesn't
properly support extensions.

Whether rotation etc. belongs in SDL2 or in such an extension library
I'm not inclined to speak on. I will say that if it isn't implemented
for the software renderer, then it shouldn't be in the SDL core.

Regardless, I think it should always be possible to implement simple
graphical SDL programs with ONLY SDL, regardless of whether it's SDL
1.2, SDL2, etc.



Quote:
Date: Wed, 4 Jan 2012 19:58:23 -0500
From: Sam Lantinga
Subject: Re: [SDL] compiling with SDL_NO_COMPAT


Quote:
Mason is absolutely right that the current API doesn't expose the things he
needs to extend the underlying rendering system. To some extent this is
intentional as the API user isn't supposed to have to worry about whether
the underlying rendering system is OpenGL, Direct3D or software.


I think that some exposure of the underlying system will probably be
necessary, for the sake of library interoperability. Hopefully a
handful of functions, enums, and structures, all declared in an
optional header file. Maybe call it "extension_api.h" or something.

Quote:
My feeling is that there are still one or two things that the API can use
to be really useful, such as render to texture, but I have drawn the line
at things that would expose 3D math - once you go there you're better off
using a real 3D engine or going directly to OpenGL/Direct3D.


I personally would prefer render-to-texture to be in an official
extension library, but I have a smart-phone that doesn't support it,
so I'm biased on this subject.



Quote:
Date: Sun, 8 Jan 2012 00:28:21 -0600
From: Bob Pendleton
To:
Subject: [SDL] SDL2 Graphics API, was Re: compiling with
SDL_NO_COMPAT
Message-ID:
<CAKabUS5zgoAeMixVjaie5841HSugn-42SPzcAW-hUGyL=
Content-Type: text/plain; charset=ISO-8859-1

If we are going to start talking about what features should be in the
graphics API for SDL2 I think we should start a new thread.


Fair enough.

Quote:
Since this is a 3D API based running on top of modern hardware I'm
going to suggest that it should include layers. We have a Z-Buffer,
even though we are just doing 2D doesn't mean we shouldn't use it. It
makes doing so many things so much easier.


Doesn't really strike me as sufficiently simple, but I've written
enough image-layering stuff that I'm willing to look at the current
software renderer, and attempt to add support, if Sam & the team
decide to go with it. It isn't like it's THAT complex if you aren't
using MMX & co. (which would be enough for the reference/emergency
backup implementation that the software renderer *optimistically* is).

That having been said, an api that supported it would need to be
defined for, e.g., clearing a single layer.

Quote:
Also, I've heard a lot of people talking about render to texture as a
requirement, and I'm very much in favor of that, so the minimum
version of OpenGL/DirectX that can be supported is the first version
that supports that functionality.


I'm in favor of using an *official* extension library (ala SDL_mixer)
for that, but see my note above Wink .

Quote:
While is is possible to build up all the graphic primitives, such as
lines, circles, and so on, from a simple scan line fill operation, it
is also pretty trivial to provide a set of solid fill and textured
primitives based on the underlying libraries. They do not have to
complex. It is possible to do textured primitives without ever
specifying a texture coordinate.


My perspective on primitives is that the core graphics api should
provide textured triangles or rectangles and nothing else. With a good
extension interface you can do a low-level implementation of other
standards (lines, circles, etc.), and without it you can use the
textured triangle/rectangle function to implement them.

Quote:
And, lets not forget fonts. People need fonts.


I'd say that should be kept separate, much as SDL_TTF currently is.
More prominent placement and mention of the 'standard support
libraries' (preferably mentioned and downloadable right beside the
core library) would be nice though.

Quote:
A critical problem is the coordinate system to be used. Using Pixels
*is* rather natural. But, then the library needs to be able to scale
everything for when the window changes size.


For the core Windowing/Graphics api, pixels make the most sense for
every platform where that's the 'native way'. For a richer Grahics api
that sits on top of SDL, instead of just extending it, I think the
field should be considered wide-open.

Quote:
To make a *modern* 2D system anyone want to talk about doing it based
on SVG instead of pixels?


I don't know SVG, but from a quick glance at what appeared to be the
relevant info, I'd suggest the following for a library that USES SDL2:
1) The 'drawable area' is always considered '1.0' wide, and tall. If a
3d library, then it also has a depth of '1.0'. Drawing & etc.
functions always use this particular floating-point coordinate system.
Resizing the drawable area does not modify this coordinate scheme: no
matter what the size of the drawable area is, it's dimensions are
always 1.0*1.0(*1.0). After all, a viewport will ALWAYS be exactly 1
viewport in width, and 1 viewport in height. From what I read, this is
not what SVG does; the other two suggestions are:
2) The drawable area can be queried for it's dimensions in pixels (or
voxels if a 3d library). This coordinate system is not used by
graphics functions, it is only provided for informational purposes
(e.g. to choose texture resolutions).
3) The drawable area can be asked for it's real-world dimensions
(inches, centimeters, etc.) but is not required to provide them. This
coordinate system is provided for the same purpose as the pixel
coordinate system.

But, again, this wouldn't be for SDL2 itself, just for a graphics
library sitting on top of it.
_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org
SDL2 Graphics API, was Re: compiling with SDL_NO_COMPAT
David Olofson
Guest

I can see the motivation for making it all modular from a library development
POV - but that doesn't mean it has to literally build as separate
libs/modules.

Linux kernel module style solution; allow optional extensions to be compiled
in, built as external libs, or not built at all?

Pre-built SDL would normally come with everything compiled in. If you want to
save every last byte (which seems kind of ridiculous unless you're aiming for
90% structured/procedural media - like me and like, five other gamedevs on the
planet), you either pick a modular build and drop in only the libs you need,
or you build your own single file version.

Not the most trivial solution, but one size does not fit all, obviously...


On Thursday 12 January 2012, at 14.16.19, Mason Wheeler
wrote:
Quote:
*blink* OK, this is getting ridiculous. What is with your obsession with
putting all possible functionality in extension libraries? It's like
you've never heard the term DLL Hell before!

It's bad enough as it is. Every bit of external code I use requires yet
another DLL in my deployment package. The worst offender (in my game
engine at least) is Firebird. There's no good reasonit should take 7
differentDLLs just to support a simple embedded database, butit does! But
second on the list is SDL. I need two different DLLs just to open a
ubiquitous file format such as PNG or JPEG and draw it on the screen, plus
an external library for each file format I want to support, plus other
dependencies for those libraries (zlib for libpng, etc.) And heaven help
me if I want to include music-playing capabilities! And now you want to
make it even worse?!?


Give me one good reason why fundamental functionality that every game
is going to need, such as loading images, rendering, playing audio and
displaying text should *not* be included as part of the basic package in a
multimedia library whose name proclaims that its goal is to make
multimedia programming "simple"!

Sure, plugin support is a good idea, but let's be realistic and save it for
stuff that really is only optional, not for core functionality that
everyone is realistically likely to need!


________________________________
From: Jared Maddox
Subject: Re: [SDL] SDL2 Graphics API, was Re: compiling with SDL_NO_COMPAT

Quote:
Date: Wed, 4 Jan 2012 17:17:10 -0600
From: Bob Pendleton
Subject: Re: [SDL] compiling with SDL_NO_COMPAT

Does SDL2 need any graphics support in it? It needs to be able to load
images, it needs to be able to do the kinds of image manipulation that
a graphics program needs to do to prepare images for use by a graphics
program, and it would be nice if it had helper functions to hand off
images to the OpenGL and DirectX and whatever other high level
graphics API you are using.

In my opinion, SDL2 should have functions to load and save images and
hand them off to OpenGL, DirectX, and what ever other high level
graphics APIs may be in use.

In my opinion, SDL2 should have enough graphics functions to do basic
rendering (load textures to video card from memory, NOT from files; display
textures on screen), an API for extension libraries (where I would put
things like line-drawing, AND render-to-texture), and that's it for the
ACTUAL graphics. Everything else should be implemented in an extension
library, and if it can't be, then that indicates the SDL2 api doesn't
properly support extensions.

Whether rotation etc. belongs in SDL2 or in such an extension library
I'm not inclined to speak on. I will say that if it isn't implemented
for the software renderer, then it shouldn't be in the SDL core.

Regardless, I think it should always be possible to implement simple
graphical SDL programs with ONLY SDL, regardless of whether it's SDL
1.2, SDL2, etc.

Quote:
Date: Wed, 4 Jan 2012 19:58:23 -0500
From: Sam Lantinga
Subject: Re: [SDL] compiling with SDL_NO_COMPAT


Mason is absolutely right that the current API doesn't expose the things
he needs to extend the underlying rendering system. To some extent this
is intentional as the API user isn't supposed to have to worry about
whether the underlying rendering system is OpenGL, Direct3D or software.

I think that some exposure of the underlying system will probably be
necessary, for the sake of library interoperability. Hopefully a
handful of functions, enums, and structures, all declared in an
optional header file. Maybe call it "extension_api.h" or something.

Quote:
My feeling is that there are still one or two things that the API can use
to be really useful, such as render to texture, but I have drawn the line
at things that would expose 3D math - once you go there you're better off
using a real 3D engine or going directly to OpenGL/Direct3D.

I personally would prefer render-to-texture to be in an official
extension library, but I have a smart-phone that doesn't support it,
so I'm biased on this subject.

Quote:
Date: Sun, 8 Jan 2012 00:28:21 -0600
From: Bob Pendleton
To:
Subject: [SDL] SDL2 Graphics API, was Re: compiling with
SDL_NO_COMPAT
Message-ID:
<CAKabUS5zgoAeMixVjaie5841HSugn-42SPzcAW-hUGyL=
Content-Type: text/plain; charset=ISO-8859-1

If we are going to start talking about what features should be in the
graphics API for SDL2 I think we should start a new thread.

Fair enough.

Quote:
Since this is a 3D API based running on top of modern hardware I'm
going to suggest that it should include layers. We have a Z-Buffer,
even though we are just doing 2D doesn't mean we shouldn't use it. It
makes doing so many things so much easier.

Doesn't really strike me as sufficiently simple, but I've written
enough image-layering stuff that I'm willing to look at the current
software renderer, and attempt to add support, if Sam & the team
decide to go with it. It isn't like it's THAT complex if you aren't
using MMX & co. (which would be enough for the reference/emergency
backup implementation that the software renderer *optimistically* is).

That having been said, an api that supported it would need to be
defined for, e.g., clearing a single layer.

Quote:
Also, I've heard a lot of people talking about render to texture as a
requirement, and I'm very much in favor of that, so the minimum
version of OpenGL/DirectX that can be supported is the first version
that supports that functionality.

I'm in favor of using an *official* extension library (ala SDL_mixer)
for that, but see my note above Wink .

Quote:
While is is possible to build up all the graphic primitives, such as
lines, circles, and so on, from a simple scan line fill operation, it
is also pretty trivial to provide a set of solid fill and textured
primitives based on the underlying libraries. They do not have to
complex. It is possible to do textured primitives without ever
specifying a texture coordinate.

My perspective on primitives is that the core graphics api should
provide textured triangles or rectangles and nothing else. With a good
extension interface you can do a low-level implementation of other
standards (lines, circles, etc.), and without it you can use the
textured triangle/rectangle function to implement them.

Quote:
And, lets not forget fonts. People need fonts.

I'd say that should be kept separate, much as SDL_TTF currently is.
More prominent placement and mention of the 'standard support
libraries' (preferably mentioned and downloadable right beside the
core library) would be nice though.

Quote:
A critical problem is the coordinate system to be used. Using Pixels
*is* rather natural. But, then the library needs to be able to scale
everything for when the window changes size.

For the core Windowing/Graphics api, pixels make the most sense for
every platform where that's the 'native way'. For a richer Grahics api
that sits on top of SDL, instead of just extending it, I think the
field should be considered wide-open.

Quote:
To make a *modern* 2D system anyone want to talk about doing it based
on SVG instead of pixels?

I don't know SVG, but from a quick glance at what appeared to be the
relevant info, I'd suggest the following for a library that USES SDL2:
1) The 'drawable area' is always considered '1.0' wide, and tall. If a
3d library, then it also has a depth of '1.0'. Drawing & etc.
functions always use this particular floating-point coordinate system.
Resizing the drawable area does not modify this coordinate scheme: no
matter what the size of the drawable area is, it's dimensions are
always 1.0*1.0(*1.0). After all, a viewport will ALWAYS be exactly 1
viewport in width, and 1 viewport in height. From what I read, this is
not what SVG does; the other two suggestions are:
2) The drawable area can be queried for it's dimensions in pixels (or
voxels if a 3d library). This coordinate system is not used by
graphics functions, it is only provided for informational purposes
(e.g. to choose texture resolutions).
3) The drawable area can be asked for it's real-world dimensions
(inches, centimeters, etc.) but is not required to provide them. This
coordinate system is provided for the same purpose as the pixel
coordinate system.

But, again, this wouldn't be for SDL2 itself, just for a graphics
library sitting on top of it.
_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org

--
//David Olofson - Consultant, Developer, Artist, Open Source Advocate

.--- Games, examples, libraries, scripting, sound, music, graphics ---.
| http://consulting.olofson.net http://olofsonarcade.com |
'---------------------------------------------------------------------'
_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org
SDL2 Graphics API, was Re: compiling with SDL_NO_COMPAT
Jonny D


Joined: 12 Sep 2009
Posts: 932
Mason, what about licensing that allows static linking?

Jonny D


On Thu, Jan 12, 2012 at 8:47 AM, David Olofson wrote:
Quote:

I can see the motivation for making it all modular from a library development
POV - but that doesn't mean it has to literally build as separate
libs/modules.

Linux kernel module style solution; allow optional extensions to be compiled
in, built as external libs, or not built at all?

Pre-built SDL would normally come with everything compiled in. If you want to
save every last byte (which seems kind of ridiculous unless you're aiming for
90% structured/procedural media - like me and like, five other gamedevs on the
planet), you either pick a modular build and drop in only the libs you need,
or you build your own single file version.

Not the most trivial solution, but one size does not fit all, obviously...


On Thursday 12 January 2012, at 14.16.19, Mason Wheeler
wrote:
Quote:
*blink*  OK, this is getting ridiculous.  What is with your obsession with
putting all possible functionality in extension libraries?  It's like
you've never heard the term DLL Hell before!

It's bad enough as it is.  Every bit of external code I use requires yet
another DLL in my deployment package.  The worst offender (in my game
engine at least) is Firebird. There's no good reasonit should take 7

Quote:
differentDLLs just to support a simple embedded database, butit does!  But
second on the list is SDL.  I need two different DLLs just to open a
ubiquitous file format such as PNG or JPEG and draw it on the screen, plus
an external library for each file format I want to support, plus other
dependencies for those libraries (zlib for libpng, etc.) And heaven help
me if I want to include music-playing capabilities! And now you want to
make it even worse?!?


Give me one good reason why fundamental functionality that every game
is going to need, such as loading images, rendering, playing audio and
displaying text should *not* be included as part of the basic package in a
multimedia library whose name proclaims that its goal is to make
multimedia programming "simple"!

Sure, plugin support is a good idea, but let's be realistic and save it for
stuff that really is only optional, not for core functionality that
everyone is realistically likely to need!


________________________________
 From: Jared Maddox
Subject: Re: [SDL] SDL2 Graphics API, was Re: compiling with SDL_NO_COMPAT

Quote:
Date: Wed, 4 Jan 2012 17:17:10 -0600
From: Bob Pendleton
Subject: Re: [SDL] compiling with SDL_NO_COMPAT

Does SDL2 need any graphics support in it? It needs to be able to load
images, it needs to be able to do the kinds of image manipulation that
a graphics program needs to do to prepare images for use by a graphics
program, and it would be nice if it had helper functions to hand off
images to the OpenGL and DirectX and whatever other high level
graphics API you are using.

In my opinion, SDL2 should have functions to load and save images and
hand them off to OpenGL, DirectX, and what ever other high level
graphics APIs may be in use.

In my opinion, SDL2 should have enough graphics functions to do basic
rendering (load textures to video card from memory, NOT from files; display
textures on screen), an API for extension libraries (where I would put
things like line-drawing, AND render-to-texture), and that's it for the
ACTUAL graphics. Everything else should be implemented in an extension
library, and if it can't be, then that indicates the SDL2 api doesn't
properly support extensions.

Whether rotation etc. belongs in SDL2 or in such an extension library
I'm not inclined to speak on. I will say that if it isn't implemented
for the software renderer, then it shouldn't be in the SDL core.

Regardless, I think it should always be possible to implement simple
graphical SDL programs with ONLY SDL, regardless of whether it's SDL
1.2, SDL2, etc.

Quote:
Date: Wed, 4 Jan 2012 19:58:23 -0500
From: Sam Lantinga
Subject: Re: [SDL] compiling with SDL_NO_COMPAT


Mason is absolutely right that the current API doesn't expose the things
he needs to extend the underlying rendering system.  To some extent this
is intentional as the API user isn't supposed to have to worry about
whether the underlying rendering system is OpenGL, Direct3D or software.

I think that some exposure of the underlying system will probably be
necessary, for the sake of library interoperability. Hopefully a
handful of functions, enums, and structures, all declared in an
optional header file. Maybe call it "extension_api.h" or something.

Quote:
My feeling is that there are still one or two things that the API can use
to be really useful, such as render to texture, but I have drawn the line
at things that would expose 3D math - once you go there you're better off
using a real 3D engine or going directly to OpenGL/Direct3D.

I personally would prefer render-to-texture to be in an official
extension library, but I have a smart-phone that doesn't support it,
so I'm biased on this subject.

Quote:
Date: Sun, 8 Jan 2012 00:28:21 -0600
From: Bob Pendleton
To:
Subject: [SDL] SDL2 Graphics API, was Re:  compiling with
    SDL_NO_COMPAT
Message-ID:
    <CAKabUS5zgoAeMixVjaie5841HSugn-42SPzcAW-hUGyL=
Content-Type: text/plain; charset=ISO-8859-1

If we are going to start talking about what features should be in the
graphics API for SDL2 I think we should start a new thread.

Fair enough.

Quote:
Since this is a 3D API based running on top of modern hardware I'm
going to suggest that it should include layers. We have a Z-Buffer,
even though we are just doing 2D doesn't mean we shouldn't use it. It
makes doing so many things so much easier.

Doesn't really strike me as sufficiently simple, but I've written
enough image-layering stuff that I'm willing to look at the current
software renderer, and attempt to add support, if Sam & the team
decide to go with it. It isn't like it's THAT complex if you aren't
using MMX & co. (which would be enough for the reference/emergency
backup implementation that the software renderer *optimistically* is).

That having been said, an api that supported it would need to be
defined for, e.g., clearing a single layer.

Quote:
Also, I've heard a lot of people talking about render to texture as a
requirement, and I'm very much in favor of that, so the minimum
version of OpenGL/DirectX that can be supported is the first version
that supports that functionality.

I'm in favor of using an *official* extension library (ala SDL_mixer)
for that, but see my note above Wink .

Quote:
While is is possible to build up all the graphic primitives, such as
lines, circles, and so on, from a simple scan line fill operation, it
is also pretty trivial to provide a set of solid fill and textured
primitives based on the underlying libraries. They do not have to
complex. It is possible to do textured primitives without ever
specifying a texture coordinate.

My perspective on primitives is that the core graphics api should
provide textured triangles or rectangles and nothing else. With a good
extension interface you can do a low-level implementation of other
standards (lines, circles, etc.), and without it you can use the
textured triangle/rectangle function to implement them.

Quote:
And, lets not forget fonts. People need fonts.

I'd say that should be kept separate, much as SDL_TTF currently is.
More prominent placement and mention of the 'standard support
libraries' (preferably mentioned and downloadable right beside the
core library) would be nice though.

Quote:
A critical problem is the coordinate system to be used. Using Pixels
*is* rather natural. But, then the library needs to be able to scale
everything for when the window changes size.

For the core Windowing/Graphics api, pixels make the most sense for
every platform where that's the 'native way'. For a richer Grahics api
that sits on top of SDL, instead of just extending it, I think the
field should be considered wide-open.

Quote:
To make a *modern* 2D system anyone want to talk about doing it based
on SVG instead of pixels?

I don't know SVG, but from a quick glance at what appeared to be the
relevant info, I'd suggest the following for a library that USES SDL2:
1) The 'drawable area' is always considered '1.0' wide, and tall. If a
3d library, then it also has a depth of '1.0'. Drawing & etc.
functions always use this particular floating-point coordinate system.
Resizing the drawable area does not modify this coordinate scheme: no
matter what the size of the drawable area is, it's dimensions are
always 1.0*1.0(*1.0). After all, a viewport will ALWAYS be exactly 1
viewport in width, and 1 viewport in height. From what I read, this is
not what SVG does; the other two suggestions are:
2) The drawable area can be queried for it's dimensions in pixels (or
voxels if a 3d library). This coordinate system is not used by
graphics functions, it is only provided for informational purposes
(e.g. to choose texture resolutions).
3) The drawable area can be asked for it's real-world dimensions
(inches, centimeters, etc.) but is not required to provide them. This
coordinate system is provided for the same purpose as the pixel
coordinate system.

But, again, this wouldn't be for SDL2 itself, just for a graphics
library sitting on top of it.
_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org



--
//David Olofson - Consultant, Developer, Artist, Open Source Advocate

.--- Games, examples, libraries, scripting, sound, music, graphics ---.
|   http://consulting.olofson.net          http://olofsonarcade.com   |
'---------------------------------------------------------------------'
_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org


SDL2 Graphics API, was Re: compiling with SDL_NO_COMPAT
Mason Wheeler
Guest

What about it? The current licensing does allow static linking, and I might actually end
up going that route. Ideally, I'd like to be able to compile everything into the EXE. Less
clutter to deal with, plus that way the smartlinker can analyze stuff and trim out unused
functions to help keep the download size down. Never gonna happen, of course, but a
guy can dream, right?



From: Jonathan Dearborn
Subject: Re: [SDL] SDL2 Graphics API, was Re: compiling with SDL_NO_COMPAT

Mason, what about licensing that allows static linking?

Jonny D


On Thu, Jan 12, 2012 at 8:47 AM, David Olofson wrote:
Quote:

I can see the motivation for making it all modular from a library development
POV - but that doesn't mean it has to literally build as separate
libs/modules.

Linux kernel module style solution; allow optional extensions to be compiled
in, built as external libs, or not built at all?

Pre-built SDL would normally come with everything compiled in. If you want to
save every last byte (which seems kind of ridiculous unless you're aiming for
90% structured/procedural media - like me and like, five other gamedevs on the
planet), you either pick a modular build and drop in only the libs you need,
or you build your own single file version.

Not the most trivial solution, but one size does not fit all, obviously...


On Thursday 12 January 2012, at 14.16.19, Mason Wheeler
wrote:
Quote:
*blink* OK, this is getting ridiculous. What is with your obsession with
putting all possible functionality in extension libraries? It's like
you've never heard the term DLL Hell before!

It's bad enough as it is. Every bit of external code I use requires yet
another DLL in my deployment package. The worst offender (in my game
engine at least) is Firebird. There's no good reasonit should take 7

Quote:
differentDLLs just to support a simple embedded database, butit does! But
second on the list is SDL. I need two different DLLs just to open a
ubiquitous file format such as PNG or JPEG and draw it on the screen, plus
an external library for each file format I want to support, plus other
dependencies for those libraries (zlib for libpng, etc.) And heaven help
me if I want to include music-playing capabilities! And now you want to
make it even worse?!?


Give me one good reason why fundamental functionality that every game
is going to need, such as loading images, rendering, playing audio and
displaying text should *not* be included as part of the basic package in a
multimedia library whose name proclaims that its goal is to make
multimedia programming "simple"!

Sure, plugin support is a good idea, but let's be realistic and save it for
stuff that really is only optional, not for core functionality that
everyone is realistically likely to need!


________________________________
From: Jared Maddox
Subject: Re: [SDL] SDL2 Graphics API, was Re: compiling with SDL_NO_COMPAT

Quote:
Date: Wed, 4 Jan 2012 17:17:10 -0600
From: Bob Pendleton
Subject: Re: [SDL] compiling with SDL_NO_COMPAT

Does SDL2 need any graphics support in it? It needs to be able to load
images, it needs to be able to do the kinds of image manipulation that
a graphics program needs to do to prepare images for use by a graphics
program, and it would be nice if it had helper functions to hand off
images to the OpenGL and DirectX and whatever other high level
graphics API you are using.

In my opinion, SDL2 should have functions to load and save images and
hand them off to OpenGL, DirectX, and what ever other high level
graphics APIs may be in use.

In my opinion, SDL2 should have enough graphics functions to do basic
rendering (load textures to video card from memory, NOT from files; display
textures on screen), an API for extension libraries (where I would put
things like line-drawing, AND render-to-texture), and that's it for the
ACTUAL graphics. Everything else should be implemented in an extension
library, and if it can't be, then that indicates the SDL2 api doesn't
properly support extensions.

Whether rotation etc. belongs in SDL2 or in such an extension library
I'm not inclined to speak on. I will say that if it isn't implemented
for the software renderer, then it shouldn't be in the SDL core.

Regardless, I think it should always be possible to implement simple
graphical SDL programs with ONLY SDL, regardless of whether it's SDL
1.2, SDL2, etc.

Quote:
Date: Wed, 4 Jan 2012 19:58:23 -0500
From: Sam Lantinga
Subject: Re: [SDL] compiling with SDL_NO_COMPAT


Mason is absolutely right that the current API doesn't expose the things
he needs to extend the underlying rendering system. To some extent this
is intentional as the API user isn't supposed to have to worry about
whether the underlying rendering system is OpenGL, Direct3D or software.

I think that some exposure of the underlying system will probably be
necessary, for the sake of library interoperability. Hopefully a
handful of functions, enums, and structures, all declared in an
optional header file. Maybe call it "extension_api.h" or something.

Quote:
My feeling is that there are still one or two things that the API can use
to be really useful, such as render to texture, but I have drawn the line
at things that would expose 3D math - once you go there you're better off
using a real 3D engine or going directly to OpenGL/Direct3D.

I personally would prefer render-to-texture to be in an official
extension library, but I have a smart-phone that doesn't support it,
so I'm biased on this subject.

Quote:
Date: Sun, 8 Jan 2012 00:28:21 -0600
From: Bob Pendleton
To:
Subject: [SDL] SDL2 Graphics API, was Re: compiling with
SDL_NO_COMPAT
Message-ID:
<CAKabUS5zgoAeMixVjaie5841HSugn-42SPzcAW-hUGyL=
Content-Type: text/plain; charset=ISO-8859-1

If we are going to start talking about what features should be in the
graphics API for SDL2 I think we should start a new thread.

Fair enough.

Quote:
Since this is a 3D API based running on top of modern hardware I'm
going to suggest that it should include layers. We have a Z-Buffer,
even though we are just doing 2D doesn't mean we shouldn't use it. It
makes doing so many things so much easier.

Doesn't really strike me as sufficiently simple, but I've written
enough image-layering stuff that I'm willing to look at the current
software renderer, and attempt to add support, if Sam & the team
decide to go with it. It isn't like it's THAT complex if you aren't
using MMX & co. (which would be enough for the reference/emergency
backup implementation that the software renderer *optimistically* is).

That having been said, an api that supported it would need to be
defined for, e.g., clearing a single layer.

Quote:
Also, I've heard a lot of people talking about render to texture as a
requirement, and I'm very much in favor of that, so the minimum
version of OpenGL/DirectX that can be supported is the first version
that supports that functionality.

I'm in favor of using an *official* extension library (ala SDL_mixer)
for that, but see my note above Wink .

Quote:
While is is possible to build up all the graphic primitives, such as
lines, circles, and so on, from a simple scan line fill operation, it
is also pretty trivial to provide a set of solid fill and textured
primitives based on the underlying libraries. They do not have to
complex. It is possible to do textured primitives without ever
specifying a texture coordinate.

My perspective on primitives is that the core graphics api should
provide textured triangles or rectangles and nothing else. With a good
extension interface you can do a low-level implementation of other
standards (lines, circles, etc.), and without it you can use the
textured triangle/rectangle function to implement them.

Quote:
And, lets not forget fonts. People need fonts.

I'd say that should be kept separate, much as SDL_TTF currently is.
More prominent placement and mention of the 'standard support
libraries' (preferably mentioned and downloadable right beside the
core library) would be nice though.

Quote:
A critical problem is the coordinate system to be used. Using Pixels
*is* rather natural. But, then the library needs to be able to scale
everything for when the window changes size.

For the core Windowing/Graphics api, pixels make the most sense for
every platform where that's the 'native way'. For a richer Grahics api
that sits on top of SDL, instead of just extending it, I think the
field should be considered wide-open.

Quote:
To make a *modern* 2D system anyone want to talk about doing it based
on SVG instead of pixels?

I don't know SVG, but from a quick glance at what appeared to be the
relevant info, I'd suggest the following for a library that USES SDL2:
1) The 'drawable area' is always considered '1.0' wide, and tall. If a
3d library, then it also has a depth of '1.0'. Drawing & etc.
functions always use this particular floating-point coordinate system.
Resizing the drawable area does not modify this coordinate scheme: no
matter what the size of the drawable area is, it's dimensions are
always 1.0*1.0(*1.0). After all, a viewport will ALWAYS be exactly 1
viewport in width, and 1 viewport in height. From what I read, this is
not what SVG does; the other two suggestions are:
2) The drawable area can be queried for it's dimensions in pixels (or
voxels if a 3d library). This coordinate system is not used by
graphics functions, it is only provided for informational purposes
(e.g. to choose texture resolutions).
3) The drawable area can be asked for it's real-world dimensions
(inches, centimeters, etc.) but is not required to provide them. This
coordinate system is provided for the same purpose as the pixel
coordinate system.

But, again, this wouldn't be for SDL2 itself, just for a graphics
library sitting on top of it.
_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org



--
//David Olofson - Consultant, Developer, Artist, Open Source Advocate

.--- Games, examples, libraries, scripting, sound, music, graphics ---.
| http://consulting.olofson.net http://olofsonarcade.com |
'---------------------------------------------------------------------'
_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org







_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org
SDL2 Graphics API, was Re: compiling with SDL_NO_COMPAT
David Olofson
Guest

On Thursday 12 January 2012, at 16.17.53, Mason Wheeler
wrote:
Quote:
What about it? The current licensing does allow static linking, and I
might actually end up going that route. Ideally, I'd like to be able to
compile everything into the EXE. Less clutter to deal with, plus that way
the smartlinker can analyze stuff and trim out unused functions to help
keep the download size down.

...and it'll actually work without dirty tricks on Linux, where you normally
cannot just drop libs in the directory along with the executable.

OTOH, that would actually still work if the libs were loaded run-time, as one
normally does with OpenGL etc. So, either static or run-time - "normal" shared
libs is where the problems are.


Quote:
Never gonna happen, of course, but a guy can dream, right?

Well, there is static linking + object files...


Quote:
________________________________
From: Jonathan Dearborn
Subject: Re: [SDL] SDL2 Graphics API, was Re: compiling with SDL_NO_COMPAT


Mason, what about licensing that allows static linking?
[...]


--
//David Olofson - Consultant, Developer, Artist, Open Source Advocate

.--- Games, examples, libraries, scripting, sound, music, graphics ---.
| http://consulting.olofson.net http://olofsonarcade.com |
'---------------------------------------------------------------------'
_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org
SDL2 Graphics API, was Re: compiling with SDL_NO_COMPAT
Rainer Deyke
Guest

On 2012-01-12 14:16, Mason Wheeler wrote:
Quote:
Give me one good reason why fundamental functionality that every game
is going to need, such as loading images, rendering, playing audio and displaying
text should *not* be included as part of the basic package in a multimedia library
whose name proclaims that its goal is to make multimedia programming "simple"!

I don't use the SDL extension libraries. I don't need the SDL extension
libraries. I don't want the functionality from the SDL extension
libraries in the SDL core.

The problem with including it all in the core is that this actually
increases DLL hell. If the SDL core included the functionality of
SDL_image, then the SDL core would inherit all of the dependenies of
SDL_image, for example. Why should I need to ship a libpng DLL if my
program doesn't load PNG files?


--
Rainer Deyke

_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org
SDL2 Graphics API, was Re: compiling with SDL_NO_COMPAT
Bob


Joined: 19 Sep 2009
Posts: 185
On Sun, Jan 8, 2012 at 2:00 AM, Sam Lantinga wrote:
Quote:
Bob, I don't think we're quite ready to talk about this, unless you're
talking about something you'd like to write and maintain separately from
SDL. Smile

I waited a long time to reply because I wanted to "stir the pot" and
see what people had to say. I really do want to start a long term
project based on SDL2. But, mostly I wanted to see what people really
want.

Bob Pendleton

Quote:


On Sun, Jan 8, 2012 at 1:28 AM, Bob Pendleton wrote:
Quote:

If we are going to start talking about what features should be in the
graphics API for SDL2 I think we should start a new thread.

Since this is a 3D API based running on top of modern hardware I'm
going to suggest that it should include layers. We have a Z-Buffer,
even though we are just doing 2D doesn't mean we shouldn't use it. It
makes doing so many things so much easier.

Also, I've heard a lot of people talking about render to texture as a
requirement, and I'm very much in favor of that, so the minimum
version of OpenGL/DirectX that can be supported is the first version
that supports that functionality.

While is is possible to build up all the graphic primitives, such as
lines, circles, and so on, from a simple scan line fill operation, it
is also pretty trivial to provide a set of solid fill and textured
primitives based on the underlying libraries. They do not have to
complex. It is possible to do textured primitives without ever
specifying a texture coordinate.

And, lets not forget fonts. People need fonts.

A critical problem is the coordinate system to be used. Using Pixels
*is* rather natural. But, then the library needs to be able to scale
everything for when the window changes size.

Bob Pendleton

To make a *modern* 2D system anyone want to talk about doing it based
on SVG instead of pixels?

Bob Pendleton


On Fri, Jan 6, 2012 at 9:53 PM, bala_48225 wrote:
Quote:
So far I haven't used SDL 1.3, but as far as the proposed
split-from-base 2D
rendering API
is concerned, perhaps its features could be limited, basic and modern:

1) Allow the user to flip, rotate and scale images; 2) Provide multiple
alpha blend modes for
images, including multiply alpha, and 3) Provide something akin to SDL
1.2's
SDL_FillRect,
perhaps with blending modes as well.

The last feature could put the burden for simpler functions such as
lines
and circles on the user,
and the possibility of having a bloated fixed-function pipeline could
thus
be evaded. The only
other thing I can think is, maybe the rendering API could support less
platforms than the rest of SDL
does, thus decreasing its development overhead. For my part I don't see
why
any DirectX prior to 8 or
later than 9 would be necessary to support for a 2D API, and OpenGL
should
be supported from 1.0.
Those three features I suggested should update SDL to the 2010s while
keeping it low-level from the
user's perspective.

_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org




--
+-----------------------------------------------------------
+ Bob Pendleton: writer and programmer
+ email:
+ web: www.TheGrumpyProgrammer.com
_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org



_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org




--
+-----------------------------------------------------------
+ Bob Pendleton: writer and programmer
+ email:
+ web: www.TheGrumpyProgrammer.com
_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org
SDL2 Graphics API, was Re: compiling with SDL_NO_COMPAT
Bob


Joined: 19 Sep 2009
Posts: 185
On Thu, Jan 12, 2012 at 7:16 AM, Mason Wheeler wrote:
Quote:
*blink*  OK, this is getting ridiculous.  What is with your obsession with
putting all
possible functionality in extension libraries?  It's like you've never heard
the term
DLL Hell before!

It's bad enough as it is.  Every bit of external code I use requires yet
another DLL
in my deployment package.  The worst offender (in my game engine at least)
is
Firebird. There's no good reason it should take 7 different DLLs just to
support a
simple embedded database, but it does!  But second on the list is SDL.  I
need
two different DLLs just to open a ubiquitous file format such as PNG or JPEG
and draw it on the screen, plus an external library for each file format I
want
to support, plus other dependencies for those libraries (zlib for libpng,
etc.)
And heaven help me if I want to include music-playing capabilities! And now
you want to make it even worse?!?

Give me one good reason why fundamental functionality that every game
is going to need, such as loading images, rendering, playing audio and
displaying
text should *not* be included as part of the basic package in a multimedia
library
whose name proclaims that its goal is to make multimedia programming
"simple"!
Sure, plugin support is a good idea, but let's be realistic and save it for
stuff that
really is only optional, not for core functionality that everyone is
realistically
likely to need!

I think that SDL is rather like the elephant in the story of the blind
men and the elephant. Each of us sees something different depending on
how we approach the elephant. I've seen a number of arguments on the
list over whether the Simple in SDL means that the library it self is
simple, as in small, or simple to use, or simple to understand, or....
May I propose that the Simple in SDL may mean that it makes it Simple
to write cross platform extension libraries? :-)

I have come to see SDL as an abstraction layer for interacting with
the human interface hardware and the multimedia hardware available on
modern computer based devices. Basically, Apple, Google, MS, et al. do
there best to provide incompatible APIs and SDL make them all
compatible.

Seriously, I understand your point of view. Can a single library ever
contain everything that every end user needs? More realistically, can
a single library, provide 80% of what everyone needs and 100% of what
they need to implement the rest? You can hope to get 80%, but never
100%.

So, what do you want in a 2D API?

Bob Pendleton

Quote:

________________________________
From: Jared Maddox
Subject: Re: [SDL] SDL2 Graphics API, was Re: compiling with SDL_NO_COMPAT

Quote:
Date: Wed, 4 Jan 2012 17:17:10 -0600
From: Bob Pendleton
Subject: Re: [SDL] compiling with SDL_NO_COMPAT

Quote:
Does SDL2 need any graphics support in it? It needs to be able to load
images, it needs to be able to do the kinds of image manipulation that
a graphics program needs to do to prepare images for use by a graphics
program, and it would be nice if it had helper functions to hand off
images to the OpenGL and DirectX and whatever other high level
graphics API you are using.

In my opinion, SDL2 should have functions to load and save images and
hand them off to OpenGL, DirectX, and what ever other high level
graphics APIs may be in use.


In my opinion, SDL2 should have enough graphics functions to do basic
rendering (load textures to video card from memory, NOT from files; display
textures on screen), an API for extension libraries (where I would put
things
like line-drawing, AND render-to-texture), and that's it for the
ACTUAL graphics. Everything else should be implemented in an extension
library, and if it can't be, then that indicates the SDL2 api doesn't
properly support extensions.

Whether rotation etc. belongs in SDL2 or in such an extension library
I'm not inclined to speak on. I will say that if it isn't implemented
for the software renderer, then it shouldn't be in the SDL core.

Regardless, I think it should always be possible to implement simple
graphical SDL programs with ONLY SDL, regardless of whether it's SDL
1.2, SDL2, etc.



Quote:
Date: Wed, 4 Jan 2012 19:58:23 -0500
From: Sam Lantinga
Subject: Re: [SDL] compiling with SDL_NO_COMPAT


Quote:
Mason is absolutely right that the current API doesn't expose the things
he
needs to extend the underlying rendering system.  To some extent this is
intentional as the API user isn't supposed to have to worry about whether
the underlying rendering system is OpenGL, Direct3D or software.


I think that some exposure of the underlying system will probably be
necessary, for the sake of library interoperability. Hopefully a
handful of functions, enums, and structures, all declared in an
optional header file. Maybe call it "extension_api.h" or something.

Quote:
My feeling is that there are still one or two things that the API can use
to be really useful, such as render to texture, but I have drawn the line
at things that would expose 3D math - once you go there you're better off
using a real 3D engine or going directly to OpenGL/Direct3D.


I personally would prefer render-to-texture to be in an official
extension library, but I have a smart-phone that doesn't support it,
so I'm biased on this subject.



Quote:
Date: Sun, 8 Jan 2012 00:28:21 -0600
From: Bob Pendleton
To:
Subject: [SDL] SDL2 Graphics API, was Re:  compiling with
    SDL_NO_COMPAT
Message-ID:
    <CAKabUS5zgoAeMixVjaie5841HSugn-42SPzcAW-hUGyL=
Content-Type: text/plain; charset=ISO-8859-1

If we are going to start talking about what features should be in the
graphics API for SDL2 I think we should start a new thread.


Fair enough.

Quote:
Since this is a 3D API based running on top of modern hardware I'm
going to suggest that it should include layers. We have a Z-Buffer,
even though we are just doing 2D doesn't mean we shouldn't use it. It
makes doing so many things so much easier.


Doesn't really strike me as sufficiently simple, but I've written
enough image-layering stuff that I'm willing to look at the current
software renderer, and attempt to add support, if Sam & the team
decide to go with it. It isn't like it's THAT complex if you aren't
using MMX & co. (which would be enough for the reference/emergency
backup implementation that the software renderer *optimistically* is).

That having been said, an api that supported it would need to be
defined for, e.g., clearing a single layer.

Quote:
Also, I've heard a lot of people talking about render to texture as a
requirement, and I'm very much in favor of that, so the minimum
version of OpenGL/DirectX that can be supported is the first version
that supports that functionality.


I'm in favor of using an *official* extension library (ala SDL_mixer)
for that, but see my note above Wink .

Quote:
While is is possible to build up all the graphic primitives, such as
lines, circles, and so on, from a simple scan line fill operation, it
is also pretty trivial to provide a set of solid fill and textured
primitives based on the underlying libraries. They do not have to
complex. It is possible to do textured primitives without ever
specifying a texture coordinate.


My perspective on primitives is that the core graphics api should
provide textured triangles or rectangles and nothing else. With a good
extension interface you can do a low-level implementation of other
standards (lines, circles, etc.), and without it you can use the
textured triangle/rectangle function to implement them.

Quote:
And, lets not forget fonts. People need fonts.


I'd say that should be kept separate, much as SDL_TTF currently is.
More prominent placement and mention of the 'standard support
libraries' (preferably mentioned and downloadable right beside the
core library) would be nice though.

Quote:
A critical problem is the coordinate system to be used. Using Pixels
*is* rather natural. But, then the library needs to be able to scale
everything for when the window changes size.


For the core Windowing/Graphics api, pixels make the most sense for
every platform where that's the 'native way'. For a richer Grahics api
that sits on top of SDL, instead of just extending it, I think the
field should be considered wide-open.

Quote:
To make a *modern* 2D system anyone want to talk about doing it based
on SVG instead of pixels?


I don't know SVG, but from a quick glance at what appeared to be the
relevant info, I'd suggest the following for a library that USES SDL2:
1) The 'drawable area' is always considered '1.0' wide, and tall. If a
3d library, then it also has a depth of '1.0'. Drawing & etc.
functions always use this particular floating-point coordinate system.
Resizing the drawable area does not modify this coordinate scheme: no
matter what the size of the drawable area is, it's dimensions are
always 1.0*1.0(*1.0). After all, a viewport will ALWAYS be exactly 1
viewport in width, and 1 viewport in height. From what I read, this is
not what SVG does; the other two suggestions are:
2) The drawable area can be queried for it's dimensions in pixels (or
voxels if a 3d library). This coordinate system is not used by
graphics functions, it is only provided for informational purposes
(e.g. to choose texture resolutions).
3) The drawable area can be asked for it's real-world dimensions
(inches, centimeters, etc.) but is not required to provide them. This
coordinate system is provided for the same purpose as the pixel
coordinate system.

But, again, this wouldn't be for SDL2 itself, just for a graphics
library sitting on top of it.
_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org



_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org




--
+-----------------------------------------------------------
+ Bob Pendleton: writer and programmer
+ email:
+ web: www.TheGrumpyProgrammer.com
_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org
SDL2 Graphics API, was Re: compiling with SDL_NO_COMPAT
Pallav Nawani


Joined: 19 May 2011
Posts: 122
Location: Dehradun, India
SDL2 = SDL1.3 + Code for Rotation & stretch blit simultaneously
Or
SDL provides a way for the user to get hold of the underlying graphics
API (DirectX/OpenGL) to allow me to implement the above code in my game
without touching SDL itself.
:)


On 18-01-2012 10:42, Bob Pendleton wrote:
Quote:
On Sun, Jan 8, 2012 at 2:00 AM, Sam Lantinga wrote:
Quote:
Bob, I don't think we're quite ready to talk about this, unless you're
talking about something you'd like to write and maintain separately from
SDL. Smile
I waited a long time to reply because I wanted to "stir the pot" and
see what people had to say. I really do want to start a long term
project based on SDL2. But, mostly I wanted to see what people really
want.

Bob Pendleton

Quote:

On Sun, Jan 8, 2012 at 1:28 AM, Bob Pendleton wrote:
Quote:
If we are going to start talking about what features should be in the
graphics API for SDL2 I think we should start a new thread.

Since this is a 3D API based running on top of modern hardware I'm
going to suggest that it should include layers. We have a Z-Buffer,
even though we are just doing 2D doesn't mean we shouldn't use it. It
makes doing so many things so much easier.

Also, I've heard a lot of people talking about render to texture as a
requirement, and I'm very much in favor of that, so the minimum
version of OpenGL/DirectX that can be supported is the first version
that supports that functionality.

While is is possible to build up all the graphic primitives, such as
lines, circles, and so on, from a simple scan line fill operation, it
is also pretty trivial to provide a set of solid fill and textured
primitives based on the underlying libraries. They do not have to
complex. It is possible to do textured primitives without ever
specifying a texture coordinate.

And, lets not forget fonts. People need fonts.

A critical problem is the coordinate system to be used. Using Pixels
*is* rather natural. But, then the library needs to be able to scale
everything for when the window changes size.

Bob Pendleton

To make a *modern* 2D system anyone want to talk about doing it based
on SVG instead of pixels?

Bob Pendleton


On Fri, Jan 6, 2012 at 9:53 PM, bala_48225 wrote:
Quote:
So far I haven't used SDL 1.3, but as far as the proposed
split-from-base 2D
rendering API
is concerned, perhaps its features could be limited, basic and modern:

1) Allow the user to flip, rotate and scale images; 2) Provide multiple
alpha blend modes for
images, including multiply alpha, and 3) Provide something akin to SDL
1.2's
SDL_FillRect,
perhaps with blending modes as well.

The last feature could put the burden for simpler functions such as
lines
and circles on the user,
and the possibility of having a bloated fixed-function pipeline could
thus
be evaded. The only
other thing I can think is, maybe the rendering API could support less
platforms than the rest of SDL
does, thus decreasing its development overhead. For my part I don't see
why
any DirectX prior to 8 or
later than 9 would be necessary to support for a 2D API, and OpenGL
should
be supported from 1.0.
Those three features I suggested should update SDL to the 2010s while
keeping it low-level from the
user's perspective.

_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org



--
+-----------------------------------------------------------
+ Bob Pendleton: writer and programmer
+ email:
+ web: www.TheGrumpyProgrammer.com
_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org


_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org




--
*Pallav Nawani*
*Game Designer/Writer/CEO*
http://www.ironcode.com
Twitter: http://twitter.com/Ironcode_Gaming
Facebook: http://www.facebook.com/Ironcode.Gaming
Mobile: 9997478768
_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org
SDL2 Graphics API, was Re: compiling with SDL_NO_COMPAT
Vittorio Giovara
Guest

+1 for either ideas;
++1 for both ideas together


On Wed, Jan 18, 2012 at 11:21 AM, Pallav Nawani wrote:
Quote:

SDL2 = SDL1.3  + Code for Rotation & stretch blit simultaneously
Or
SDL provides a way for the user to get hold of the underlying graphics API
(DirectX/OpenGL) to allow me to implement the above code in my game without
touching SDL itself.
:)



On 18-01-2012 10:42, Bob Pendleton wrote:
Quote:

On Sun, Jan 8, 2012 at 2:00 AM, Sam Lantinga  wrote:
Quote:

Bob, I don't think we're quite ready to talk about this, unless you're
talking about something you'd like to write and maintain separately from
SDL. Smile

I waited a long time to reply because I wanted to "stir the pot" and
see what people had to say. I really do want to start a long term
project based on SDL2. But, mostly I wanted to see what people really
want.

Bob Pendleton

Quote:

On Sun, Jan 8, 2012 at 1:28 AM, Bob Pendleton  wrote:
Quote:

If we are going to start talking about what features should be in the
graphics API for SDL2 I think we should start a new thread.

Since this is a 3D API based running on top of modern hardware I'm
going to suggest that it should include layers. We have a Z-Buffer,
even though we are just doing 2D doesn't mean we shouldn't use it. It
makes doing so many things so much easier.

Also, I've heard a lot of people talking about render to texture as a
requirement, and I'm very much in favor of that, so the minimum
version of OpenGL/DirectX that can be supported is the first version
that supports that functionality.

While is is possible to build up all the graphic primitives, such as
lines, circles, and so on, from a simple scan line fill operation, it
is also pretty trivial to provide a set of solid fill and textured
primitives based on the underlying libraries. They do not have to
complex. It is possible to do textured primitives without ever
specifying a texture coordinate.

And, lets not forget fonts. People need fonts.

A critical problem is the coordinate system to be used. Using Pixels
*is* rather natural. But, then the library needs to be able to scale
everything for when the window changes size.

Bob Pendleton

To make a *modern* 2D system anyone want to talk about doing it based
on SVG instead of pixels?

Bob Pendleton


On Fri, Jan 6, 2012 at 9:53 PM, bala_48225  wrote:
Quote:

So far I haven't used SDL 1.3, but as far as the proposed
split-from-base 2D
rendering API
is concerned, perhaps its features could be limited, basic and modern:

1) Allow the user to flip, rotate and scale images; 2) Provide multiple
alpha blend modes for
images, including multiply alpha, and 3) Provide something akin to SDL
1.2's
SDL_FillRect,
perhaps with blending modes as well.

The last feature could put the burden for simpler functions such as
lines
and circles on the user,
and the possibility of having a bloated fixed-function pipeline could
thus
be evaded. The only
other thing I can think is, maybe the rendering API could support less
platforms than the rest of SDL
does, thus decreasing its development overhead. For my part I don't see
why
any DirectX prior to 8 or
later than 9 would be necessary to support for a 2D API, and OpenGL
should
be supported from 1.0.
Those three features I suggested should update SDL to the 2010s while
keeping it low-level from the
user's perspective.

_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org



--
+-----------------------------------------------------------
+ Bob Pendleton: writer and programmer
+ email:
+ web: www.TheGrumpyProgrammer.com
_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org



_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org




--
*Pallav Nawani*
*Game Designer/Writer/CEO*
http://www.ironcode.com
Twitter: http://twitter.com/Ironcode_Gaming
Facebook: http://www.facebook.com/Ironcode.Gaming
Mobile: 9997478768

_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org
_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org
SDL2 Graphics API, was Re: compiling with SDL_NO_COMPAT
Sam Lantinga


Joined: 10 Sep 2009
Posts: 1765
SDL already provides a way for the user to use the underlying graphics API.  The only reason the current code in SDL_render.h couldn't be pulled out as a separate library now is that SDL_video.c calls it to support SDL_CreateWindowSurface()  Smile

Cheers!

On Wed, Jan 18, 2012 at 5:21 AM, Pallav Nawani wrote:
Quote:

SDL2 = SDL1.3  + Code for Rotation & stretch blit simultaneously
Or
SDL provides a way for the user to get hold of the underlying graphics API (DirectX/OpenGL) to allow me to implement the above code in my game without touching SDL itself.
:)


On 18-01-2012 10:42, Bob Pendleton wrote:
Quote:
On Sun, Jan 8, 2012 at 2:00 AM, Sam Lantinga  wrote:
Quote:
Bob, I don't think we're quite ready to talk about this, unless you're
talking about something you'd like to write and maintain separately from
SDL. Smile
I waited a long time to reply because I wanted to "stir the pot" and
see what people had to say. I really do want to start a long term
project based on SDL2. But, mostly I wanted to see what people really
want.

Bob Pendleton

Quote:

On Sun, Jan 8, 2012 at 1:28 AM, Bob Pendleton  wrote:
Quote:
If we are going to start talking about what features should be in the
graphics API for SDL2 I think we should start a new thread.

Since this is a 3D API based running on top of modern hardware I'm
going to suggest that it should include layers. We have a Z-Buffer,
even though we are just doing 2D doesn't mean we shouldn't use it. It
makes doing so many things so much easier.

Also, I've heard a lot of people talking about render to texture as a
requirement, and I'm very much in favor of that, so the minimum
version of OpenGL/DirectX that can be supported is the first version
that supports that functionality.

While is is possible to build up all the graphic primitives, such as
lines, circles, and so on, from a simple scan line fill operation, it
is also pretty trivial to provide a set of solid fill and textured
primitives based on the underlying libraries. They do not have to
complex. It is possible to do textured primitives without ever
specifying a texture coordinate.

And, lets not forget fonts. People need fonts.

A critical problem is the coordinate system to be used. Using Pixels
*is* rather natural. But, then the library needs to be able to scale
everything for when the window changes size.

Bob Pendleton

To make a *modern* 2D system anyone want to talk about doing it based
on SVG instead of pixels?

Bob Pendleton


On Fri, Jan 6, 2012 at 9:53 PM, bala_48225<bala_48225@yahoo.com>  wrote:
Quote:
So far I haven't used SDL 1.3, but as far as the proposed
split-from-base 2D
rendering API
is concerned, perhaps its features could be limited, basic and modern:

1) Allow the user to flip, rotate and scale images; 2) Provide multiple
alpha blend modes for
images, including multiply alpha, and 3) Provide something akin to SDL
1.2's
SDL_FillRect,
perhaps with blending modes as well.

The last feature could put the burden for simpler functions such as
lines
and circles on the user,
and the possibility of having a bloated fixed-function pipeline could
thus
be evaded. The only
other thing I can think is, maybe the rendering API could support less
platforms than the rest of SDL
does, thus decreasing its development overhead. For my part I don't see
why
any DirectX prior to 8 or
later than 9 would be necessary to support for a 2D API, and OpenGL
should
be supported from 1.0.
Those three features I suggested should update SDL to the 2010s while
keeping it low-level from the
user's perspective.

_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org



--
+-----------------------------------------------------------
+ Bob Pendleton: writer and programmer
+ email:
+ web: www.TheGrumpyProgrammer.com
_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org


_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org




--


*Pallav Nawani*
*Game Designer/Writer/CEO*
http://www.ironcode.com
Twitter: http://twitter.com/Ironcode_Gaming
Facebook: http://www.facebook.com/Ironcode.Gaming
Mobile: 9997478768
_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org


SDL2 Graphics API, was Re: compiling with SDL_NO_COMPAT
Brian Barrett
Guest

Hi,

What I have seen, in my copious time spent helping people on on
www.gamedev.net, is a large scale migration from SDL for many tasks.
Where once users were actively pushing beginner game programmers
towards SDL and pygame, they now are pushing SFML and various OpenGL
based Python libraries (even when the beginner has already chosen an
API!). When challenged, their usual reason for this is performance
related. There is also a perception that SDL is unmaintained and out
of date.

To a non-member of this list, SDL is in danger of appearing
irrelevant, unless you want to support niche platforms. I believe this
trend is a threat to the size and sustainability of the SDL community,
and thus to SDL itself in the long run.

The people want hardware acceleration by default, and they do not wish
to drop into OpenGL to scale or rotate sprites.

My own opinion is that I'd like it if the latter two could be
separated from the core SDL library, into a more advanced library
(like SDL_gfx, but expanded and hardware accelerated). SDL's built in
routines could then focus on axis aligned fast blitting and rectangle
filling, which can be implemented on pretty much any graphics
hardware.

Regards,
-- Brian


On 18 January 2012 05:55, Bob Pendleton wrote:
Quote:

So, what do you want in a 2D API?

Bob Pendleton
_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org
Re: SDL2 Graphics API, was Re: compiling with SDL_NO_COMPAT
RodrigoCard


Joined: 23 Apr 2011
Posts: 113
Location: Brazil
Is it too hard to change this and make SDL_render a separate API?

Sam Lantinga wrote:
SDL already provides a way for the user to use the underlying graphics API.  The only reason the current code in SDL_render.h couldn't be pulled out as a separate library now is that SDL_video.c calls it to support SDL_CreateWindowSurface()  Smile

Cheers!
SDL2 Graphics API, was Re: compiling with SDL_NO_COMPAT
Mason Wheeler
Guest

What do you mean? SDL does *not* already provide a way for the user to use the underlying graphics API, at least not in any meaningful way, since there is no way to obtain the native API handle of textures created through SDL, and nothing useful that a user of the library can do without that.



From: Sam Lantinga
To: SDL Development List
Sent: Wednesday, January 18, 2012 5:00 AM
Subject: Re: [SDL] SDL2 Graphics API, was Re: compiling with SDL_NO_COMPAT


SDL already provides a way for the user to use the underlying graphics API. The only reason the current code in SDL_render.h couldn't be pulled out as a separate library now is that SDL_video.c calls it to support SDL_CreateWindowSurface() Smile

Cheers!

On Wed, Jan 18, 2012 at 5:21 AM, Pallav Nawani wrote:
Quote:

SDL2 = SDL1.3 + Code for Rotation & stretch blit simultaneously
Or
SDL provides a way for the user to get hold of the underlying graphics API (DirectX/OpenGL) to allow me to implement the above code in my game without touching SDL itself.
:)


On 18-01-2012 10:42, Bob Pendleton wrote:
Quote:
On Sun, Jan 8, 2012 at 2:00 AM, Sam Lantinga wrote:
Quote:
Bob, I don't think we're quite ready to talk about this, unless you're
talking about something you'd like to write and maintain separately from
SDL. Smile
I waited a long time to reply because I wanted to "stir the pot" and
see what people had to say. I really do want to start a long term
project based on SDL2. But, mostly I wanted to see what people really
want.

Bob Pendleton

Quote:

On Sun, Jan 8, 2012 at 1:28 AM, Bob Pendleton wrote:
Quote:
If we are going to start talking about what features should be in the
graphics API for SDL2 I think we should start a new thread.

Since this is a 3D API based running on top of modern hardware I'm
going to suggest that it should include layers. We have a Z-Buffer,
even though we are just doing 2D doesn't mean we shouldn't use it. It
makes doing so many things so much easier.

Also, I've heard a lot of people talking about render to texture as a
requirement, and I'm very much in favor of that, so the minimum
version of OpenGL/DirectX that can be supported is the first version
that supports that functionality.

While is is possible to build up all the graphic primitives, such as
lines, circles, and so on, from a simple scan line fill operation, it
is also pretty trivial to provide a set of solid fill and textured
primitives based on the underlying libraries. They do not have to
complex. It is possible to do textured primitives without ever
specifying a texture coordinate.

And, lets not forget fonts. People need fonts.

A critical problem is the coordinate system to be used. Using Pixels
*is* rather natural. But, then the library needs to be able to scale
everything for when the window changes size.

Bob Pendleton

To make a *modern* 2D system anyone want to talk about doing it based
on SVG instead of pixels?

Bob Pendleton


On Fri, Jan 6, 2012 at 9:53 PM, bala_48225<bala_48225@yahoo.com> wrote:
Quote:
So far I haven't used SDL 1.3, but as far as the proposed
split-from-base 2D
rendering API
is concerned, perhaps its features could be limited, basic and modern:

1) Allow the user to flip, rotate and scale images; 2) Provide multiple
alpha blend modes for
images, including multiply alpha, and 3) Provide something akin to SDL
1.2's
SDL_FillRect,
perhaps with blending modes as well.

The last feature could put the burden for simpler functions such as
lines
and circles on the user,
and the possibility of having a bloated fixed-function pipeline could
thus
be evaded. The only
other thing I can think is, maybe the rendering API could support less
platforms than the rest of SDL
does, thus decreasing its development overhead. For my part I don't see
why
any DirectX prior to 8 or
later than 9 would be necessary to support for a 2D API, and OpenGL
should
be supported from 1.0.
Those three features I suggested should update SDL to the 2010s while
keeping it low-level from the
user's perspective.

_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org



--
+-----------------------------------------------------------
+ Bob Pendleton: writer and programmer
+ email:
+ web: www.TheGrumpyProgrammer.com
_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org


_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org




--


*Pallav Nawani*
*Game Designer/Writer/CEO*
http://www.ironcode.com
Twitter: http://twitter.com/Ironcode_Gaming
Facebook: http://www.facebook.com/Ironcode.Gaming
Mobile: 9997478768
_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org







_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org
SDL2 Graphics API, was Re: compiling with SDL_NO_COMPAT
Patrick Baggett
Guest

As it shouldn't. What's the point of crossplatform if you want to get at the API details. DX5 or SW or GL renderer? Who cares, if it works. Either the API should do that for you, or it shouldn't, but leaking implementation details is a terrible plan.

Patrick


On Wed, Jan 18, 2012 at 1:12 PM, Mason Wheeler wrote:
Quote:
What do you mean? SDL does *not* already provide a way for the user to use the underlying graphics API, at least not in any meaningful way, since there is no way to obtain the native API handle of textures created through SDL, and nothing useful that a user of the library can do without that.



From: Sam Lantinga
To: SDL Development List
Sent: Wednesday, January 18, 2012 5:00 AM
Subject: Re: [SDL] SDL2 Graphics API, was Re: compiling with SDL_NO_COMPAT


SDL already provides a way for the user to use the underlying graphics API.  The only reason the current code in SDL_render.h couldn't be pulled out as a separate library now is that SDL_video.c calls it to support SDL_CreateWindowSurface()  Smile

Cheers!

On Wed, Jan 18, 2012 at 5:21 AM, Pallav Nawani wrote:
Quote:

SDL2 = SDL1.3  + Code for Rotation & stretch blit simultaneously
Or
SDL provides a way for the user to get hold of the underlying graphics API (DirectX/OpenGL) to allow me to implement the above code in my game without touching SDL itself.
:)


On 18-01-2012 10:42, Bob Pendleton wrote:
Quote:
On Sun, Jan 8, 2012 at 2:00 AM, Sam Lantinga  wrote:
Quote:
Bob, I don't think we're quite ready to talk about this, unless you're
talking about something you'd like to write and maintain separately from
SDL. Smile
I waited a long time to reply because I wanted to "stir the pot" and
see what people had to say. I really do want to start a long term
project based on SDL2. But, mostly I wanted to see what people really
want.

Bob Pendleton

Quote:

On Sun, Jan 8, 2012 at 1:28 AM, Bob Pendleton  wrote:
Quote:
If we are going to start talking about what features should be in the
graphics API for SDL2 I think we should start a new thread.

Since this is a 3D API based running on top of modern hardware I'm
going to suggest that it should include layers. We have a Z-Buffer,
even though we are just doing 2D doesn't mean we shouldn't use it. It
makes doing so many things so much easier.

Also, I've heard a lot of people talking about render to texture as a
requirement, and I'm very much in favor of that, so the minimum
version of OpenGL/DirectX that can be supported is the first version
that supports that functionality.

While is is possible to build up all the graphic primitives, such as
lines, circles, and so on, from a simple scan line fill operation, it
is also pretty trivial to provide a set of solid fill and textured
primitives based on the underlying libraries. They do not have to
complex. It is possible to do textured primitives without ever
specifying a texture coordinate.

And, lets not forget fonts. People need fonts.

A critical problem is the coordinate system to be used. Using Pixels
*is* rather natural. But, then the library needs to be able to scale
everything for when the window changes size.

Bob Pendleton

To make a *modern* 2D system anyone want to talk about doing it based
on SVG instead of pixels?

Bob Pendleton


On Fri, Jan 6, 2012 at 9:53 PM, bala_48225<bala_48225@yahoo.com>  wrote:
Quote:
So far I haven't used SDL 1.3, but as far as the proposed
split-from-base 2D
rendering API
is concerned, perhaps its features could be limited, basic and modern:

1) Allow the user to flip, rotate and scale images; 2) Provide multiple
alpha blend modes for
images, including multiply alpha, and 3) Provide something akin to SDL
1.2's
SDL_FillRect,
perhaps with blending modes as well.

The last feature could put the burden for simpler functions such as
lines
and circles on the user,
and the possibility of having a bloated fixed-function pipeline could
thus
be evaded. The only
other thing I can think is, maybe the rendering API could support less
platforms than the rest of SDL
does, thus decreasing its development overhead. For my part I don't see
why
any DirectX prior to 8 or
later than 9 would be necessary to support for a 2D API, and OpenGL
should
be supported from 1.0.
Those three features I suggested should update SDL to the 2010s while
keeping it low-level from the
user's perspective.

_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org



--
+-----------------------------------------------------------
+ Bob Pendleton: writer and programmer
+ email:
+ web: www.TheGrumpyProgrammer.com
_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org


_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org




--


*Pallav Nawani*
*Game Designer/Writer/CEO*
http://www.ironcode.com
Twitter: http://twitter.com/Ironcode_Gaming
Facebook: http://www.facebook.com/Ironcode.Gaming
Mobile: 9997478768
_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org







_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org







_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org

Lazy Foo'


Joined: 21 Sep 2009
Posts: 17
Remember guys, any idea that gets implemented comes with an opportunity cost. All the bells and whistles being added to SDL 1.3 is holding up a stable release with OpenGL 3+ functionality. Currently I'm using freeGLUT for OpenGL 3. freeGLUT.

I study work flow management and I found the GTD method to be one of the more effective methods. Programmers tend to like it because it essentially boils down business to a recursive algorithm. :D

According to the GTD Method: the steps to successful planning are:
-Defining Purpose
-Defining what success looks like
-Brainstorming
-Organizing
-Identifying what needs to get done

Here's my two cents regarding SDL 2.0:

-Defining Purpose
Quote:
Simple DirectMedia Layer is a cross-platform multimedia library designed to provide low level access to audio, keyboard, mouse, joystick, 3D hardware via OpenGL, and 2D video framebuffer.

I think SDL's goal moving forward is to be the go to library when you want to do multiplatform games and simulations development. When companies like EA or Activision want to make multiple ports, SDL should be the clear choice

-Outcome envisioning
How would SDL 2.0 achieve what's mentioned above?
-The APIs should do one thing really well as opposed to doing many things poorly. This Unix philosophy has served me well.
-Let's not reinvent the wheel, only make it multiplatform.
-A new focus on being multiplatform as opposed to cross platform. Code once compile anywhere is great, but what if I want to support iOS achievements for the iPad version of my game? SDL 2.0 should allow us to take advantage of our platform's native features
-OpenGL users have always wanted a DirectX the same way Direct3D users have. SDL being the ultimate OGL support library will ensure it's relevance in the future.

-Brainstorming
Key to brainstorming is go for quantity not quality. Many "stupid" ideas have turned out to be great ("A free encyclopedia that's maintained by people that aren't paid? No way that'll do better than Encarta"). So let's see what we have on the table (plus a few of my own):

-OGL/D3D wrapper
-Primitive geometry
-Abolishing software rendering
-Depth buffer

-OpenGL features
I'm currently doing some major OGL development and it's a pain having to lug around 8 different libraries. Having an SDL_OGL extension library to facilitate OpenGL development that does what D3DX does and more will make SDL of the more influential open source libraries. Some feature I would like to see for SDL_OGL
-A GLEW like functionality that will grab all of the OpenGL function pointers in one call
-SDL_image augmentations to allow for easier texture generation. This will mean not having to add DevIL to my project. (Nice library, but I would like few dlls)
-SDL_TTF augmentations to allow for easier bitmap font textures IE
Code:
TTF_GetFloorPlanTexture( font, pixels, clipRects, &clipRectCount )

This'll save me having to touch TrueType directly
-Built in model parsers for popular formats like obj and collada
-Built in functionality to load text file shaders
-Some stock GLSL/HLSL shaders to get up an running fast

-Filesystem access
For a previous game a I made, I had each user have their own their own directory save files. I had to use boost to traverse and create/delete directories. Having this integrated into SDL would have made things much nicer.

-Matrix/vector library
If we're going to have primitives, having a matrix library to transform the geometry is a must have for games and physics simulations. This'll also save me having to link glmatrix.

-Installation library
A set of functions that will make installing applications easier IE getting the program/my documents path.

-Organizing
This the part where we take all of the ideas and evaluate them to see what we can do with them

-Identifying what needs to get done
From here we can create a todo list and execute

You'll have to excuse me from coming out of nowhere and appointing myself scrum master. I just wanted to share a management strategy that always helped with my projects and to throw in some of my ideas for what I would like in my SDL apps.
Lazy Foo'


Joined: 21 Sep 2009
Posts: 17
Also, is there any way to change the release schedule for SDL? All the features planned for SDL don't have to be implemented all at once.

We could have:
SDL 1.3: OpenGL 3+ support, hardware rendering, multi window support, Context controls, force feedback, touch
SDL 1.4: Audio recording, features abc
SDL 1.5: Features xyz
SDL 1.6: etc

I just think that having these features stable and in the hands of the SDL users would be a better return on investment that to release them all at once.
SDL2 Graphics API, was Re: compiling with SDL_NO_COMPAT
Bob


Joined: 19 Sep 2009
Posts: 185
Sam, I think this discussion is bringing out a basic problem caused by
what people believe SDL *IS*. That is, if you ask each user *WHY* SDL
exists, my guess is that you will mostly get one of about 3 different
answers, and of course you will get a bunch of other off the wall
answers :-). The thing is, the developers will, or a least should, all
answer that question one way. And, SDL will develop to meet the way
the developers answer the question.

I, for one, have always seen it as an abstraction layer written by
professionals for professionals. As as result, the focus on providing
the basics and support to access professional level APIs and write
extension libraries makes perfect sense to me.

But, my answer to the question doesn't really matter, what is your
answer, and what is Ryan's answer?

Bob Pendleton

On Wed, Jan 18, 2012 at 7:00 AM, Sam Lantinga wrote:
Quote:
SDL already provides a way for the user to use the underlying graphics API.
 The only reason the current code in SDL_render.h couldn't be pulled out as
a separate library now is that SDL_video.c calls it to support
SDL_CreateWindowSurface()  :)

Cheers!


On Wed, Jan 18, 2012 at 5:21 AM, Pallav Nawani
wrote:
Quote:


SDL2 = SDL1.3  + Code for Rotation & stretch blit simultaneously
Or
SDL provides a way for the user to get hold of the underlying graphics API
(DirectX/OpenGL) to allow me to implement the above code in my game without
touching SDL itself.
:)



On 18-01-2012 10:42, Bob Pendleton wrote:
Quote:

On Sun, Jan 8, 2012 at 2:00 AM, Sam Lantinga  wrote:
Quote:

Bob, I don't think we're quite ready to talk about this, unless you're
talking about something you'd like to write and maintain separately from
SDL. Smile

I waited a long time to reply because I wanted to "stir the pot" and
see what people had to say. I really do want to start a long term
project based on SDL2. But, mostly I wanted to see what people really
want.

Bob Pendleton

Quote:

On Sun, Jan 8, 2012 at 1:28 AM, Bob Pendleton  wrote:
Quote:

If we are going to start talking about what features should be in the
graphics API for SDL2 I think we should start a new thread.

Since this is a 3D API based running on top of modern hardware I'm
going to suggest that it should include layers. We have a Z-Buffer,
even though we are just doing 2D doesn't mean we shouldn't use it. It
makes doing so many things so much easier.

Also, I've heard a lot of people talking about render to texture as a
requirement, and I'm very much in favor of that, so the minimum
version of OpenGL/DirectX that can be supported is the first version
that supports that functionality.

While is is possible to build up all the graphic primitives, such as
lines, circles, and so on, from a simple scan line fill operation, it
is also pretty trivial to provide a set of solid fill and textured
primitives based on the underlying libraries. They do not have to
complex. It is possible to do textured primitives without ever
specifying a texture coordinate.

And, lets not forget fonts. People need fonts.

A critical problem is the coordinate system to be used. Using Pixels
*is* rather natural. But, then the library needs to be able to scale
everything for when the window changes size.

Bob Pendleton

To make a *modern* 2D system anyone want to talk about doing it based
on SVG instead of pixels?

Bob Pendleton


On Fri, Jan 6, 2012 at 9:53 PM, bala_48225
 wrote:
Quote:

So far I haven't used SDL 1.3, but as far as the proposed
split-from-base 2D
rendering API
is concerned, perhaps its features could be limited, basic and modern:

1) Allow the user to flip, rotate and scale images; 2) Provide
multiple
alpha blend modes for
images, including multiply alpha, and 3) Provide something akin to SDL
1.2's
SDL_FillRect,
perhaps with blending modes as well.

The last feature could put the burden for simpler functions such as
lines
and circles on the user,
and the possibility of having a bloated fixed-function pipeline could
thus
be evaded. The only
other thing I can think is, maybe the rendering API could support less
platforms than the rest of SDL
does, thus decreasing its development overhead. For my part I don't
see
why
any DirectX prior to 8 or
later than 9 would be necessary to support for a 2D API, and OpenGL
should
be supported from 1.0.
Those three features I suggested should update SDL to the 2010s while
keeping it low-level from the
user's perspective.

_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org



--
+-----------------------------------------------------------
+ Bob Pendleton: writer and programmer
+ email:
+ web: www.TheGrumpyProgrammer.com
_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org



_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org




--
*Pallav Nawani*
*Game Designer/Writer/CEO*
http://www.ironcode.com
Twitter: http://twitter.com/Ironcode_Gaming
Facebook: http://www.facebook.com/Ironcode.Gaming
Mobile: 9997478768

_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org



_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org




--
+-----------------------------------------------------------
+ Bob Pendleton: writer and programmer
+ email:
+ web: www.TheGrumpyProgrammer.com
_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org
SDL2 Graphics API, was Re: compiling with SDL_NO_COMPAT
Brian Barnes
Guest

Bob wrote:

Quote:
I, for one, have always seen it as an abstraction layer written by
professionals for professionals. As as result, the focus on providing
the basics and support to access professional level APIs and write
extension libraries makes perfect sense to me.

I'm not Sam or Ryan but I'll give my two cents, and it's the same as
yours. It's an abstraction layer for OSes. It gives you the ability to
write cross platform code for the nasty OS interactions bit; events,
screen resolution, sound, etc.

Example: dim3 IS a development environment. You make games in it. dim3
uses SDL to be cross platform, it runs on OS X, windows, linux, and iOS
all with the same data. Scruffy3D (no, I'm not advertising, using as an
example) is written in dim3, which uses SDL.

Scruffy3D -> dim3 -> SDL

Each thing is in it's proper layer and can be developed separately
without interfering with releases or anything else.

I know a lot of people really have a horse in this race, but you
shouldn't have a horse because it makes things easier on you, you should
have a horse because it makes the product your using better.

Nobody likes having multiple libraries. I hate it. But I think if
there is a 2D drawing layer, it should be outside of SDL, especially as
it can be decoupled and developed faster without each other holding it up.

I'm actually more strict about this than anybody would be; I don't even
think networking or image loading should be in SDL (they might be
separate libraries, I don't use them.) Sockets are 99.9% cross-platform
and libPNG is, too. Drawing? OpenGL.

My bottom line is this: SDL should allow you to forget what OS you are
on. If there is a cross-platform way to do it, it might not be
something for SDL proper, but a good candidate for another library.

(Note: This will all have to be a completely new SDL, obviously, as it
wouldn't be backwards compatible in some areas.)

(Side Note: Sam, I gave Ryan a free copy of Scruffy3D (OS X), if you'd
like a free app store code, drop me an email!)

[>] Brian
_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org
SDL2 Graphics API, was Re: compiling with SDL_NO_COMPAT
Sam Lantinga


Joined: 10 Sep 2009
Posts: 1765
Not too hard, you just have to find replacements for:CreateWindowFramebuffer()
UpdateWindowFramebuffer()
DestroyWindowFramebuffer()


in SDL_video.c

On Wed, Jan 18, 2012 at 1:46 PM, RodrigoCard wrote:
Quote:
Is it too hard to change this and make SDL_render a separate API?




Sam Lantinga wrote:

SDL already provides a way for the user to use the underlying graphics API.  The only reason the current code in SDL_render.h couldn't be pulled out as a separate library now is that SDL_video.c calls it to support SDL_CreateWindowSurface()  

Cheers!






_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org

SDL2 Graphics API, was Re: compiling with SDL_NO_COMPAT
Bob


Joined: 19 Sep 2009
Posts: 185
On Wed, Jan 18, 2012 at 3:04 PM, Brian Barnes wrote:
Quote:
Bob wrote:

Quote:
I, for one, have always seen it as an abstraction layer written by
professionals for professionals. As as result, the focus on providing
the basics and support to access professional level APIs and write
extension libraries makes perfect sense to me.


I'm not Sam or Ryan but I'll give my two cents, and it's the same as yours.
 It's an abstraction layer for OSes.  It gives you the ability to write
cross platform code for the nasty OS interactions bit; events, screen
resolution, sound, etc.

Example: dim3 IS a development environment.  You make games in it.  dim3
uses SDL to be cross platform, it runs on OS X, windows, linux, and iOS all
with the same data.  Scruffy3D (no, I'm not advertising, using as an
example) is written in dim3, which uses SDL.

Scruffy3D -> dim3 -> SDL

Each thing is in it's proper layer and can be developed separately without
interfering with releases or anything else.

I know a lot of people really have a horse in this race, but you shouldn't
have a horse because it makes things easier on you, you should have a horse
because it makes the product your using better.

Nobody likes having multiple libraries.  I hate it.  But I think if there is
a 2D drawing layer, it should be outside of SDL, especially as it can be
decoupled and developed faster without each other holding it up.

I'm actually more strict about this than anybody would be; I don't even
think networking or image loading should be in SDL (they might be separate
libraries, I don't use them.)  Sockets are 99.9% cross-platform and libPNG
is, too.  Drawing?  OpenGL.

My bottom line is this:  SDL should allow you to forget what OS you are on.
 If there is a cross-platform way to do it, it might not be something for
SDL proper, but a good candidate for another library.

(Note: This will all have to be a completely new SDL, obviously, as it
wouldn't be backwards compatible in some areas.)

(Side Note: Sam, I gave Ryan a free copy of Scruffy3D (OS X), if you'd like
a free app store code, drop me an email!)

Very interesting work! I appreciate the offer of a free copy, but I
can't afford the the Mac needed to take advantage of it :-)

Bob Pendleton

Quote:

[>] Brian

_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org



--
+-----------------------------------------------------------
+ Bob Pendleton: writer and programmer
+ email:
+ web: www.TheGrumpyProgrammer.com
_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org
SDL2 Graphics API, was Re: compiling with SDL_NO_COMPAT
Sam Lantinga


Joined: 10 Sep 2009
Posts: 1765
Mason, I've said it over and over.. If you're OpenGL specific, be OpenGL specific! :)You should bite the bullet and write the 1000 lines of code or so it takes to do texture management and simple drawing.


For that matter, if you want to create an OpenGL-specific library that otherwise emulates the SDL_render API, you're more than welcome to do that too! :)


If you're going pure OpenGL and there's something in SDL that's blocking you from doing that effectively then it should definitely be fixed.


See ya!

On Wed, Jan 18, 2012 at 2:12 PM, Mason Wheeler wrote:
Quote:
What do you mean? SDL does *not* already provide a way for the user to use the underlying graphics API, at least not in any meaningful way, since there is no way to obtain the native API handle of textures created through SDL, and nothing useful that a user of the library can do without that.



From: Sam Lantinga
To: SDL Development List
Sent: Wednesday, January 18, 2012 5:00 AM
Subject: Re: [SDL] SDL2 Graphics API, was Re: compiling with SDL_NO_COMPAT



SDL already provides a way for the user to use the underlying graphics API.  The only reason the current code in SDL_render.h couldn't be pulled out as a separate library now is that SDL_video.c calls it to support SDL_CreateWindowSurface()  Smile

Cheers!

On Wed, Jan 18, 2012 at 5:21 AM, Pallav Nawani wrote:
Quote:

SDL2 = SDL1.3  + Code for Rotation & stretch blit simultaneously
Or
SDL provides a way for the user to get hold of the underlying graphics API (DirectX/OpenGL) to allow me to implement the above code in my game without touching SDL itself.
:)


On 18-01-2012 10:42, Bob Pendleton wrote:
Quote:
On Sun, Jan 8, 2012 at 2:00 AM, Sam Lantinga  wrote:
Quote:
Bob, I don't think we're quite ready to talk about this, unless you're
talking about something you'd like to write and maintain separately from
SDL. Smile
I waited a long time to reply because I wanted to "stir the pot" and
see what people had to say. I really do want to start a long term
project based on SDL2. But, mostly I wanted to see what people really
want.

Bob Pendleton

Quote:

On Sun, Jan 8, 2012 at 1:28 AM, Bob Pendleton  wrote:
Quote:
If we are going to start talking about what features should be in the
graphics API for SDL2 I think we should start a new thread.

Since this is a 3D API based running on top of modern hardware I'm
going to suggest that it should include layers. We have a Z-Buffer,
even though we are just doing 2D doesn't mean we shouldn't use it. It
makes doing so many things so much easier.

Also, I've heard a lot of people talking about render to texture as a
requirement, and I'm very much in favor of that, so the minimum
version of OpenGL/DirectX that can be supported is the first version
that supports that functionality.

While is is possible to build up all the graphic primitives, such as
lines, circles, and so on, from a simple scan line fill operation, it
is also pretty trivial to provide a set of solid fill and textured
primitives based on the underlying libraries. They do not have to
complex. It is possible to do textured primitives without ever
specifying a texture coordinate.

And, lets not forget fonts. People need fonts.

A critical problem is the coordinate system to be used. Using Pixels
*is* rather natural. But, then the library needs to be able to scale
everything for when the window changes size.

Bob Pendleton

To make a *modern* 2D system anyone want to talk about doing it based
on SVG instead of pixels?

Bob Pendleton


On Fri, Jan 6, 2012 at 9:53 PM, bala_48225<bala_48225@yahoo.com>  wrote:
Quote:
So far I haven't used SDL 1.3, but as far as the proposed
split-from-base 2D
rendering API
is concerned, perhaps its features could be limited, basic and modern:

1) Allow the user to flip, rotate and scale images; 2) Provide multiple
alpha blend modes for
images, including multiply alpha, and 3) Provide something akin to SDL
1.2's
SDL_FillRect,
perhaps with blending modes as well.

The last feature could put the burden for simpler functions such as
lines
and circles on the user,
and the possibility of having a bloated fixed-function pipeline could
thus
be evaded. The only
other thing I can think is, maybe the rendering API could support less
platforms than the rest of SDL
does, thus decreasing its development overhead. For my part I don't see
why
any DirectX prior to 8 or
later than 9 would be necessary to support for a 2D API, and OpenGL
should
be supported from 1.0.
Those three features I suggested should update SDL to the 2010s while
keeping it low-level from the
user's perspective.

_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org



--
+-----------------------------------------------------------
+ Bob Pendleton: writer and programmer
+ email:
+ web: www.TheGrumpyProgrammer.com
_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org


_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org




--


*Pallav Nawani*
*Game Designer/Writer/CEO*
http://www.ironcode.com
Twitter: http://twitter.com/Ironcode_Gaming
Facebook: http://www.facebook.com/Ironcode.Gaming
Mobile: 9997478768
_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org







_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org









_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org

SDL2 Graphics API, was Re: compiling with SDL_NO_COMPAT
Sam Lantinga


Joined: 10 Sep 2009
Posts: 1765
SDL was never designed as a beginner game programmers' tool.  I'm frankly astonished and pleased that so many young people learned with it and made so many amazing things with it, but it was always designed as a porting layer for games and the base for cross-platform engines.


Both Ryan and I have families and more than full time jobs.  Any time we spend on SDL is either selfish, getting our games on multiple platforms, or out of love for the community and the project.


There's a reason the code is under the zlib license and listed on the website as community supported.  There's no way we can give everybody everything they want in our free time.  This code isn't ours, it's yours!  Make it your own, contribute to it, improve it!  If there's some way it doesn't meet your needs, improve it if it makes sense, or find a tool that does!


In that vein, lots of people have asked for OpenGL 3.X support. It's something I would love to see in SDL 1.3, but I don't have time or expertise to implement it.  If you do, speak up!  Do it! You have tremendous power if you simply reach for it. :)


Cheers,

On Wed, Jan 18, 2012 at 10:34 AM, Brian Barrett wrote:
Quote:
Hi,

What I have seen, in my copious time spent helping people on on
www.gamedev.net, is a large scale migration from SDL for many tasks.
Where once users were actively pushing beginner game programmers
towards SDL and pygame, they now are pushing SFML and various OpenGL
based Python libraries (even when the beginner has already chosen an
API!). When challenged, their usual reason for this is performance
related. There is also a perception that SDL is unmaintained and out
of date.

To a non-member of this list, SDL is in danger of appearing
irrelevant, unless you want to support niche platforms. I believe this
trend is a threat to the size and sustainability of the SDL community,
and thus to SDL itself in the long run.

The people want hardware acceleration by default, and they do not wish
to drop into OpenGL to scale or rotate sprites.

My own opinion is that I'd like it if the latter two could be
separated from the core SDL library, into a more advanced library
(like SDL_gfx, but expanded and hardware accelerated). SDL's built in
routines could then focus on axis aligned fast blitting and rectangle
filling, which can be implemented on pretty much any graphics
hardware.

Regards,
        -- Brian


On 18 January 2012 05:55, Bob Pendleton wrote:
Quote:

So, what do you want in a 2D API?

Bob Pendleton

_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org


SDL2 Graphics API, was Re: compiling with SDL_NO_COMPAT
Mason Wheeler
Guest

Yes, you've said it over and over, and it sounds ridiculous every time you say it. Which I've pointed out over and over.


But since we're apparently rehashing this again, here's what that sounds like from my end:


"If SDL's rendering API provides 95% of what you need, but there's one feature that you absolutely do need, that SDL doesn't provide, then the appropriate solution is to throw out the entirety of what SDL's rendering API can already do for you, and all of the man-decades of experience and accumulated bugfixes that it represents, and re-implement the whole thing from scratch yourself, just so you can gain access to the one feature you need."


Seriously, Sam, do you have any idea how *insane* that sounds?!? I'm sorry, but I can't think of any other word that describes it.


Mason



From: Sam Lantinga
To: Mason Wheeler; SDL Development List
Sent: Wednesday, January 18, 2012 6:52 PM
Subject: Re: [SDL] SDL2 Graphics API, was Re: compiling with SDL_NO_COMPAT


Mason, I've said it over and over.. If you're OpenGL specific, be OpenGL specific! :)You should bite the bullet and write the 1000 lines of code or so it takes to do texture management and simple drawing.


For that matter, if you want to create an OpenGL-specific library that otherwise emulates the SDL_render API, you're more than welcome to do that too! :)


If you're going pure OpenGL and there's something in SDL that's blocking you from doing that effectively then it should definitely be fixed.


See ya!

On Wed, Jan 18, 2012 at 2:12 PM, Mason Wheeler wrote:
Quote:
What do you mean? SDL does *not* already provide a way for the user to use the underlying graphics API, at least not in any meaningful way, since there is no way to obtain the native API handle of textures created through SDL, and nothing useful that a user of the library can do without that.



From: Sam Lantinga
To: SDL Development List
Sent: Wednesday, January 18, 2012 5:00 AM
Subject: Re: [SDL] SDL2 Graphics API, was Re: compiling with SDL_NO_COMPAT



SDL already provides a way for the user to use the underlying graphics API. The only reason the current code in SDL_render.h couldn't be pulled out as a separate library now is that SDL_video.c calls it to support SDL_CreateWindowSurface() Smile

Cheers!

On Wed, Jan 18, 2012 at 5:21 AM, Pallav Nawani wrote:
Quote:

SDL2 = SDL1.3 + Code for Rotation & stretch blit simultaneously
Or
SDL provides a way for the user to get hold of the underlying graphics API (DirectX/OpenGL) to allow me to implement the above code in my game without touching SDL itself.
:)


On 18-01-2012 10:42, Bob Pendleton wrote:
Quote:
On Sun, Jan 8, 2012 at 2:00 AM, Sam Lantinga wrote:
Quote:
Bob, I don't think we're quite ready to talk about this, unless you're
talking about something you'd like to write and maintain separately from
SDL. Smile
I waited a long time to reply because I wanted to "stir the pot" and
see what people had to say. I really do want to start a long term
project based on SDL2. But, mostly I wanted to see what people really
want.

Bob Pendleton

Quote:

On Sun, Jan 8, 2012 at 1:28 AM, Bob Pendleton wrote:
Quote:
If we are going to start talking about what features should be in the
graphics API for SDL2 I think we should start a new thread.

Since this is a 3D API based running on top of modern hardware I'm
going to suggest that it should include layers. We have a Z-Buffer,
even though we are just doing 2D doesn't mean we shouldn't use it. It
makes doing so many things so much easier.

Also, I've heard a lot of people talking about render to texture as a
requirement, and I'm very much in favor of that, so the minimum
version of OpenGL/DirectX that can be supported is the first version
that supports that functionality.

While is is possible to build up all the graphic primitives, such as
lines, circles, and so on, from a simple scan line fill operation, it
is also pretty trivial to provide a set of solid fill and textured
primitives based on the underlying libraries. They do not have to
complex. It is possible to do textured primitives without ever
specifying a texture coordinate.

And, lets not forget fonts. People need fonts.

A critical problem is the coordinate system to be used. Using Pixels
*is* rather natural. But, then the library needs to be able to scale
everything for when the window changes size.

Bob Pendleton

To make a *modern* 2D system anyone want to talk about doing it based
on SVG instead of pixels?

Bob Pendleton


On Fri, Jan 6, 2012 at 9:53 PM, bala_48225<bala_48225@yahoo.com> wrote:
Quote:
So far I haven't used SDL 1.3, but as far as the proposed
split-from-base 2D
rendering API
is concerned, perhaps its features could be limited, basic and modern:

1) Allow the user to flip, rotate and scale images; 2) Provide multiple
alpha blend modes for
images, including multiply alpha, and 3) Provide something akin to SDL
1.2's
SDL_FillRect,
perhaps with blending modes as well.

The last feature could put the burden for simpler functions such as
lines
and circles on the user,
and the possibility of having a bloated fixed-function pipeline could
thus
be evaded. The only
other thing I can think is, maybe the rendering API could support less
platforms than the rest of SDL
does, thus decreasing its development overhead. For my part I don't see
why
any DirectX prior to 8 or
later than 9 would be necessary to support for a 2D API, and OpenGL
should
be supported from 1.0.
Those three features I suggested should update SDL to the 2010s while
keeping it low-level from the
user's perspective.

_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org



--
+-----------------------------------------------------------
+ Bob Pendleton: writer and programmer
+ email:
+ web: www.TheGrumpyProgrammer.com
_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org


_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org




--


*Pallav Nawani*
*Game Designer/Writer/CEO*
http://www.ironcode.com
Twitter: http://twitter.com/Ironcode_Gaming
Facebook: http://www.facebook.com/Ironcode.Gaming
Mobile: 9997478768
_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org







_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org









_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org

SDL2 Graphics API, was Re: compiling with SDL_NO_COMPAT
Sam Lantinga


Joined: 10 Sep 2009
Posts: 1765
Well, since I wrote it and it didn't take me very long, and I'm not a skilled a 3D guy, I figured it wouldn't take you long either.  It does sound silly when you say it that way though. Smile

In any case, I would be much more open to adding rotation, etc. to SDL_render if it's pulled out of SDL13 proper where it's not constrained by code size and timeframe.  I want to add render to texture support before the code gets moved, but if pulling it out to a separate library is something you're interested in doing and maintaining, I'll definitely help coordinate it with you.

On Wed, Jan 18, 2012 at 10:10 PM, Mason Wheeler wrote:
Quote:
Yes, you've said it over and over, and it sounds ridiculous every time you say it.  Which I've pointed out over and over.


But since we're apparently rehashing this again, here's what that sounds like from my end:


"If SDL's rendering API provides 95% of what you need, but there's one feature that you absolutely do need, that SDL doesn't provide, then the appropriate solution is to throw out the entirety of what SDL's rendering API can already do for you, and all of the man-decades of experience and accumulated bugfixes that it represents, and re-implement the whole thing from scratch yourself, just so you can gain access to the one feature you need."


Seriously, Sam, do you have any idea how *insane* that sounds?!?  I'm sorry, but I can't think of any other word that describes it.


Mason



From: Sam Lantinga

To: Mason Wheeler; SDL Development List
Sent: Wednesday, January 18, 2012 6:52 PM
Subject: Re: [SDL] SDL2 Graphics API, was Re: compiling with SDL_NO_COMPAT




Mason, I've said it over and over.. If you're OpenGL specific, be OpenGL specific! :)You should bite the bullet and write the 1000 lines of code or so it takes to do texture management and simple drawing.


For that matter, if you want to create an OpenGL-specific library that otherwise emulates the SDL_render API, you're more than welcome to do that too! :)


If you're going pure OpenGL and there's something in SDL that's blocking you from doing that effectively then it should definitely be fixed.


See ya!

On Wed, Jan 18, 2012 at 2:12 PM, Mason Wheeler wrote:
Quote:
What do you mean? SDL does *not* already provide a way for the user to use the underlying graphics API, at least not in any meaningful way, since there is no way to obtain the native API handle of textures created through SDL, and nothing useful that a user of the library can do without that.



From: Sam Lantinga
To: SDL Development List
Sent: Wednesday, January 18, 2012 5:00 AM
Subject: Re: [SDL] SDL2 Graphics API, was Re: compiling with SDL_NO_COMPAT



SDL already provides a way for the user to use the underlying graphics API.  The only reason the current code in SDL_render.h couldn't be pulled out as a separate library now is that SDL_video.c calls it to support SDL_CreateWindowSurface()  Smile

Cheers!

On Wed, Jan 18, 2012 at 5:21 AM, Pallav Nawani wrote:
Quote:

SDL2 = SDL1.3  + Code for Rotation & stretch blit simultaneously
Or
SDL provides a way for the user to get hold of the underlying graphics API (DirectX/OpenGL) to allow me to implement the above code in my game without touching SDL itself.
:)


On 18-01-2012 10:42, Bob Pendleton wrote:
Quote:
On Sun, Jan 8, 2012 at 2:00 AM, Sam Lantinga  wrote:
Quote:
Bob, I don't think we're quite ready to talk about this, unless you're
talking about something you'd like to write and maintain separately from
SDL. Smile
I waited a long time to reply because I wanted to "stir the pot" and
see what people had to say. I really do want to start a long term
project based on SDL2. But, mostly I wanted to see what people really
want.

Bob Pendleton

Quote:

On Sun, Jan 8, 2012 at 1:28 AM, Bob Pendleton  wrote:
Quote:
If we are going to start talking about what features should be in the
graphics API for SDL2 I think we should start a new thread.

Since this is a 3D API based running on top of modern hardware I'm
going to suggest that it should include layers. We have a Z-Buffer,
even though we are just doing 2D doesn't mean we shouldn't use it. It
makes doing so many things so much easier.

Also, I've heard a lot of people talking about render to texture as a
requirement, and I'm very much in favor of that, so the minimum
version of OpenGL/DirectX that can be supported is the first version
that supports that functionality.

While is is possible to build up all the graphic primitives, such as
lines, circles, and so on, from a simple scan line fill operation, it
is also pretty trivial to provide a set of solid fill and textured
primitives based on the underlying libraries. They do not have to
complex. It is possible to do textured primitives without ever
specifying a texture coordinate.

And, lets not forget fonts. People need fonts.

A critical problem is the coordinate system to be used. Using Pixels
*is* rather natural. But, then the library needs to be able to scale
everything for when the window changes size.

Bob Pendleton

To make a *modern* 2D system anyone want to talk about doing it based
on SVG instead of pixels?

Bob Pendleton


On Fri, Jan 6, 2012 at 9:53 PM, bala_48225<bala_48225@yahoo.com>  wrote:
Quote:
So far I haven't used SDL 1.3, but as far as the proposed
split-from-base 2D
rendering API
is concerned, perhaps its features could be limited, basic and modern:

1) Allow the user to flip, rotate and scale images; 2) Provide multiple
alpha blend modes for
images, including multiply alpha, and 3) Provide something akin to SDL
1.2's
SDL_FillRect,
perhaps with blending modes as well.

The last feature could put the burden for simpler functions such as
lines
and circles on the user,
and the possibility of having a bloated fixed-function pipeline could
thus
be evaded. The only
other thing I can think is, maybe the rendering API could support less
platforms than the rest of SDL
does, thus decreasing its development overhead. For my part I don't see
why
any DirectX prior to 8 or
later than 9 would be necessary to support for a 2D API, and OpenGL
should
be supported from 1.0.
Those three features I suggested should update SDL to the 2010s while
keeping it low-level from the
user's perspective.

_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org



--
+-----------------------------------------------------------
+ Bob Pendleton: writer and programmer
+ email:
+ web: www.TheGrumpyProgrammer.com
_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org


_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org




--


*Pallav Nawani*
*Game Designer/Writer/CEO*
http://www.ironcode.com
Twitter: http://twitter.com/Ironcode_Gaming
Facebook: http://www.facebook.com/Ironcode.Gaming
Mobile: 9997478768
_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org







_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org









_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org














_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org

SDL2 Graphics API, was Re: compiling with SDL_NO_COMPAT
Mason Wheeler
Guest

Actually, I've never seen the point of pulling functionality out into its own libraries, especially core functionality that every game is likely to end up needing. If I was the one building it, there would be no "SDL_Image" or "SDL_Mixer" or "SDL_TTF". All that basic stuff would be part of SDL.dll. Keeps the DLL hell problem down that way.



From: Sam Lantinga
To: Mason Wheeler; SDL Development List
Sent: Wednesday, January 18, 2012 7:16 PM
Subject: Re: [SDL] SDL2 Graphics API, was Re: compiling with SDL_NO_COMPAT


Well, since I wrote it and it didn't take me very long, and I'm not that skilled a 3D guy, I figured it wouldn't take you long either. It does sound silly when you say it that way though. :)

In any case, I would be much more open to adding rotation, etc. to SDL_render if it's pulled out of SDL13 proper where it's not constrained by code size and other constraints. I want to add render to texture support before the code gets moved, but if pulling it out to a separate library is something you're interested in, you're more than welcome to!

On Wed, Jan 18, 2012 at 10:10 PM, Mason Wheeler wrote:
Quote:
Yes, you've said it over and over, and it sounds ridiculous every time you say it. Which I've pointed out over and over.


But since we're apparently rehashing this again, here's what that sounds like from my end:


"If SDL's rendering API provides 95% of what you need, but there's one feature that you absolutely do need, that SDL doesn't provide, then the appropriate solution is to throw out the entirety of what SDL's rendering API can already do for you, and all of the man-decades of experience and accumulated bugfixes that it represents, and re-implement the whole thing from scratch yourself, just so you can gain access to the one feature you need."


Seriously, Sam, do you have any idea how *insane* that sounds?!? I'm sorry, but I can't think of any other word that describes it.


Mason



From: Sam Lantinga

To: Mason Wheeler; SDL Development List
Sent: Wednesday, January 18, 2012 6:52 PM
Subject: Re: [SDL] SDL2 Graphics API, was Re: compiling with SDL_NO_COMPAT




Mason, I've said it over and over.. If you're OpenGL specific, be OpenGL specific! :)You should bite the bullet and write the 1000 lines of code or so it takes to do texture management and simple drawing.


For that matter, if you want to create an OpenGL-specific library that otherwise emulates the SDL_render API, you're more than welcome to do that too! :)


If you're going pure OpenGL and there's something in SDL that's blocking you from doing that effectively then it should definitely be fixed.


See ya!

On Wed, Jan 18, 2012 at 2:12 PM, Mason Wheeler wrote:
Quote:
What do you mean? SDL does *not* already provide a way for the user to use the underlying graphics API, at least not in any meaningful way, since there is no way to obtain the native API handle of textures created through SDL, and nothing useful that a user of the library can do without that.



From: Sam Lantinga
To: SDL Development List
Sent: Wednesday, January 18, 2012 5:00 AM
Subject: Re: [SDL] SDL2 Graphics API, was Re: compiling with SDL_NO_COMPAT



SDL already provides a way for the user to use the underlying graphics API. The only reason the current code in SDL_render.h couldn't be pulled out as a separate library now is that SDL_video.c calls it to support SDL_CreateWindowSurface() Smile

Cheers!

On Wed, Jan 18, 2012 at 5:21 AM, Pallav Nawani wrote:
Quote:

SDL2 = SDL1.3 + Code for Rotation & stretch blit simultaneously
Or
SDL provides a way for the user to get hold of the underlying graphics API (DirectX/OpenGL) to allow me to implement the above code in my game without touching SDL itself.
:)


On 18-01-2012 10:42, Bob Pendleton wrote:
Quote:
On Sun, Jan 8, 2012 at 2:00 AM, Sam Lantinga wrote:
Quote:
Bob, I don't think we're quite ready to talk about this, unless you're
talking about something you'd like to write and maintain separately from
SDL. Smile
I waited a long time to reply because I wanted to "stir the pot" and
see what people had to say. I really do want to start a long term
project based on SDL2. But, mostly I wanted to see what people really
want.

Bob Pendleton

Quote:

On Sun, Jan 8, 2012 at 1:28 AM, Bob Pendleton wrote:
Quote:
If we are going to start talking about what features should be in the
graphics API for SDL2 I think we should start a new thread.

Since this is a 3D API based running on top of modern hardware I'm
going to suggest that it should include layers. We have a Z-Buffer,
even though we are just doing 2D doesn't mean we shouldn't use it. It
makes doing so many things so much easier.

Also, I've heard a lot of people talking about render to texture as a
requirement, and I'm very much in favor of that, so the minimum
version of OpenGL/DirectX that can be supported is the first version
that supports that functionality.

While is is possible to build up all the graphic primitives, such as
lines, circles, and so on, from a simple scan line fill operation, it
is also pretty trivial to provide a set of solid fill and textured
primitives based on the underlying libraries. They do not have to
complex. It is possible to do textured primitives without ever
specifying a texture coordinate.

And, lets not forget fonts. People need fonts.

A critical problem is the coordinate system to be used. Using Pixels
*is* rather natural. But, then the library needs to be able to scale
everything for when the window changes size.

Bob Pendleton

To make a *modern* 2D system anyone want to talk about doing it based
on SVG instead of pixels?

Bob Pendleton


On Fri, Jan 6, 2012 at 9:53 PM, bala_48225<bala_48225@yahoo.com> wrote:
Quote:
So far I haven't used SDL 1.3, but as far as the proposed
split-from-base 2D
rendering API
is concerned, perhaps its features could be limited, basic and modern:

1) Allow the user to flip, rotate and scale images; 2) Provide multiple
alpha blend modes for
images, including multiply alpha, and 3) Provide something akin to SDL
1.2's
SDL_FillRect,
perhaps with blending modes as well.

The last feature could put the burden for simpler functions such as
lines
and circles on the user,
and the possibility of having a bloated fixed-function pipeline could
thus
be evaded. The only
other thing I can think is, maybe the rendering API could support less
platforms than the rest of SDL
does, thus decreasing its development overhead. For my part I don't see
why
any DirectX prior to 8 or
later than 9 would be necessary to support for a 2D API, and OpenGL
should
be supported from 1.0.
Those three features I suggested should update SDL to the 2010s while
keeping it low-level from the
user's perspective.

_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org



--
+-----------------------------------------------------------
+ Bob Pendleton: writer and programmer
+ email:
+ web: www.TheGrumpyProgrammer.com
_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org


_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org




--


*Pallav Nawani*
*Game Designer/Writer/CEO*
http://www.ironcode.com
Twitter: http://twitter.com/Ironcode_Gaming
Facebook: http://www.facebook.com/Ironcode.Gaming
Mobile: 9997478768
_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org







_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org









_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org














_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org

SDL2 Graphics API, was Re: compiling with SDL_NO_COMPAT
Mike Shal
Guest

On Wed, Jan 18, 2012 at 10:27 PM, Mason Wheeler wrote:
Quote:
Actually, I've never seen the point of pulling functionality out into its
own libraries, especially core functionality that every game is likely to
end up needing.  If I was the one building it, there would be no "SDL_Image"
or "SDL_Mixer" or "SDL_TTF".  All that basic stuff would be part of
SDL.dll.  Keeps the DLL hell problem down that way.

IIRC "DLL hell" only arises if the library installation is poorly
managed - I don't think that is a problem for this case. (Maybe you
have evidence to the contrary?) These libraries can conceivably be
used individually, such as for an image conversion program, or a
separate sound mixing program. In other words, you can link more to
SDL than just a full-fledged game!

And given the license and Sam's recent sentiments, there's no reason
you can't be the one building it, and distributing a megaSDL.dll that
includes everything for people who find that useful. Shouldn't be too
hard to automate :)

-Mike
_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org
SDL2 Graphics API, was Re: compiling with SDL_NO_COMPAT
Patrick Baggett
Guest

Quote:
(Side Note: Sam, I gave Ryan a free copy of Scruffy3D (OS X), if you'd like
Quote:
> a free app store code, drop me an email!)



Very interesting work! I appreciate the offer of a free copy, but I
can't afford the the Mac needed to take advantage of it :-)


Heh, I think this was directed at Sam. Wink
SDL2 Graphics API, was Re: compiling with SDL_NO_COMPAT
Jared Maddox
Guest

Quote:
Date: Wed, 18 Jan 2012 13:20:07 -0600
From: Patrick Baggett
To: Mason Wheeler, SDL Development List

Subject: Re: [SDL] SDL2 Graphics API, was Re: compiling with
SDL_NO_COMPAT
Message-ID:
<CAEk2Stnb=0n-iFNXwQe9ZUE9qG9kgLPzxkG74=zGyxfUuG3Y=
Content-Type: text/plain; charset="iso-8859-1"

As it shouldn't. What's the point of crossplatform if you want to get at
the API details. DX5 or SW or GL renderer? Who cares, if it works. Either
the API should do that for you, or it shouldn't, but leaking implementation
details is a terrible plan.


Short answer: It makes extension libraries (let's say a theoretical
OpenGL5_on_SDL2 library: yes, I know there isn't an OpenGL5 yet)
actually POSSIBLE.

However, as far as leaking those details to the average program,
certainly not. They should be accessed by using specific header files
and the code those files make availible. For most programmers, such
details should simply be a credible rumor that they've never bothered
with (and will probably never have to, since most probably won't write
an extension library).



Quote:
Date: Wed, 18 Jan 2012 12:11:48 -0800
From: "Lazy Foo'"
To:
Subject: [SDL] SDL2 Graphics API, was Re: compiling with SDL_NO_COMPAT
Message-ID:
Content-Type: text/plain; charset="iso-8859-1"


Quote:
-Abolishing software rendering

On general principles I prefer that the software renderer remain in
place, but I'd be fine with an extension library version too.

Quote:
-Depth buffer

I don't see a lot of need for this, but as said before, I've written
things like this before (specifically, a system that was intended to
implement REALLY GENERIC windowing on other graphics apis), so I'm
willing to implement it (approximately, since I don't recall details
being suggested) as Bob's layering idea.

Quote:
-Built in model parsers for popular formats like obj and collada

This really sounds like something for a SDL_3Dformat library.

Quote:
-Filesystem access
For a previous game a I made, I had each user have their own their own
directory save files. I had to use boost to traverse and create/delete
directories. Having this integrated into SDL would have made things much
nicer.

This would definitely be nice, I can't immediately recall any standard
library functions for C/C++ that do this (Noone recommend Boost, I
hate the documetation, and consider it bloatware).

Quote:
-Matrix/vector library
If we're going to have primitives, having a matrix library to transform the
geometry is a must have for games and physics simulations. This'll also save
me having to link glmatrix.

I technically started one, but I quickly decided "It would be so much
smarter for them to use someone else's math library" so I stopped
pretty quick.

Quote:
-Installation library
A set of functions that will make installing applications easier IE getting
the program/my documents path.

I've been thinking about writing a basic program to launch other
programs and accept commands from them (e.g. "wait 1 second, run
updater, wait for updater to exit, relaunch me", though not in that
particular format). Not quite the same thing, but certainly related. A
SDL version of the common pipe() function (starts a program, making
the standard input and output of the program being launched availible
to the program calling pipe) would be a good support function. Can you
think of any others? I think it might be worth writing a support
library.

Quote:
You'll have to excuse me from coming out of nowhere and appointing myself
scrum master. I just wanted to share a management strategy that always
helped with my projects and to throw in some of my ideas for what I would
like in my SDL apps.

If you're scrumm master, then that means you have to play
editor/minion-master to us lemmings Wink
After all, from what I understand, the successful 'bazaar' projects
are mostly those with good organization.



Quote:
Date: Wed, 18 Jan 2012 19:27:32 -0800 (PST)
From: Mason Wheeler
To: sdl
Subject: Re: [SDL] SDL2 Graphics API, was Re: compiling with
SDL_NO_COMPAT
Message-ID:

Content-Type: text/plain; charset="iso-8859-1"

Actually, I've never seen the point of pulling functionality out into its
own libraries, especially core functionality that every game is likely to
end up needing.

Pulling functionality into different libraries forces those various
pieces to be more self-contained (not entirely, just more). This makes
maintinence easier, because you're less likely to accidentally clobber
something else, AND it's easier to understand the system, because the
system is smaller.

For an example of this NOT being done, look at Windows: Before WinXP,
everything was so interrelated that it was essentially impossible to
run the 'true windows kernel' on an embedded device, Windows CE was
apparently a completely different system that was written to provide a
strongly similar interface. Why? Because the 'true windows kernel' was
essentially almost EVERYTHING on the Windows CD, it couldn't really
run without ALL of those features. With Windows XP, Microsoft began a
program of trimming down the kernel; I understand that they've now
gotten it small enough that the minimal kernel is acceptably small for
smartphones (Windows XP itself apparently mostly just involved cleanup
so that this could happen, rather than benefiting from it directly).

Quote:
If I was the one building it, there would be no "SDL_Image"
or "SDL_Mixer" or "SDL_TTF". All that basic stuff would be part of
SDL.dll. Keeps the DLL hell problem down that way.

Now this, I have a slightly different perspective on: specifically, I
like David Olofson's suggestion (link:
http://lists.libsdl.org/pipermail/sdl-libsdl.org/2012-January/083383.html)
of linking SEVERAL libraries into one dll. However, I'm not certain
how easy this would be. Would this play nicely with the build
frameworks? I've never tried to look into SDL's build systems (and I
don't do Mac developement), how well would this work? Is this a
seriously credible idea? How would it interact with custom-compiled
versions, would replacing a trimmed-down version with the official
version work?
_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org
Re: SDL2 Graphics API, was Re: compiling with SDL_NO_COMPAT
Lazy Foo'


Joined: 21 Sep 2009
Posts: 17
Sam Lantinga wrote:

Both Ryan and I have families and more than full time jobs.  Any time we spend on SDL is either selfish, getting our games on multiple platforms, or out of love for the community and the project.


...Sam you just gave me one hell of an idea.

I'm CS major, but I have a background in marketing (I plan on getting an MBA in the future). Would you be willing to spend some time in recruiting new SDL developers that actually have the free time to develop?

I have experience kickstarting unpaid projects due to the fact that the developers don't have time. That's my job as Publicity Chair for my student ACM chapter.
SDL2 Graphics API, was Re: compiling with SDL_NO_COMPAT
Forest Hale
Guest

For what it's worth I'd really love to have a way to get hold of D3D9, D3D10, and D3D11 contexts from SDL, right now I only support these APIs in my native (non-SDL) version of my game engine which is
a shame, considering all the other functionality that SDL nicely provides.

I know it is possible to use SDL_CreateWindowFrom or something of that nature to do this and get most of the SDL functionality back, but that still has the burden in the wrong place, SDL has taken up
the task of creating the window and it does a fine job, I'd just like more choices of graphics API when I create the window, where I am planning to directly use said graphics API.

On 01/18/2012 02:21 AM, Pallav Nawani wrote:
Quote:

SDL2 = SDL1.3 + Code for Rotation & stretch blit simultaneously
Or
SDL provides a way for the user to get hold of the underlying graphics API (DirectX/OpenGL) to allow me to implement the above code in my game without touching SDL itself.
:)


On 18-01-2012 10:42, Bob Pendleton wrote:
Quote:
On Sun, Jan 8, 2012 at 2:00 AM, Sam Lantinga wrote:
Quote:
Bob, I don't think we're quite ready to talk about this, unless you're
talking about something you'd like to write and maintain separately from
SDL. Smile
I waited a long time to reply because I wanted to "stir the pot" and
see what people had to say. I really do want to start a long term
project based on SDL2. But, mostly I wanted to see what people really
want.

Bob Pendleton

Quote:

On Sun, Jan 8, 2012 at 1:28 AM, Bob Pendleton wrote:
Quote:
If we are going to start talking about what features should be in the
graphics API for SDL2 I think we should start a new thread.

Since this is a 3D API based running on top of modern hardware I'm
going to suggest that it should include layers. We have a Z-Buffer,
even though we are just doing 2D doesn't mean we shouldn't use it. It
makes doing so many things so much easier.

Also, I've heard a lot of people talking about render to texture as a
requirement, and I'm very much in favor of that, so the minimum
version of OpenGL/DirectX that can be supported is the first version
that supports that functionality.

While is is possible to build up all the graphic primitives, such as
lines, circles, and so on, from a simple scan line fill operation, it
is also pretty trivial to provide a set of solid fill and textured
primitives based on the underlying libraries. They do not have to
complex. It is possible to do textured primitives without ever
specifying a texture coordinate.

And, lets not forget fonts. People need fonts.

A critical problem is the coordinate system to be used. Using Pixels
*is* rather natural. But, then the library needs to be able to scale
everything for when the window changes size.

Bob Pendleton

To make a *modern* 2D system anyone want to talk about doing it based
on SVG instead of pixels?

Bob Pendleton


On Fri, Jan 6, 2012 at 9:53 PM, bala_48225 wrote:
Quote:
So far I haven't used SDL 1.3, but as far as the proposed
split-from-base 2D
rendering API
is concerned, perhaps its features could be limited, basic and modern:

1) Allow the user to flip, rotate and scale images; 2) Provide multiple
alpha blend modes for
images, including multiply alpha, and 3) Provide something akin to SDL
1.2's
SDL_FillRect,
perhaps with blending modes as well.

The last feature could put the burden for simpler functions such as
lines
and circles on the user,
and the possibility of having a bloated fixed-function pipeline could
thus
be evaded. The only
other thing I can think is, maybe the rendering API could support less
platforms than the rest of SDL
does, thus decreasing its development overhead. For my part I don't see
why
any DirectX prior to 8 or
later than 9 would be necessary to support for a 2D API, and OpenGL
should
be supported from 1.0.
Those three features I suggested should update SDL to the 2010s while
keeping it low-level from the
user's perspective.

_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org



--
+-----------------------------------------------------------
+ Bob Pendleton: writer and programmer
+ email:
+ web: www.TheGrumpyProgrammer.com
_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org


_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org






--
LordHavoc
Author of DarkPlaces Quake1 engine - http://icculus.org/twilight/darkplaces
Co-designer of Nexuiz - http://alientrap.org/nexuiz
"War does not prove who is right, it proves who is left." - Unknown
"Any sufficiently advanced technology is indistinguishable from a rigged demo." - James Klass
"A game is a series of interesting choices." - Sid Meier

_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org
SDL2 Graphics API, was Re: compiling with SDL_NO_COMPAT
Jonny D


Joined: 12 Sep 2009
Posts: 932
Tear out the rendering API!  It is important to have access to the renderer-specific handles so that SDL supports instead of restricts.  SDL has so many use-cases, that flexibility is important.  DLL hell is the price to pay for dynamic modularity.  This shouldn't even be a concern when considering what SDL should do.  Modularity is a Good Thing!

Jonny D
SDL2 Graphics API, was Re: compiling with SDL_NO_COMPAT
Sam Lantinga


Joined: 10 Sep 2009
Posts: 1765
There's nothing special in SDL_render_d3d.c that you can't do from your own code.  It's a great example of using D3D with SDL.

On Thu, Jan 19, 2012 at 6:13 AM, Forest Hale wrote:
Quote:
For what it's worth I'd really love to have a way to get hold of D3D9, D3D10, and D3D11 contexts from SDL, right now I only support these APIs in my native (non-SDL) version of my game engine which is
a shame, considering all the other functionality that SDL nicely provides.

I know it is possible to use SDL_CreateWindowFrom or something of that nature to do this and get most of the SDL functionality back, but that still has the burden in the wrong place, SDL has taken up
the task of creating the window and it does a fine job, I'd just like more choices of graphics API when I create the window, where I am planning to directly use said graphics API.

On 01/18/2012 02:21 AM, Pallav Nawani wrote:
Quote:

SDL2 = SDL1.3  + Code for Rotation & stretch blit simultaneously
Or
SDL provides a way for the user to get hold of the underlying graphics API (DirectX/OpenGL) to allow me to implement the above code in my game without touching SDL itself.
:)


On 18-01-2012 10:42, Bob Pendleton wrote:
Quote:
On Sun, Jan 8, 2012 at 2:00 AM, Sam Lantinga  wrote:
Quote:
Bob, I don't think we're quite ready to talk about this, unless you're
talking about something you'd like to write and maintain separately from
SDL. Smile
I waited a long time to reply because I wanted to "stir the pot" and
see what people had to say. I really do want to start a long term
project based on SDL2. But, mostly I wanted to see what people really
want.

Bob Pendleton

Quote:

On Sun, Jan 8, 2012 at 1:28 AM, Bob Pendleton  wrote:
Quote:
If we are going to start talking about what features should be in the
graphics API for SDL2 I think we should start a new thread.

Since this is a 3D API based running on top of modern hardware I'm
going to suggest that it should include layers. We have a Z-Buffer,
even though we are just doing 2D doesn't mean we shouldn't use it. It
makes doing so many things so much easier.

Also, I've heard a lot of people talking about render to texture as a
requirement, and I'm very much in favor of that, so the minimum
version of OpenGL/DirectX that can be supported is the first version
that supports that functionality.

While is is possible to build up all the graphic primitives, such as
lines, circles, and so on, from a simple scan line fill operation, it
is also pretty trivial to provide a set of solid fill and textured
primitives based on the underlying libraries. They do not have to
complex. It is possible to do textured primitives without ever
specifying a texture coordinate.

And, lets not forget fonts. People need fonts.

A critical problem is the coordinate system to be used. Using Pixels
*is* rather natural. But, then the library needs to be able to scale
everything for when the window changes size.

Bob Pendleton

To make a *modern* 2D system anyone want to talk about doing it based
on SVG instead of pixels?

Bob Pendleton


On Fri, Jan 6, 2012 at 9:53 PM, bala_48225  wrote:
Quote:
So far I haven't used SDL 1.3, but as far as the proposed
split-from-base 2D
rendering API
is concerned, perhaps its features could be limited, basic and modern:

1) Allow the user to flip, rotate and scale images; 2) Provide multiple
alpha blend modes for
images, including multiply alpha, and 3) Provide something akin to SDL
1.2's
SDL_FillRect,
perhaps with blending modes as well.

The last feature could put the burden for simpler functions such as
lines
and circles on the user,
and the possibility of having a bloated fixed-function pipeline could
thus
be evaded. The only
other thing I can think is, maybe the rendering API could support less
platforms than the rest of SDL
does, thus decreasing its development overhead. For my part I don't see
why
any DirectX prior to 8 or
later than 9 would be necessary to support for a 2D API, and OpenGL
should
be supported from 1.0.
Those three features I suggested should update SDL to the 2010s while
keeping it low-level from the
user's perspective.

_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org



--
+-----------------------------------------------------------
+ Bob Pendleton: writer and programmer
+ email:
+ web: www.TheGrumpyProgrammer.com
_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org


_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org






--


LordHavoc
Author of DarkPlaces Quake1 engine - http://icculus.org/twilight/darkplaces
Co-designer of Nexuiz - http://alientrap.org/nexuiz
"War does not prove who is right, it proves who is left." - Unknown
"Any sufficiently advanced technology is indistinguishable from a rigged demo." - James Klass
"A game is a series of interesting choices." - Sid Meier

_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org


SDL2 Graphics API, was Re: compiling with SDL_NO_COMPAT
MrOzBarry


Joined: 26 Jun 2010
Posts: 620
Agreed with Sam.  Also, someone mentioned it would be easier to implement a future-OpenGL5 by having a separate renderer library, but OpenGL is all extension based, and it's just as easy to use glew to load up whichever version of OpenGL you need. -Oz

On Thu, Jan 19, 2012 at 8:27 PM, Sam Lantinga wrote:
Quote:
There's nothing special in SDL_render_d3d.c that you can't do from your own code.  It's a great example of using D3D with SDL.

On Thu, Jan 19, 2012 at 6:13 AM, Forest Hale wrote:
Quote:
For what it's worth I'd really love to have a way to get hold of D3D9, D3D10, and D3D11 contexts from SDL, right now I only support these APIs in my native (non-SDL) version of my game engine which is
a shame, considering all the other functionality that SDL nicely provides.

I know it is possible to use SDL_CreateWindowFrom or something of that nature to do this and get most of the SDL functionality back, but that still has the burden in the wrong place, SDL has taken up
the task of creating the window and it does a fine job, I'd just like more choices of graphics API when I create the window, where I am planning to directly use said graphics API.

On 01/18/2012 02:21 AM, Pallav Nawani wrote:
Quote:

SDL2 = SDL1.3  + Code for Rotation & stretch blit simultaneously
Or
SDL provides a way for the user to get hold of the underlying graphics API (DirectX/OpenGL) to allow me to implement the above code in my game without touching SDL itself.
:)


On 18-01-2012 10:42, Bob Pendleton wrote:
Quote:
On Sun, Jan 8, 2012 at 2:00 AM, Sam Lantinga  wrote:
Quote:
Bob, I don't think we're quite ready to talk about this, unless you're
talking about something you'd like to write and maintain separately from
SDL. Smile
I waited a long time to reply because I wanted to "stir the pot" and
see what people had to say. I really do want to start a long term
project based on SDL2. But, mostly I wanted to see what people really
want.

Bob Pendleton

Quote:

On Sun, Jan 8, 2012 at 1:28 AM, Bob Pendleton  wrote:
Quote:
If we are going to start talking about what features should be in the
graphics API for SDL2 I think we should start a new thread.

Since this is a 3D API based running on top of modern hardware I'm
going to suggest that it should include layers. We have a Z-Buffer,
even though we are just doing 2D doesn't mean we shouldn't use it. It
makes doing so many things so much easier.

Also, I've heard a lot of people talking about render to texture as a
requirement, and I'm very much in favor of that, so the minimum
version of OpenGL/DirectX that can be supported is the first version
that supports that functionality.

While is is possible to build up all the graphic primitives, such as
lines, circles, and so on, from a simple scan line fill operation, it
is also pretty trivial to provide a set of solid fill and textured
primitives based on the underlying libraries. They do not have to
complex. It is possible to do textured primitives without ever
specifying a texture coordinate.

And, lets not forget fonts. People need fonts.

A critical problem is the coordinate system to be used. Using Pixels
*is* rather natural. But, then the library needs to be able to scale
everything for when the window changes size.

Bob Pendleton

To make a *modern* 2D system anyone want to talk about doing it based
on SVG instead of pixels?

Bob Pendleton


On Fri, Jan 6, 2012 at 9:53 PM, bala_48225  wrote:
Quote:
So far I haven't used SDL 1.3, but as far as the proposed
split-from-base 2D
rendering API
is concerned, perhaps its features could be limited, basic and modern:

1) Allow the user to flip, rotate and scale images; 2) Provide multiple
alpha blend modes for
images, including multiply alpha, and 3) Provide something akin to SDL
1.2's
SDL_FillRect,
perhaps with blending modes as well.

The last feature could put the burden for simpler functions such as
lines
and circles on the user,
and the possibility of having a bloated fixed-function pipeline could
thus
be evaded. The only
other thing I can think is, maybe the rendering API could support less
platforms than the rest of SDL
does, thus decreasing its development overhead. For my part I don't see
why
any DirectX prior to 8 or
later than 9 would be necessary to support for a 2D API, and OpenGL
should
be supported from 1.0.
Those three features I suggested should update SDL to the 2010s while
keeping it low-level from the
user's perspective.

_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org



--
+-----------------------------------------------------------
+ Bob Pendleton: writer and programmer
+ email:
+ web: www.TheGrumpyProgrammer.com
_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org


_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org






--


LordHavoc
Author of DarkPlaces Quake1 engine - http://icculus.org/twilight/darkplaces
Co-designer of Nexuiz - http://alientrap.org/nexuiz
"War does not prove who is right, it proves who is left." - Unknown
"Any sufficiently advanced technology is indistinguishable from a rigged demo." - James Klass
"A game is a series of interesting choices." - Sid Meier

_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org







_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org

PoV


Joined: 11 Apr 2010
Posts: 17
Location: London, Ontario, Canada
Hi!

I love SDL, but the complicated feature-creep roadmap debated in this thread makes no sense! Please send help!

Doing too much is bad. Case and point: Allegro 5. It's a library that used to do everything (everything 2D games needed back in the day), but I don't know anyone that wants to touch that anymore.

Complaining about DLL hell is silly, so 1990's. Relics of bad design. If plentiful DLLs really bother you, then start an SDL_Complete project, that statically links them all in to one big DLL or one big LIB. If you're still angry, investigate what's needed to make SDL in to a "drop in as source" library. In practice, nobody takes advantage of "upgrading a library by replacing the DLL". To a developer, being able to click over to a file inside a piece of middleware you're using, to trace a bug and fix it is huge workflow improvement over Library files any day.

As far as Graphics go, Graphics context creation, and that's it please. If someone wants to write a cross platform game, they'll use OpenGL. If they want to appease Microsoft, they'll use Direct3D. Please keep any mega library that supports multiple renderers out of core SDL. The key point here is layers, and SDL should be the bottom layer. A "Simple DirectMedia Layer".

SDL is a staple of many gamedevs. It's how many of us can get away with Mac and Linux ports. We're never going to get an API consensus out of Microsoft, Apple, and the Linux Foundation.
SDL2 Graphics API, was Re: compiling with SDL_NO_COMPAT
Stephen Anthony
Guest

On January 21, 2012 2:52:58 PM PoV wrote:

Quote:
As far as Graphics go, Graphics context creation, and that's it please.
If someone wants to write a cross platform game, they'll use OpenGL.
If they want to appease Microsoft, they'll use Direct3D.

And if they want performant code on all such systems, they need to write
both OpenGL *and* Direct3D code that basically do the same thing, but are
more optimized to their specific platforms. So one of the main reasons for
using SDL is lost.

I *don't want* or *care* to know how SDL does its thing behind the scenes.
I just want it to be fast in both Windows and Linux/OSX. And that means
Direct3D for Windows, and OpenGL for the others.

Having everyone write both Direct3D and OpenGL code for their projects is
a complete waste of developer time. Sure, doing it in SDL is difficult, but
it's a one-time job. Better to do it in one place, and have it optimized
and looked over by many people than to have every separate project do it.

From my POV, I don't want to write Direct3D code, or OpenGL code, or
whatever new API comes along. I want a simple layer (aka, SDL) over these
APIs that gives fast access to a framebuffer, allowing it to be stretched
and rendered in 2D. I agree that if you're going full-on 3D mode then you
probably need to write API-specific code. But don't force the average 2D
game developer that just wants speed to code multiple rendering backends.

Thanks,
Steve A.
Stella maintainer
_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org
SDL2 Graphics API, was Re: compiling with SDL_NO_COMPAT
David Olofson
Guest

On Saturday 21 January 2012, at 20.53.30, Stephen Anthony
wrote:
[...]
Quote:
But don't force the average 2D game developer that just wants speed to code
multiple rendering backends.

There's just this small issue of who that average 2D game developer is.

Some claim 2D is just non-scaled rectangular blits and some basic transparency
and blending, whereas others (like me, I'm afraid) would basically require all
of the OpenGL 1.4+ functionality (blend modes, triangles, polygons, separate
vertex/texture coordinates etc) minus the *actual* 3D stuff.

(I'm relying entirely on OpenGL at this point. May or may not bother with
Direct3D later.)


--
//David Olofson - Consultant, Developer, Artist, Open Source Advocate

.--- Games, examples, libraries, scripting, sound, music, graphics ---.
| http://consulting.olofson.net http://olofsonarcade.com |
'---------------------------------------------------------------------'
_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org
SDL2 Graphics API, was Re: compiling with SDL_NO_COMPAT
Brian Barnes
Guest

Steve wrote:

Quote:
On January 21, 2012 2:52:58 PM PoV wrote:

Quote:
As far as Graphics go, Graphics context creation, and that's it please.
If someone wants to write a cross platform game, they'll use OpenGL.
If they want to appease Microsoft, they'll use Direct3D.

And if they want performant code on all such systems, they need to write
both OpenGL *and* Direct3D code that basically do the same thing, but are
more optimized to their specific platforms. So one of the main reasons for
using SDL is lost.

I *don't want* or *care* to know how SDL does its thing behind the scenes.
I just want it to be fast in both Windows and Linux/OSX. And that means
Direct3D for Windows, and OpenGL for the others.

Having everyone write both Direct3D and OpenGL code for their projects is
a complete waste of developer time. Sure, doing it in SDL is difficult, but
it's a one-time job. Better to do it in one place, and have it optimized
and looked over by many people than to have every separate project do it.

From my POV, I don't want to write Direct3D code, or OpenGL code, or
whatever new API comes along. I want a simple layer (aka, SDL) over these
APIs that gives fast access to a framebuffer, allowing it to be stretched
and rendered in 2D. I agree that if you're going full-on 3D mode then you
probably need to write API-specific code. But don't force the average 2D
game developer that just wants speed to code multiple rendering backends.

I use OpenGL for my game engine on Windows, and it works great. In full screen, I can push just as many polygons as I could with direct3D, and if you are writing the proper code, there is no way you're going to have problem going with OpenGL for windows.

Remember, if you make sure to use all the fast paths, you are spending almost all you time on the card. There is nothing to be gained by using either OpenGL or Direct3D, they will both be using the same card resources in the end. Note, this means using OpenGL right, though. VBOs, etc.

If you are just making a 2D game, it's relatively easy to create a couple sub routines to encapsulate all that (it's probably been done somewhere in open source.) I'd really recommend learning OpenGL, especially as with the places you'll make sales -- iOS or Andriod -- are all OpenGL devices.

Compile in SDL + GLEW with your windows build and you'll have everything updated and ready to go with modern OpenGL.

[>] Brian
_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org
SDL2 Graphics API, was Re: compiling with SDL_NO_COMPAT
Forest Hale
Guest

Use cases in my engine:
1. A simple way to get a window and OpenGL 1/2/3/4/ES1/ES2 context.
2. A simple way to get a window and Direct3D 9/10/11 context.
3. A simple way to get a window and software surface to render into manually.

Other use cases common in indie game development and application development:
4. A simple way to get a 2D rendering API that transparently uses a software surface or OpenGL 1/2/ES1/ES2 or Direct3D 9.
5. A simple way to get a window and software surface to render into manually.
6. A simple way to get a window and YCrCb video overlay to render into manually.

All of these goals are compatible and deserve attention.

I do not believe that #4 bloats SDL because it is a very common use case, and the code involved is small.

For my game engine development, #1 is essential, #2 would be nice (I just want it to set up the context for me using the same nice SDL attributes and all), and #3 is something I currently handle using
#4 which may or may not be efficient depending on platform.

On 01/21/2012 11:53 AM, Stephen Anthony wrote:
Quote:
On January 21, 2012 2:52:58 PM PoV wrote:

Quote:
As far as Graphics go, Graphics context creation, and that's it please.
If someone wants to write a cross platform game, they'll use OpenGL.
If they want to appease Microsoft, they'll use Direct3D.

And if they want performant code on all such systems, they need to write
both OpenGL *and* Direct3D code that basically do the same thing, but are
more optimized to their specific platforms. So one of the main reasons for
using SDL is lost.

I *don't want* or *care* to know how SDL does its thing behind the scenes.
I just want it to be fast in both Windows and Linux/OSX. And that means
Direct3D for Windows, and OpenGL for the others.

Having everyone write both Direct3D and OpenGL code for their projects is
a complete waste of developer time. Sure, doing it in SDL is difficult, but
it's a one-time job. Better to do it in one place, and have it optimized
and looked over by many people than to have every separate project do it.

Quote:
From my POV, I don't want to write Direct3D code, or OpenGL code, or
whatever new API comes along. I want a simple layer (aka, SDL) over these
APIs that gives fast access to a framebuffer, allowing it to be stretched
and rendered in 2D. I agree that if you're going full-on 3D mode then you
probably need to write API-specific code. But don't force the average 2D
game developer that just wants speed to code multiple rendering backends.

Thanks,
Steve A.
Stella maintainer
_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org



--
LordHavoc
Author of DarkPlaces Quake1 engine - http://icculus.org/twilight/darkplaces
Co-designer of Nexuiz - http://alientrap.org/nexuiz
"War does not prove who is right, it proves who is left." - Unknown
"Any sufficiently advanced technology is indistinguishable from a rigged demo." - James Klass
"A game is a series of interesting choices." - Sid Meier

_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org
Re: SDL2 Graphics API, was Re: compiling with SDL_NO_COMPAT
PoV


Joined: 11 Apr 2010
Posts: 17
Location: London, Ontario, Canada
Stephen Anthony wrote:
And if they want performant code on all such systems, they need to write both OpenGL *and* Direct3D code that basically do the same thing, but are more optimized to their specific platforms. So one of the main reasons for using SDL is lost.

That's what projects like Angle are for. Write once to the OpenGL ES 2 spec, and it uses Direct3D behind the scenes. It's redundant at the SDL level, and its consideration just further delays the release of SDL 2.0.
SDL2 Graphics API, was Re: compiling with SDL_NO_COMPAT
Stephen Anthony
Guest

On 12-01-21 4:49 PM, Brian Barnes wrote:

Quote:
If you are just making a 2D game, it's relatively easy to create a couple sub routines to encapsulate all that (it's probably been done somewhere in open source.) I'd really recommend learning OpenGL, especially as with the places you'll make sales -- iOS or Andriod -- are all OpenGL devices.

I already know OpenGL. In fact, the project I'm working on already has
an OpenGL component (which I wrote), in addition to a software
component. I'm simply arguing that having to do that for every project
you write is a waste when it could be done once in SDL (and probably
done better because of the many-eyes approach).

Also, if OpenGL is sufficient, then why is the default backend in
Windows based on Direct3D? The projects I work on are extremely
cross-platform (we're talking about a dozen different OS/architecture
combinations). Believe me when I say that based on feedback over the
years, Direct3D is better supported in Windows. And OpenGL is great for
Linux/OSX.

To be honest, at this point I don't really have a horse in this race.
If the current functionality in SDL 1.3 stays as-is, it will satisfy my
needs. I just don't want that functionality to disappear. That's
mostly what I'm arguing for.

Thanks,
Steve A.
Stella maintainer

_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org
SDL2 Graphics API, was Re: compiling with SDL_NO_COMPAT
Sam Lantinga


Joined: 10 Sep 2009
Posts: 1765
Tell ya what... if somebody provides a fully working patch for all renderers including software, and all the filtering and scaling issues are resolved to the satisfaction of everyone on the list, I will either officially incorporate it into SDL_render or make it available as a recommended extension (crediting everyone involved, of course).

Remember, keep it simple, and it needs to be fast enough to be a viable API using the software renderer.


Here are some good places to start:
http://bugzilla.libsdl.org/show_bug.cgi?id=1308
http://bugzilla.libsdl.org/show_bug.cgi?id=1181


Cheers!

On Wed, Jan 18, 2012 at 5:21 AM, Pallav Nawani wrote:
Quote:

SDL2 = SDL1.3  + Code for Rotation & stretch blit simultaneously
Or
SDL provides a way for the user to get hold of the underlying graphics API (DirectX/OpenGL) to allow me to implement the above code in my game without touching SDL itself.
:)


On 18-01-2012 10:42, Bob Pendleton wrote:
Quote:
On Sun, Jan 8, 2012 at 2:00 AM, Sam Lantinga  wrote:
Quote:
Bob, I don't think we're quite ready to talk about this, unless you're
talking about something you'd like to write and maintain separately from
SDL. Smile
I waited a long time to reply because I wanted to "stir the pot" and
see what people had to say. I really do want to start a long term
project based on SDL2. But, mostly I wanted to see what people really
want.

Bob Pendleton

Quote:

On Sun, Jan 8, 2012 at 1:28 AM, Bob Pendleton  wrote:
Quote:
If we are going to start talking about what features should be in the
graphics API for SDL2 I think we should start a new thread.

Since this is a 3D API based running on top of modern hardware I'm
going to suggest that it should include layers. We have a Z-Buffer,
even though we are just doing 2D doesn't mean we shouldn't use it. It
makes doing so many things so much easier.

Also, I've heard a lot of people talking about render to texture as a
requirement, and I'm very much in favor of that, so the minimum
version of OpenGL/DirectX that can be supported is the first version
that supports that functionality.

While is is possible to build up all the graphic primitives, such as
lines, circles, and so on, from a simple scan line fill operation, it
is also pretty trivial to provide a set of solid fill and textured
primitives based on the underlying libraries. They do not have to
complex. It is possible to do textured primitives without ever
specifying a texture coordinate.

And, lets not forget fonts. People need fonts.

A critical problem is the coordinate system to be used. Using Pixels
*is* rather natural. But, then the library needs to be able to scale
everything for when the window changes size.

Bob Pendleton

To make a *modern* 2D system anyone want to talk about doing it based
on SVG instead of pixels?

Bob Pendleton


On Fri, Jan 6, 2012 at 9:53 PM, bala_48225<bala_48225@yahoo.com>  wrote:
Quote:
So far I haven't used SDL 1.3, but as far as the proposed
split-from-base 2D
rendering API
is concerned, perhaps its features could be limited, basic and modern:

1) Allow the user to flip, rotate and scale images; 2) Provide multiple
alpha blend modes for
images, including multiply alpha, and 3) Provide something akin to SDL
1.2's
SDL_FillRect,
perhaps with blending modes as well.

The last feature could put the burden for simpler functions such as
lines
and circles on the user,
and the possibility of having a bloated fixed-function pipeline could
thus
be evaded. The only
other thing I can think is, maybe the rendering API could support less
platforms than the rest of SDL
does, thus decreasing its development overhead. For my part I don't see
why
any DirectX prior to 8 or
later than 9 would be necessary to support for a 2D API, and OpenGL
should
be supported from 1.0.
Those three features I suggested should update SDL to the 2010s while
keeping it low-level from the
user's perspective.

_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org



--
+-----------------------------------------------------------
+ Bob Pendleton: writer and programmer
+ email:
+ web: www.TheGrumpyProgrammer.com
_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org


_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org




--


*Pallav Nawani*
*Game Designer/Writer/CEO*
http://www.ironcode.com
Twitter: http://twitter.com/Ironcode_Gaming
Facebook: http://www.facebook.com/Ironcode.Gaming
Mobile: 9997478768
_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org


SDL2 Graphics API, was Re: compiling with SDL_NO_COMPAT
gabomdq


Joined: 28 Jul 2011
Posts: 495
Location: Argentina
2012/1/22 Sam Lantinga
Quote:
Tell ya what... if somebody provides a fully working patch for all renderers including software, and all the filtering and scaling issues are resolved to the satisfaction of everyone on the list, I will either officially incorporate it into SDL_render or make it available as a recommended extension (crediting everyone involved, of course).



Given the vast array of opinions I saw in this discussion, I think there's a better chance of SDL gaining conciousness and killing all of us in the process than resolving the issues to everyone's satisfaction, but anyway, I'll start by updating my patch so it applies cleanly and we can work from that with anyone who's interested.


Gabriel.
SDL2 Graphics API, was Re: compiling with SDL_NO_COMPAT
gabomdq


Joined: 28 Jul 2011
Posts: 495
Location: Argentina
2012/1/22 Sam Lantinga
Quote:
Tell ya what... if somebody provides a fully working patch for all renderers including software, and all the filtering and scaling issues are resolved to the satisfaction of everyone on the list, I will either officially incorporate it into SDL_render or make it available as a recommended extension (crediting everyone involved, of course).

Remember, keep it simple, and it needs to be fast enough to be a viable API using the software renderer.


Here are some good places to start:
http://bugzilla.libsdl.org/show_bug.cgi?id=1308
http://bugzilla.libsdl.org/show_bug.cgi?id=1181


Cheers!






I've updated the RenderCopyEx patch at http://bugzilla.libsdl.org/show_bug.cgi?id=1308 , it now supports all renderers (including software). The software renderer functionality is implemented with lightly modified code taken from the SDL_gfx library (Zlib license acording to http://www.ferzkopp.net/joomla/content/view/19/14/ ). The total bloat coming from this incorporation is fairly small in my opinion (two functions to rotate 24 and 8 bit surfaces, one to precalculate a few values), and it is all kept in a separate file. The RenderCopyEx provides rotation around the center or arbitrary point, and flipping in both directions. The 24 bit software backend does nearest and bilinear interpolation as well.
Sam told me to submit the new patch to the list to see the repercusion it gets, after which he'll consider it for adoption...so, let us know what you think! 


Thanks!
 

--
Gabriel.
SDL2 Graphics API, was Re: compiling with SDL_NO_COMPAT
Rainer Deyke
Guest

On 2012-02-01 14:06, Gabriel Jacobo wrote:
Quote:
I've updated the RenderCopyEx patch at
http://bugzilla.libsdl.org/show_bug.cgi?id=1308 , it now supports all
renderers (including software). The software renderer functionality is
implemented with lightly modified code taken from the SDL_gfx library (Zlib
license acording to http://www.ferzkopp.net/joomla/content/view/19/14/ ).
The total bloat coming from this incorporation is fairly small in my
opinion (two functions to rotate 24 and 8 bit surfaces, one to precalculate
a few values), and it is all kept in a separate file. The RenderCopyEx
provides rotation around the center or arbitrary point, and flipping in
both directions. The 24 bit software backend does nearest and bilinear
interpolation as well.

Wouldn't it make more sense to have a function to render arbitrary
textured quads? It's easy to implement rotation on top of arbitrary
quads, but it's impossible to implement arbitrary quads on top of rotation.


--
Rainer Deyke

_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org
SDL2 Graphics API, was Re: compiling with SDL_NO_COMPAT
Pallav Nawani


Joined: 19 May 2011
Posts: 122
Location: Dehradun, India
Awesome, this looks like just what was needed!
(Well, it is just what I needed anyway).

+1 for the patch to be incorporated into SDL.

On 01-02-2012 18:36, Gabriel Jacobo wrote:
Quote:
2012/1/22 Sam Lantinga <mailto:>

Tell ya what... if somebody provides a fully working patch for all
renderers including software, and all the filtering and scaling
issues are resolved to the satisfaction of everyone on the list, I
will either officially incorporate it into SDL_render or make it
available as a recommended extension (crediting everyone involved,
of course).

Remember, keep it simple, and it needs to be fast enough to be a
viable API using the software renderer.

Here are some good places to start:
http://bugzilla.libsdl.org/show_bug.cgi?id=1308
http://bugzilla.libsdl.org/show_bug.cgi?id=1181

Cheers!



I've updated the RenderCopyEx patch at
http://bugzilla.libsdl.org/show_bug.cgi?id=1308 , it now supports all
renderers (including software). The software renderer functionality is
implemented with lightly modified code taken from the SDL_gfx library
(Zlib license acording to
http://www.ferzkopp.net/joomla/content/view/19/14/ ). The total bloat
coming from this incorporation is fairly small in my opinion (two
functions to rotate 24 and 8 bit surfaces, one to precalculate a few
values), and it is all kept in a separate file. The RenderCopyEx
provides rotation around the center or arbitrary point, and flipping
in both directions. The 24 bit software backend does nearest and
bilinear interpolation as well.
Sam told me to submit the new patch to the list to see the repercusion
it gets, after which he'll consider it for adoption...so, let us know
what you think!

Thanks!
--
Gabriel.


_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org

--
*Pallav Nawani*
*Game Designer/Writer/CEO*
http://www.ironcode.com
Twitter: http://twitter.com/Ironcode_Gaming
Facebook: http://www.facebook.com/Ironcode.Gaming
Mobile: 9997478768
_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org
SDL2 Graphics API, was Re: compiling with SDL_NO_COMPAT
Pallav Nawani


Joined: 19 May 2011
Posts: 122
Location: Dehradun, India
So does everyone agree that this patch is a good idea?
If so, this patch can be included into SDL_render.

On 01-02-2012 18:36, Gabriel Jacobo wrote:
Quote:
2012/1/22 Sam Lantinga <mailto:>

Tell ya what... if somebody provides a fully working patch for all
renderers including software, and all the filtering and scaling
issues are resolved to the satisfaction of everyone on the list, I
will either officially incorporate it into SDL_render or make it
available as a recommended extension (crediting everyone involved,
of course).

Remember, keep it simple, and it needs to be fast enough to be a
viable API using the software renderer.

Here are some good places to start:
http://bugzilla.libsdl.org/show_bug.cgi?id=1308
http://bugzilla.libsdl.org/show_bug.cgi?id=1181

Cheers!



I've updated the RenderCopyEx patch at
http://bugzilla.libsdl.org/show_bug.cgi?id=1308 , it now supports all
renderers (including software). The software renderer functionality is
implemented with lightly modified code taken from the SDL_gfx library
(Zlib license acording to
http://www.ferzkopp.net/joomla/content/view/19/14/ ). The total bloat
coming from this incorporation is fairly small in my opinion (two
functions to rotate 24 and 8 bit surfaces, one to precalculate a few
values), and it is all kept in a separate file. The RenderCopyEx
provides rotation around the center or arbitrary point, and flipping
in both directions. The 24 bit software backend does nearest and
bilinear interpolation as well.
Sam told me to submit the new patch to the list to see the repercusion
it gets, after which he'll consider it for adoption...so, let us know
what you think!

Thanks!
--
Gabriel.


_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org

--
*Pallav Nawani*
_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org
bala_48225


Joined: 01 Feb 2010
Posts: 48
Well starting from the other end this time, if SDL 2.0 could create a DX9 rendering context, that would be awesome,
because then SDL users who are learning/using DirectX could avoid having to use WinApi WinMain() and its attendant
global functions! Thus they could use SDL for input, delays and windowing! Btw, is this planned? I've looked around
a bit but I can't tell. Addendum Feb 29: please forgive my ignorance.
josebagar


Joined: 10 Dec 2010
Posts: 87
Sorry to bother but, has any decision been taken on this regard? I'd really benefit from this and wouldn't like to resort to unofficial code...
bala_48225


Joined: 01 Feb 2010
Posts: 48
Quote:
Sorry to bother but, has any decision been taken on this regard? I'd really benefit from this and wouldn't like to resort to unofficial code...


Well yes it is possible, and with SDL 1.2 at that! Here's the tutorial I found:

http://www.gamedev.net/page/resources/_/technical/apis-and-tools/direct3d-90-with-sdl-r2249