Right now the ActiveRender code in D3D8 requests a GLX_DEPTH_SIZE of
32 in case the direct3d color format also has a depth of 32. As
verified on various linux drivers (Ati fglrx, Ati (dri) and Nvidia)
the color depth needs to be 24. This patch sets the depth to 24 and it
fixes bugs in 3dmark2001 and other programs.
- use D3DCOLOR macros instead of using shift + masks
- fix a bug where diffuse.lpData checked instead of specular.lpData
- implement color fixup on ARB VShader compilation code:
-> on input parameters using swizzle
-> add is_color parameter on vshader_program_add_param
- some fixes to ATI specific paths of set_tex_op (Christian needs to
complete it)
- fix use of GL_SUPPORT(NV_TEXGEN_REFLECTION). I have used the wrong
define, I'll get a brown paper bag :(
- add a new DEBUG_SINGLE_MODE #define (for debug caps needs)
- better traces for surface dumping
- much better Texture support on Utilities functions and on
CheckDeviceType
- D3DRS_ZVISIBLE as unsupported (as seen in msdn)
(glCompressedTexImage2DARB problem).
- Fix typo on constant.
- Detection of NVidia texture_shader and register_combiners
extensions.
- Begin to implement BUMPMAPPING using NVidia Texture shader extension
(not really working for now).
- implement SetRenderState D3DRS_RANGEFOGENABLE
- fix SetRenderState D3DRS_FOGVERTEXMODE Caps/Detection traces
- fix IDirect3D8::GetAdapterIdentifier to use FillGLCaps and provide
more exact infos (driver versions, vendor, ...)
- split Fake GL Context creation from GetDeviceCaps for external use
- add a new channel (d3d_caps) for all IDirect3D8 Caps/detection traces
- rename fps channel to d3d_fps
- high use of runtime detected OpenGL Caps instead of defines
- update supported Caps using runtime detection
detection (and not build time GL headers)
- add a new debug channel for hardware vertex shaders
- hardware VS "compiler" fixes:
-> special case for address registers (MOV must be replaced by ARL)
-> add line numbers to trace (better to find why NVidia drivers complains)
-> one parse to determine temporary and address registers needs
(@todo: check GL limits)
-> remove duplicate traces from Generic ParseProgram
- try to fix D3DTADDRESS_BORDER, D3DTADDRESS_MIRROR,
D3DTADDRESS_MIRRORONCE using OpenGL extensions
- better set_tex_op: now use Runtime Extension support (and not
compile support)