Commit ad85c9da authored by Sam Lantinga's avatar Sam Lantinga

Fixed bug 1338 - Direct3D renderer should set D3DCREATE_FPU_PRESERVE for not...

Fixed bug 1338 - Direct3D renderer should set D3DCREATE_FPU_PRESERVE for not behaving vastly different on doubles (causes 3rd party lib crashes!)

Jonas Thiem 2011-11-29 12:28:02 PST
Direct3D renderer should set D3DCREATE_FPU_PRESERVE for not behaving vastly
different to OpenGL/software rendering on doubles and break some libraries
really badly.

Most notable affected example: Lua, which does the most unpredictable things
which are really almost impossible to debug/find out for beginners who never
heard this culprit exists.

Since I believe all renderers should behave the same on that doubles simply
work as expected in a program, this should really be changed! (also this wasted
a few days of my life wondering why everything in my program was so broken)
parent 3a7d58dd
...@@ -441,11 +441,11 @@ D3D_CreateRenderer(SDL_Window * window, Uint32 flags) ...@@ -441,11 +441,11 @@ D3D_CreateRenderer(SDL_Window * window, Uint32 flags)
result = IDirect3D9_CreateDevice(data->d3d, data->adapter, result = IDirect3D9_CreateDevice(data->d3d, data->adapter,
D3DDEVTYPE_HAL, D3DDEVTYPE_HAL,
pparams.hDeviceWindow, pparams.hDeviceWindow,
(caps. D3DCREATE_FPU_PRESERVE | ((caps.
DevCaps & DevCaps &
D3DDEVCAPS_HWTRANSFORMANDLIGHT) ? D3DDEVCAPS_HWTRANSFORMANDLIGHT) ?
D3DCREATE_HARDWARE_VERTEXPROCESSING : D3DCREATE_HARDWARE_VERTEXPROCESSING :
D3DCREATE_SOFTWARE_VERTEXPROCESSING, D3DCREATE_SOFTWARE_VERTEXPROCESSING),
&pparams, &data->device); &pparams, &data->device);
if (FAILED(result)) { if (FAILED(result)) {
D3D_DestroyRenderer(renderer); D3D_DestroyRenderer(renderer);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment