Menu

#46 SDL bugs

open
nobody
None
5
2007-02-15
2007-02-15
Da Stranger
No

This bug was originally reported by bw at the glscene.ru forums. Not tested by me.

1) In SDLWindow.pas the mistake has been admitted. Wneh a stream is stopped by calling StopThread, variable FThread was not nulled by method StopThread, naturally, secondary attempt to stop a stream caused an error. This situation is specific, but nevertheless serious.
To correct this, you need to delete or comment out line " TSDLEventThread (FThread) .Owner: = nil; " In a method " TSDLWindow. StopThread ".

2) These lines need to be transfered from TSDLWindow.CreateOrRecreateSDLSurface to TSDLWindow.ResizeGLWindow:

const
cPixelDepthToBpp: array[Low(TSDLWindowPixelDepth)..High(TSDLWindowPixelDepth)] of Integer = (16, 24);
var
videoFlags : Integer;
...
videoFlags := BuildSDLVideoFlags;
FSDLSurface := SDL_SetVideoMode(Width, Height, cPixelDepthToBpp[PixelDepth], videoflags);
if not Assigned(FSDLSurface) then
RaiseSDLError('Unable to create surface.');

The problem was that after resolution was changed, mouse coordinates remained the same, i.e. corresponded to SDL_SetVideoMode.

Discussion