Commit Graph

2857 Commits

Author SHA1 Message Date
Stefan Dösinger 66778ed9ec wined3d: Implement EXP and EXP2 fog in GLSL. 2009-02-11 12:21:51 +01:00
Stefan Dösinger 693d9ded47 wined3d: Properly set the fog frag coord according to the FOGTABLEMODE.
This also fixes the test that an earlier patch broke, so the todo_wine can be
removed again.
2009-02-11 12:21:44 +01:00
Stefan Dösinger 8dcd51286d WineD3D: Put vertex shader duplication infrastructure in place. 2009-02-11 12:21:25 +01:00
Michael Stefaniuc 118c75a8c7 wined3d: Remove superfluous pointer casts. 2009-02-03 12:40:14 +01:00
Michael Stefaniuc cc6b283d3a wined3d: Remove some unused defines. 2009-02-03 12:40:12 +01:00
Henri Verbeet bae1ec98ca wined3d: Don't use drawStridedFast() for drawing pretransformed vertices.
This was exposed by adding EXT_vertex_array_bgra support, previously we would
almost never hit this because color data being present would already prevent
us from using drawStridedFast(). Thanks to Stefan for spotting this.
2009-01-23 13:12:58 +01:00
Henri Verbeet 0cc5f0d3eb wined3d: Don't use drawStridedFast() when pointsize data is present. 2009-01-23 13:12:52 +01:00
Henri Verbeet e82eef28f9 wined3d: Take EXT_vertex_array_bgra into account in send_attribute() and loadNumberedArrays(). 2009-01-23 13:12:47 +01:00
Paul Chitescu 540febecf9 wined3d: Detect Radeon Xpress Series, report PCI ID of Radeon Xpress 200M. 2009-01-21 10:24:44 +01:00
Stefan Dösinger 3d97055be7 wined3d: Get rid of is_compiled in the pixel shader. 2009-01-20 12:55:17 +01:00
Stefan Dösinger 50109aa969 wined3d: Get rid of last_was_foggy_shader & friends.
The fog settings do not depend on wether the shader writes to oFog or not,
instead they depend on the FOGVERTEXMODE and FOGTABLEMODE settings, and if a
vertex shader is bound at all.

It works the same way as with the fixed function, and having a vertex shader
is the same as using pretransformed vertices, just that the fog coord comes
from the shader instead of the specular color:

FOGTABLEMODE != NONE: The Z coord is used, oFog is ignored
FOGTABLEMODE == NONE, with VS: oFog is used
FOGTABLEMODE == NONE, no VS, XYZ: Z is used
FOGTABLEMODE == NONE, no VS, XYZRHW: diffuse color is used
2009-01-20 12:45:40 +01:00
Stefan Dösinger 3c3272dc41 wined3d: Don't single-allocate new gl shaders. 2009-01-20 12:45:09 +01:00
Henri Verbeet 5d875906c1 wined3d: Remove some superfluous pointer casts. 2009-01-20 12:34:05 +01:00
Henri Verbeet a966293f59 wined3d: Add an IWineD3DDeviceParent interface.
Other than being a bit nicer than passing function pointers all over the
place, this helps dxgi/d3d10. While the swapchain itself is created in dxgi,
its surfaces are constructed in d3d10core, which makes it impractical for dxgi
to pass the appropriate function pointers.
2009-01-16 13:29:32 +01:00
Henri Verbeet 44240eff27 wined3d: Remove some comments. 2009-01-15 12:43:32 +01:00
Henri Verbeet 17b94f6034 wined3d: Implement a R5G6B5 to X8R8G8B8 surface format converter.
Based on a patch by Mike Ruprecht.
2009-01-15 12:43:28 +01:00
Henri Verbeet 4c7e72bb96 wined3d: Fix a memory leak in CreateSwapChain() error handling. 2009-01-14 13:51:00 +01:00
Henri Verbeet c8c073fc9b wined3d: Get rid of D3DCREATEOBJECTINSTANCE. 2009-01-14 13:51:00 +01:00
Henri Verbeet 9440dfedf4 wined3d: Remove AddDirtyRect() from the public interface. 2009-01-14 13:51:00 +01:00
Henri Verbeet fd90021666 wined3d: Remove AddDirtyBox() from the public interface.
This is an internal wined3d function.
2009-01-14 13:51:00 +01:00
Henri Verbeet 881780276b wined3d: Remove CleanDirtyBox().
It's never used.
2009-01-14 13:51:00 +01:00
Henri Verbeet a37782595f wined3d: Fix cube texture creation error handling. 2009-01-13 15:20:56 +01:00
Henri Verbeet d030cbdad2 wined3d: Fix volume texture creation error handling. 2009-01-13 15:20:52 +01:00
Henri Verbeet 99d3c62163 wined3d: Fix surface creation error handling. 2009-01-13 15:20:44 +01:00
Henri Verbeet 2654a148de wined3d: Fix texture creation error handling.
Doing the levels calculation before the object is created prevents leaking
resources and avoids changing baseTexture.levels after it's been initialized
by basetexture_init().
2009-01-13 15:20:38 +01:00
Henri Verbeet e4cfbdd4f7 wined3d: Get rid of D3DCREATERESOURCEOBJECTINSTANCE. 2009-01-13 15:20:28 +01:00
Henri Verbeet b069321650 wined3d: Fix and unify shader creation error handling. 2009-01-12 13:22:07 +01:00
Henri Verbeet 894edc49cc wined3d: Get rid of D3DCREATESHADEROBJECTINSTANCE. 2009-01-12 13:22:02 +01:00
Henri Verbeet 87627c811e wined3d: Get rid of D3DINITIALIZEBASETEXTURE. 2009-01-12 13:21:56 +01:00
Henri Verbeet 00a4b85fa9 wined3d: Update the pixelshader when the texture type changes. 2009-01-12 13:21:51 +01:00
Stefan Dösinger 365e1f3b07 wined3d: Avoid hooking non-fog glEnable/glDisable calls.
This prevents fallout from the GL_EXT_fog_coord emulation. glEnable
and glDisable calls other than those that change GL_FOG are not
hooked. The glEnableWINE and glDisableWINE functions can be used to
add other hooks too if ever needed.
2009-01-12 13:03:47 +01:00
Stefan Dösinger 1deafcb5a7 wined3d: Split the remains of state_fog. 2009-01-12 13:02:49 +01:00
Stefan Dösinger 061087811f wined3d: Remove the apply_pshader_fog state handler.
The fog doesn't depend on pixel shaders any longer(but still vice
versa), so we don't need this state any more.
2009-01-12 13:02:39 +01:00
Stefan Dösinger 2dd18635c9 wined3d: Move fogdensity and fogcolor to the fragment pipeline. 2009-01-12 13:02:29 +01:00
Stefan Dösinger e61aa24aa3 wined3d: Use the ARB fog option in ARB_fragment_program shaders.
This is the "replacement" for the fog coord optimization removed in
the previous patch.
2009-01-12 13:02:19 +01:00
Stefan Dösinger 7c21147dcd wined3d: Remove the pixelshader fogstart/fogend optimization. 2009-01-12 13:01:49 +01:00
Rico Schüller 5e79b0608d wined3d: Add a checkGLcall() after glReadBuffer. 2009-01-10 18:04:28 +01:00
Allan Tong 29dd286d79 wined3d: Add code to cleanup device multistate_funcs. 2009-01-10 17:43:11 +01:00
Stefan Dösinger a69c86d3f5 ddrawex: Add a test for the permanent DC function. 2009-01-09 16:26:06 +01:00
Henri Verbeet 9d8c6326c0 wined3d: Remove stray tabs. 2009-01-09 14:06:14 +01:00
Henri Verbeet ac914262ed wined3d: Rewrite BeginStateBlock() to use CreateStateBlock() instead of duplicating the code. 2009-01-09 14:06:14 +01:00
Henri Verbeet 9d523ebd8f wined3d: Remove a silly check in drawStridedInstanced(). 2009-01-09 14:06:14 +01:00
Henri Verbeet 92488ca7c1 wined3d: Simplify checking if an attribute is used in loadNumberedArrays(). 2009-01-09 14:06:14 +01:00
Henri Verbeet d9e58e6591 wined3d: Failing HeapAlloc() should be an ERR. 2009-01-09 14:06:13 +01:00
Henri Verbeet e028e3f7bd wined3d: Use GL_ALIASED_POINT_SIZE_RANGE to retrieve the max point size. 2009-01-09 14:06:13 +01:00
Henri Verbeet 45a61d1ac4 wined3d: Enable GL_HALF_FLOAT_NV when NV_HALF_FLOAT is supported.
This makes more sense than the other way around.
2009-01-08 13:21:56 +01:00
Henri Verbeet b1812c690c wined3d: Add support for EXT_vertex_array_bgra.
This allows us to skip BGRA->RGBA color conversion for vertex attributes if
this extension is present.
2009-01-08 13:21:51 +01:00
Henri Verbeet 6791e6b752 wined3d: Simplify handling of swizzled attributes.
This should also be a little bit faster.
2009-01-08 13:21:43 +01:00
Henri Verbeet cc447eac55 wined3d: Move position_transformed out of u.s in struct WineDirect3DVertexStridedData. 2009-01-08 13:21:31 +01:00
Henri Verbeet 1a1f5ec69d wined3d: Cleanup drawStridedFast().
Remove some uncessary code and use more descriptive parameter names. Note that
max_vertex_idx isn't the same as "minIndex + calculatedNumberOfindices - 1"
but rather "minIndex + numberOfVertices - 1". calculatedNumberOfindices just
specifies the number of vertices that's drawn, while numberOfVertices
specifies the range of vertices that's drawn.
2009-01-08 13:21:23 +01:00