• 1
  • 2(current)
  • 3
  • 4
  • 5
  • 7
[PATCH] Building SDL/OpenGL port on Windows (Win32)
#16
Nice find ArtVandelae (great nick btw Wink

I've fixed in trunk (rev 11493), so next merge it'll be fixed in branch.

Cheers,
Jonathan
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.


Image
Reply
#17
C-Quel Wrote:Intrigued to see how it runs can you post a link to your latest build? Noticed the 1st post but seems quite unstable and dont need all the other bits, just the exe Smile

Sure, here you go.

http://www.megaupload.com/?d=Q7TISTBM
Reply
#18
Thanks Smile
Reply
#19
I have located a bug that only seems to crop up when building with VC8 (or higher?) related to the Python DLL. It seems that as of this compiler version the behavior of the signal function in the libraries has changed. Formerly when it was passed an invalid signal type it would just return SIG_ERR. In the libraries that ship with VC8, however, when signal is called with an invalid signal type specified it results in an assertion and termination of the program.

Since Python initially tries all of the signal types during initialization, including ones invalid under Windows, it was crashing my build of XBMC. To get around this I had to add signal type checking to the dll_signal function in emu_msvcrt.cpp. If you are using VS2005 or higher it needs to look like this:

Code:
void (__cdecl * dll_signal(int sig, void (__cdecl *func)(int)))(int)
{
#if defined(_MSC_VER) && _MSC_VER >= 1400
  if(sig == SIGINT || sig == SIGILL || sig == SIGFPE || sig == SIGSEGV || sig == SIGTERM || sig == SIGBREAK || sig == SIGABRT)
  {
#endif
    // the xbox has a NSIG of 23 (+1), problem is when calling signal with
    // one of the signals below the xbox wil crash. Just return SIG_ERR
    if (sig == SIGILL || sig == SIGFPE || sig == SIGSEGV) return SIG_ERR;
    
    return signal(sig, func);
#if defined(_MSC_VER) && _MSC_VER >= 1400
  }
  return SIG_ERR;
#endif
}
Reply
#20
Yeah baby! Big Grin

Here's a link to the SDL runtime file installer and GLEW files that I needed to grab to get it to run:

http://downloads.sourceforge.net/cs-sdl/...g_mirror=0

https://sourceforge.net/project/download...-win32.zip

I created an XBMC directory, dropped this executable in there along with the glew32.dll, installed the SDL runtime, downloaded the latest T3CH release and put the contents of its XBMC directory in my new one. Moved the run_me_first.bat script from the T3CH win32 directory to my XBMC directory and ran it. XBMC starts and runs. Is there anyway to make it go full screen? F11 doesn';t seem to do anything Will play with it some more.

Thanks ArtVandelae!! Having the three major OS's covered can't help but make XBMC even more popular.
cheers,

crazyivan
Reply
#21
Whoops... Where does it store its screen resolution settings? I changed to Desktop 0x0 and now its screen is just a pixelated mess. I blew away everything and started over but the screen setting is still sticking. Any idea where this might be?
cheers,

crazyivan
Reply
#22
not 100% sure but possibly guisettings.xml in system or userdata folder dont have info in front of me at the moment
Reply
#23
Found that I already had a T drive so all of the xml config files were not where I thought they were Blush. What works (core GUI, pics, music and weather) seems very fast/responsive. Definitely excited about this one. Just to clarify, is this the linux branch but built for win32? Does the linux branch use a different set of files than the trunk, which comes with T3CH?
cheers,

crazyivan
Reply
#24
I did a little more work yesterday afternoon and I managed to get the OpenGL spectrum and waveform visualizations running under windows. They work with just one bug: when on the home screen with music playing you should be able to see the visualization playing behind the menu at all times. As of right now, however, the visualization is only visible when either the mouse cursor is visible or a dialog window is open.

Specifically, in the function CApplication:Big GrinoRender() the visualizations only display behind the menu if m_gWindowManager.RenderDialogs() or m_guiPointer.Render() is called after the initial m_gWindowManager.Render() function. I've traced through the code many times and still can't figure out why this is happening so if anyone has any suggestions I'm open to them.
Reply
#25
I fixed the visualization bug. It turns out that it was drawing the visualization graphics all the time, but since texturing wasn't being disabled by the plugin it was sometimes drawing the visualization shapes with the last loaded textures which in the case of the home menu meant black bars and lines on a black background. I added glEnable(GL_TEXTURE_2D) and glDisable(GL_TEXTURE_2D) calls within the plugin sources themselves and now they work perfectly.

Now to see if I can tackle this annoying video playback bug. It plays at normal speeds when it is in the small window in the file browser screens or when it is behind the home screen but not when it is in exclusive mode where the sound plays normally but the video becomes a slideshow.

Once I fix this bug I am going to do some code cleanup, update the VS2003 project files, make another source patch with the new changes and post a build to show the progress.
Reply
#26
Fantastic work yet again... and greatly appreciated.
Reply
#27
Awesome! I can see this port being VERY popular. Smile
cheers,

crazyivan
Reply
#28
So we're talking here about possible full Windows port ? It would be great Smile
Regards,
Embrion
Reply
#29
we are talking about the windows linux port running on windows again
Reply
#30
What is Windows Linux port? Smile Is it porting Linux version of XBMC to Windows with everything running? (by everything I mean smooth GUI and as fast as Windows possible movies playback)
Sorry, but as I remember, only Linux was meant to be full XBMC port OS and Windows was meant to be somehow limited.
Regards,
Embrion
Reply
  • 1
  • 2(current)
  • 3
  • 4
  • 5
  • 7

Logout Mark Read Team Forum Stats Members Help
[PATCH] Building SDL/OpenGL port on Windows (Win32)0