#exult@irc.freenode.net logs for 17 Aug 2010 (GMT)

Archive Today Yesterday Tomorrow
Exult homepage


[00:05:02] <Colourless> if its causing issues, yes
[00:09:57] <Dominus> hmm, I'll give it a try and maybe some people can report back on this
[00:49:01] <Dominus> thanks for looking at it. posted in the forum that toggling fullscreen might work again and we need feedback. got to sleep now :)
[00:49:04] <Dominus> nighty night
[00:49:10] <-- Dominus has left IRC (Quit: Leaving.)
[01:07:17] <Colourless> i know what the issue is now. Exult is passing invalid flags to SDL_VideoModeOK. Its just grabs the flags from the existing surface completely ignoring the fact the may not be correct
[01:07:59] <Colourless> still rewriting this code however
[02:04:05] <-- Marzo has left IRC (Quit: Marzo vanishes suddenly.)
[02:09:33] <-- Maggie has left IRC (Read error: Connection reset by peer)
[02:09:36] --> Marzo has joined #exult
[03:40:20] <Colourless> ARGH!
[03:41:13] <Colourless> why... oh why... why did someone decide to use delete on a SDL_Surface created using SDL_CreateRGBSurface. Should be freed using SDL_FreeSurface
[03:41:46] <Colourless> that sort of nonsense is likely to cause crashes
[03:42:39] <Marzo> Colourless: where is that?
[03:42:57] <Colourless> in two places where creating scaler surfaces fails
[03:45:12] <Marzo> Hm. Look slightly harder and you will see that it is endemic: there are 5 instances of delete surface and 5 instances of delete scaled_surface
[03:45:47] <Marzo> I can't claim that as my fault :-)
[03:49:43] <Colourless> i'm fixing up that stuff now
[03:51:43] <Marzo> One of them go back to the first version in SVN
[03:51:47] <Marzo> s/go/goes
[03:52:07] <Marzo> (the one right under "Couldn't create scaled surface")
[03:52:07] <Colourless> also rewriting a lot of the scaler function stuff so try_scaler() isn't full of if (scaler == <SomeConstant>). replacing it with accesses into an array of scaler defintions
[03:52:38] <Marzo> That does make it easier to maintain, yes
[03:54:29] <Marzo> 3 of them were by a 'colourles' (sic) in revision 1940
[03:54:58] <Marzo> Another by the same author in revision 1976
[03:55:12] <Marzo> That was over 9 years ago, by the way
[03:56:15] <Colourless> yay for me!
[03:56:33] <Marzo> And in revision 2758 by you too
[03:56:48] <Marzo> I guess you learned a lot since those times :-)
[03:56:49] <Colourless> obviously i like screwing around with this code
[03:57:11] <Marzo> Aye, that too
[03:57:13] <Marzo> :-p
[03:58:28] <Marzo> Interestingly, the first revision also used SDL_FreeSurface in some parts
[03:58:58] <Marzo> (Image_window::free_surface was already there and used)
[04:00:01] <Marzo> Still, as I said, the very first version in SVN already had this error
[04:01:13] <Marzo> I wonder how many random crashes over the years were caused by this?
[04:14:59] <Colourless> hmmm... there is no real reason why the accelerated rgb555 and rgb565 scaler functions can't be used with RGB or BGR colour orders. all that needs to be done is flip the colours in the palette if its the wrong way
[04:39:04] <-- Kirben has left IRC ()
[04:56:52] --> Kirben has joined #exult
[04:56:52] --- ChanServ gives channel operator status to Kirben
[05:21:14] * Colourless decides to change the names of the surfaces.
[05:21:55] <Colourless> instead of being surface, scaled_surface and unscaled_surface they are now paletted_surface, display_surface and draw_surface
[05:22:05] <Colourless> make it a lot easier to workout what this code is doing
[05:27:15] <Marzo> Methinks it this is a great idea :-)
[05:38:28] <-- Marzo has left IRC (Ping timeout: 240 seconds)
[05:46:54] <Colourless> while i am doing this, really really tempted to update things to allow arbitrary scaling, chaining scalers, and aspect correction
[05:51:31] <Colourless> though chained scalers need 16bit -> 16bit and 32bit -> 32bit support which they don't currently have
[05:51:39] <Colourless> it probably not necessary
[05:52:22] <Colourless> just adding bilinear and point filtered secondary scaling/aspect correction is probable 'good' enough
[07:40:44] --> SiENcE has joined #exult
[10:45:37] --> Dominus has joined #exult
[10:45:37] --- ChanServ gives channel operator status to Dominus
[11:21:30] <Dominus> thanks Colourless
[11:41:20] <Dominus> Colourless: it's behaving wonky...
[11:42:16] <Dominus> palette distortions, HQ3x is failing to scale, when switching from fullscreen to window
[11:47:03] <Dominus> that is all scalers which can do x3 behave badly when in fullscreen (looks like they get rendered in 8bit again), when switching back from fullscreen (the window is not being scaled anymore)
[11:47:27] <Dominus> but only on resolutions higehr than the default 320x200
[11:56:26] <Dominus> console message: SDL Reports 16 bpp and 32 bpp surfaces are not OK.
[11:56:36] <Dominus> kCGErrorFailure: CGSColorProfileCreateWithColorSpace: Invalid ICC color space(0x17405040)
[11:56:46] <Dominus> kCGErrorFailure: Set a breakpoint @ CGErrorBreakpoint() to catch errors as they are logged.
[11:56:57] <Dominus> kCGErrorCannotComplete: CGSSetWindowColorSpace: Cannot create color profile
[12:00:14] <Dominus> same kcg errors that the 8bit scalers gave before marzo fixed them in march or april
[12:28:33] <Dominus> point and interlaced x1 also show extrem color distortions and kcg errors when switching to fullscreen but not the "SDL reports..." message
[13:28:49] <Colourless> palette issues might be due an 'optimization' i added
[13:30:21] <Colourless> will look at issues tomorrow.
[13:32:38] <Dominus> no problem, no hurry
[13:42:30] <Dominus> (opengl still behaves badly but that is to be expected... there is a reason why I don't enable opengl in the os x snapshots :))
[13:59:29] --> Morde has joined #exult
[14:18:38] <-- Kirben has left IRC (Ping timeout: 265 seconds)
[14:39:43] --> Marzo has joined #exult
[14:41:31] <-- Marzo has left IRC (Client Quit)
[14:42:31] --> Marzo has joined #exult
[15:03:40] <-- Marzo has left IRC (Ping timeout: 276 seconds)
[16:38:57] <-- SiENcE has left IRC (Quit: @all: cya)
[16:40:03] --> Marzo has joined #exult
[22:15:33] <-- Dominus has left IRC (Quit: Leaving.)
[23:27:46] --> Kirben has joined #exult
[23:27:46] --- ChanServ gives channel operator status to Kirben