GTA3 crash :( -- RedHat 9
Jason Edmeades
us at the-edmeades.demon.co.uk
Thu Aug 14 16:02:55 CDT 2003
>>However, try commenting out the line in directx.c :
>>object->visInfo = glXChooseVisual(object->display,
>>DefaultScreen(object->display), dblBuf);
>>
>>
This seems to work ok on some (my!) drivers, but I know others have had
problem with it.
>Basically, for this to work reliably, you have three choices :
>
> - do a full rewrite of the Wine windowing code to be able to somehow
> 'recreate' on the fly an X Window with new parameters (in this case, a
> better visual). This would help me also in the OpenGL code :-)
>
>
Yep - I take it that its not possible to replace the visual of an
existing window? I knowledge of X programming is very low, and I dont
understand how visuals and contexts all fit together. I've also started
looking at some render to texture support Raphael added, and that uses
PBuffers which seem to also magic contexts out of thin air. I have no
idea how things are supposed to fit together, but I'll get there.
> - do as I did for the DesktopDoubleBuffered option, but more generic (by
> adding stencil support to the already existing double buffering option).
> Then people could add in their DLL overrides 'GTA.EXE => windows are
> double buffered and stencilled'.
>
>
I dont like adding configuration options for things which should be
transparent to the user. I'll have to look into this again in the
future, but in the meantime I might put code to catch the X exception
and cope with it. However, the window initialization, fullscreen and
management code is the worst bit of the d3d8 code.
Incidentally, one thing that annoys me is full screen. Does the d3d < 7
code (or opengl code) do resolution switching, and do you have a pointer
to how it occurs. At the moment 'fullscreen' is an undecorated window on
the desktop, keeping the desktop window at the resolution it is already at.
Jason
More information about the wine-devel
mailing list