Difference between SDL and DirectX port
#1
Could someone explain (or just summarize) the difference between the SDL Win32 and DirectX Win32 ports?

The best I can tell is that SDL uses OpenGL, and you need:
.net 2.0
sdl.net
glew32.dll OpenGL extension from Wrangler
a T3ch build
xbmc_pc.exe from SVN

How would one go about using it with DirectX?

I know the DirectX port seems to be deprecated, and SDL is the main choice of most developers, but a few (JonathanHuh) still use DirectX...

Wouldn't the DirectX port be more likely to support hardware acceleration under Windows?

It seems that the main advantage of the SDL version is cross-platform compatibility without multiple branches.

Any takers?

-Wes
Reply
#2
I would guess using OpenGL makes it easier to port certain features between the various platforms thus making it easier to maintain. But I am just guessing here, I know too little of the inner workings to say. AFAIK the DirectX version was never meant to be a full port but it was created as a skinning tool.
Reply
#3
The difference between the SDL Win32 and DirectX Win32 ports has been explained/summarized many times before (and again very recently as well), please look just a few ports back from the end in this other topic-thread here:
http://forum.xbmc.org/showthread.php?tid=23235

SDL (Simple DirectMedia Layer) is just a middleware for the hardware interface, and as such SDL can be made use either DirectX or OpenGL to 'talk' to the graphics hardware. The developers of the SDL port of XBMC for Windows choose to use OpenGL becuase OpenGL is portable and that meant that they did not have to write a new renderer (or rewrite an old one to work) for this Windows port of XBMC but instead they could re-use the OpenGL renderer from the Linux port of XBMC (which is today also used in the Mac OS X port of XBMC).

I believe that in theory the DirectX renderer in XBMC for Xbox (with I think is also the renderer used in the DirectX port of XBMC for Windows) could probably be modified to act as a replacement for the OpenGL renderer in the SDL port of XBMC, thus make the SDL port of XBMC for Windows use DirectX for graphics (which in turn could mean that DXVA hardware accelerated video-decoding can be added to that renderer in the future, for that to happen though I believe that SDL first have to support at least DirectX 9). I do however not know how much work that would be nor do I know if it would be worth the effort or not.
Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.
Reply
#4
Gamester17 Wrote:http://forum.xbmc.org/showthread.php?tid=23235

Thanks for that link, I missed the earlier part of that thread for some reason.

Gamester17 Wrote:SDL (Simple DirectMedia Layer) is just a middleware for the hardware interface, and as such SDL can be made use either DirectX or OpenGL to 'talk' to the graphics hardware.

...and thanks for that explanation as well. I read about SDL, but clearly I misunderstood it. The "middleware" explanation made it clear for me.

So basically, when people speak about running the DirectX Win32 version, they are talking about just clicking on the XBMC_PC.exe that is included in the T3ch builds, with no other configuration required, whereas the SDL Win32 port requires .net2.0 and SDL?

Thanks,

-Wes
Reply
#5
waldo22 Wrote:So basically, when people speak about running the DirectX Win32 version, they are talking about just clicking on the XBMC_PC.exe that is included in the T3ch builds, with no other configuration required, whereas the SDL Win32 port requires .net2.0 and SDL?
You are correct, ...well, partially correct at least, you are right about the XBMC_PC.exe and T3CH part. The SDL Win32 port currently requires third-party SDL libraries installed, those libraries does not have to be SDL.NET (and it is SDL.NET that requires Microsoft .NET Framework, not XBMC), SDL.NET is just one of many SDL compilations available out there (and today it probably is the most user-friendly to install and that is why people are using it and no a other one).
Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.
Reply
#6
waldo22 Wrote:The best I can tell is that SDL uses OpenGL, and you need:
.net 2.0
sdl.net
glew32.dll OpenGL extension from Wrangler
a T3ch build
xbmc_pc.exe from SVN

The SDL binary is called XBMC.exe
Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.
Reply
#7
and dont use t3ch. Donload the installer instead. You will get the right fileset with working files directly
Reply

Logout Mark Read Team Forum Stats Members Help
Difference between SDL and DirectX port0