Commit Graph

628 Commits

Author SHA1 Message Date
Henri Verbeet
fd3d769a12 d3d9: Fix locking.
It appears there are some calls to wined3d missing critical sections.
2009-03-23 14:08:03 +01:00
Henri Verbeet
435b528e83 d3d9: Get rid of resource.c. 2009-03-23 14:08:02 +01:00
Henri Verbeet
82dd5bc2a1 d3d9: Get rid of basetexture.c. 2009-03-23 14:08:02 +01:00
Michael Stefaniuc
2df012a01a d3d9/tests: Use LONG instead of long. 2009-03-23 12:41:14 +01:00
Michael Stefaniuc
8e64efeeec d3d9/tests: Fix some ok() strings in the fog test. 2009-03-12 13:09:54 +01:00
Michael Stefaniuc
a242d601cc d3d9/tests: Limit the back buffer to 800x600 in the scissor size test. 2009-03-12 13:09:54 +01:00
Henri Verbeet
39ae94d0b3 d3d9: Present parameters are an array when D3DCREATE_ADAPTERGROUP_DEVICE is specified. 2009-03-11 13:03:33 +01:00
Henri Verbeet
1b9a6fb4e9 d3d9: Fix some sign compare warnings. 2009-03-09 14:44:09 +01:00
Henri Verbeet
09f21f3fd8 d3d9: Improve IDirect3DDevice9::SetFVF() code flow. 2009-03-06 15:38:19 +01:00
Henri Verbeet
aa3027a604 wined3d: Merge IWineD3DVertexBuffer with IWineD3DBuffer.
That still leaves IWineD3DIndexBuffer, but that code is also mostly similar,
except for the conversion code (which will be unused there).
2009-03-06 15:35:58 +01:00
Henri Verbeet
702eeb6b0c wined3d: Add separate methods for setting the primitive type. 2009-03-05 16:16:25 +01:00
Henri Verbeet
602bb1f551 wined3d: Pass the vertex count rather than the primitive count to wined3d draw methods. 2009-03-05 16:16:24 +01:00
Jörg Höhle
7a4ed15884 d3d9/tests: Fix typos in text. 2009-03-04 15:45:43 +01:00
Francois Gouget
3be6654259 d3d9/tests: Use win_skip() to skip over unimplemented functionality. 2009-02-25 12:49:30 +01:00
Stefan Dösinger
4aa0591c96 d3d9: Add an alpha blending test. 2009-02-24 16:57:30 +01:00
Henri Verbeet
0048a0373b d3d10core: Keep a reference to the wined3d device in the d3d10 device. 2009-02-23 12:20:29 +01:00
Henri Verbeet
8cefc47d81 wined3d: Add DXGI formats to WINED3DFORMAT. 2009-02-20 11:10:37 +01:00
Henri Verbeet
61a9efc4b9 d3d9: Explicitly convert between D3DFORMAT and WINED3DFORMAT values. 2009-02-20 11:10:14 +01:00
Henri Verbeet
445255983d d3d9: Also copy the AutoDepthStencilFormat field in GetPresentParameters(). 2009-02-19 12:53:50 +01:00
Stefan Dösinger
e51f2a0e6e d3d9: Test table fog and exp fog in the shader fog test. 2009-02-11 12:22:00 +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
Michael Stefaniuc
bca813a5a6 d3d9: Remove superfluous pointer casts. 2009-01-29 14:06:18 +01:00
Marcus Meissner
7111ca5506 d3d9: Remove useless NULL check in stateblock test (Coverity). 2009-01-28 12:30:48 +01:00
Alasdair Sinclair
f95b0209ab d3d9/tests: Fix missing void in empty parameter list. 2009-01-28 12:10:47 +01:00
Marcus Meissner
ace65a527f d3d9: Initialize hr (Coverity). 2009-01-28 12:10:28 +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
Henri Verbeet
9e7b5676a7 d3d9: Remove some superfluous pointer casts. 2009-01-20 12:34:12 +01:00
Henri Verbeet
e6babd8367 d3d9: Properly test for dynamic usage in device_parent_CreateSurface(). 2009-01-16 13:29:57 +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
Stefan Dösinger
903c774263 d3d9: Use D3DFOG_* constants instead of plain integers. 2009-01-13 17:33:08 +01:00
Stefan Dösinger
b3b60f9602 d3d9: Properly set AutoRestoreDisplayMode. 2009-01-13 16:39:53 +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
352e60e6ed d3d: Explicitly translate texture stage states.
Ddraw and d3d8 already translate half of them, it turns out the lookup
table actually saves lines there.
2009-01-06 12:45:32 +01:00
Henri Verbeet
04808cc5aa d3d9: Don't test invalid texture stages. 2009-01-06 12:45:14 +01:00
Stefan Dösinger
616ea53226 ddraw: Add a test for IDirectDrawSurface::GetDC. 2009-01-03 15:14:38 +01:00
Roderick Colenbrander
a6d28bcc52 d3d9: Relax color matching in bumpmap test. 2009-01-02 11:53:56 +01:00
Henri Verbeet
007c648c20 d3d: Correct some debug levels. 2008-12-30 11:36:50 +01:00
Henri Verbeet
8da71ca6a6 d3d9: Use separate codepaths for failure and NULL return values in GetVertexShader() / GetPixelShader(). 2008-12-30 11:36:42 +01:00
Henri Verbeet
1d9c8a2df7 d3d9: Use a HAL device for the stateblock tests. 2008-12-29 12:16:47 +01:00
Henri Verbeet
de494ffe3c wined3d: The initial value for D3DRS_POINTSIZE_MAX depends on the pointsize limit. 2008-12-29 12:16:42 +01:00
Henri Verbeet
664b58dc6f d3d: Make sure the device is properly released when exiting the tests. 2008-12-29 12:16:35 +01:00
Henri Verbeet
a394dbec13 d3d9: Release the vertex declaration once we're done with it. 2008-12-29 12:16:27 +01:00
Chris Robinson
0bdab5f80c d3d9: Use the correct size for D3DFVF_XYZW. 2008-12-29 11:49:54 +01:00
Henri Verbeet
0fb3cb9314 d3d9: Don't crash in GetFVF() if a NULL vertex declaration is set. 2008-12-24 19:57:51 +01:00
Vincent Pelletier
defe641725 d3d9: Set IDirect3DDevice9Impl_GetVertexShader return value to NULL on error. 2008-12-23 20:14:59 +01:00
Rico Schüller
bf5912208f d3d9/tests: Don't create a Null-shader in d3d9, it will crash. 2008-12-22 14:14:52 +01:00
Henri Verbeet
c889bab8e6 d3d9: Add a test for shader constant application through IDirect3DStateBlock9_Apply().
We already behave correctly here, the test just verifies it.
2008-12-18 13:16:38 +01:00
Henri Verbeet
42036ab6f5 d3d9: Fix a trace. 2008-12-18 13:16:28 +01:00
Henri Verbeet
1e1cf78073 d3d9: Fix the shader constant test.
Using the same values for the test data and the default data masks
potential failures.
2008-12-17 14:02:17 +01:00
Henri Verbeet
4adb342327 wined3d: Remove GetFVF() and SetFVF() from IWineD3DDevice. 2008-12-17 14:02:03 +01:00
Henri Verbeet
46572f682c wined3d: Refuse to create shaders with a NULL function. 2008-12-16 12:51:49 +01:00
Francois Gouget
287dee6e78 d3d9/tests: Make some functions static. 2008-12-12 11:41:53 +01:00
Huw Davies
12b9d37120 d3d9/tests: Skip tests if we can't create the D3D9 object. 2008-12-04 12:51:20 +01:00
Alexandre Julliard
8eccb01a47 d3d9: Make some functions static. 2008-12-04 12:47:04 +01:00
Stefan Dösinger
e04556bb16 wined3d: Fix D3DFMT_R32F, R16F, G16R16F, ... in the pixel shader.
This allows us to drop the load time conversion and the clear
readback hack and replaces it with a color fixup in the fixed
function pipeline replacement.
2008-12-04 12:00:15 +01:00
Henri Verbeet
a6917b143d wined3d: Use IDL to generate wined3d.h. 2008-11-25 13:37:22 +01:00
Francois Gouget
1c87e4664f d3d9: Remove WINAPI on static functions where not needed. 2008-11-24 14:33:06 +01:00
Francois Gouget
001288ecae d3d9: Remove IDirect3DDevice9Impl_GetFrontBuffer() as it is unused. 2008-11-24 14:33:02 +01:00
Stefan Dösinger
cd011661e6 d3d9: Test psize_min vs psize_max vs psize behavior.
Add a test that checks what happens if D3DRS_POINTSIZE, D3DRS_POINTSIZE_MIN
and POINTSIZE_MAX have conflicting values. D3DRS_POINTSIZE_MAX trumps
D3DRS_POINTSIZE_MIN, and both MIN and MAX clamp the D3DRS_POINTSIZE value if it is
outside of their range.
2008-11-20 12:17:18 +01:00
Stefan Dösinger
40c06ea296 d3d9: Add a test for GetTexture with no texture set. 2008-11-04 11:41:20 +01:00
Stefan Dösinger
a8497a5545 wined3d: Fix the num blend values -> type match. 2008-11-04 11:40:37 +01:00
Stefan Dösinger
123a3f44d9 d3d9: WINED3DSURFACE_DESC::MultiSampleType is not a DWORD. 2008-11-04 11:40:29 +01:00
Stefan Dösinger
3d96f97ee1 d3d9: Use the correct AddRef and Release macros. 2008-11-04 11:40:23 +01:00
Michael Stefaniuc
4f199a10ad Remove the remaining casts of NULL. 2008-11-03 13:42:09 +01:00
Stefan Dösinger
93af8d3631 d3d: Do not restore the display mode in ddraw. 2008-11-03 13:34:13 +01:00
Stefan Dösinger
561ebb355f d3d9: Test the effect of lighting on the result alpha. 2008-11-03 13:34:13 +01:00
Henri Verbeet
eb0c0b3f25 d3d9: Don't ignore the GetCursorInfo() return value (LLVM/Clang). 2008-11-03 11:49:31 +01:00
Henri Verbeet
092b51e82a wined3d: Rename CreateAdditionalSwapChain to CreateSwapChain. 2008-10-28 12:46:46 +01:00
Henri Verbeet
7142754820 wined3d: Remove the SDKVersion parameter to WineDirect3DCreate(). 2008-10-24 14:24:59 +02:00
Alexandre Julliard
90fd6a2f4d d3d9: Convert source files to utf-8. 2008-10-18 19:19:23 +02:00
Detlef Riekenberg
7cfaf4aca0 d3d9/tests: Fix test for old gfx-card. 2008-10-13 12:03:43 +02:00
Detlef Riekenberg
c27b37a77e d3d9/tests: Fix test on win9x. 2008-10-13 12:03:38 +02:00
Francois Gouget
0f38a60dd3 Assorted spelling fixes. 2008-10-10 14:14:05 +02:00
Michael Stefaniuc
6a908eb149 d3d9/tests: Use FAILED instead of !SUCCEEDED. 2008-10-08 13:42:25 +02:00
Henri Verbeet
5780b9b56d d3d9: Use more reasonable texture dimensions.
caps.MaxTextureWidth / caps.MaxTextureHeight can potentially be very
large, which could cause a driver to run out of memory. Arguably the
driver shouldn't report such large limits, but there's no reason for
us to create a texture larger than 1024x1024 either.
2008-10-07 12:11:40 +02:00
Rob Shearman
0f236745a9 d3d8/9: Use WINED3D_OK instead of D3D_OK in vertexshader.c. 2008-10-06 13:07:02 +02:00
Rob Shearman
a4b2a2c380 d3d9: Fix incorrect ordering of brackets in IDirect3DVertexShader9Impl_GetDevice.
The comparison should be (D3D_OK == hr && myDevice), not (D3D_OK == (hr && myDevice)).
(Found with PreFast.)
2008-09-30 10:20:22 -05:00
Rob Shearman
f6813e55c5 d3d9: Fix type used to store return value in IDirect3DDevice9Impl_GetNPatchMode.
It should be a float, not an HRESULT.
2008-09-15 13:23:30 +02:00
Stefan Dösinger
631f751fe1 wined3d: Add a test for zenable=false, zwriteenable=false.
I suspected that in this situation d3d writes to the z buffer, but the
test shows that I was mistaken
2008-09-11 11:43:42 +02:00
Henri Verbeet
3783c5c029 d3d9: Add a test for auto depth stencil reset. 2008-09-10 12:05:41 +02:00
Henri Verbeet
8a77aa03e0 d3d9: Only run the reset test once. 2008-09-10 12:05:36 +02:00
Henri Verbeet
c0d770de9e d3d9: GetDepthStencilSurface returns D3DERR_NOTFOUND when no depth stencil is present. 2008-09-10 12:03:55 +02:00
Rico Schüller
525e30e6b7 wined3d/d3d9: Set the initial scissorrect to the dimesions of the backbuffer from the first swapchain of the device. 2008-09-04 12:26:59 +02:00
Stefan Dösinger
d5f05c59c7 ddraw: Beware of the surface type when checking for format support. 2008-09-02 14:56:26 +02:00
Stefan Dösinger
8b1727ae62 wined3d: Report incorrect filtering settings in ValidateDevice. 2008-09-02 14:56:06 +02:00
Stefan Dösinger
b294e43206 wined3d: D3DTOP_DOTPRODUCT3 colorop overrides the alphaop.
Note that the fix is only implemented in the arbfp and atifs fragment
pipeline. Unfortunately nvrc doesn't support dot3 as alpha operation.
2008-08-27 13:21:24 +02:00
Stefan Dösinger
4767be8cde wined3d: The final luminance factor is clamped. 2008-08-26 12:07:41 +02:00
Stefan Dösinger
6c6a6a2e61 wined3d: Implement D3DTA_ALPHAREPLICATE in arbfp and atifs.
Also adds a simple test for this. In the fixed function and nvrc/nvts
code this already works properly.
2008-08-26 12:07:41 +02:00
Stefan Dösinger
6c12b81552 wined3d: Implement D3DTOP_BUMPENVMAPLUMINANCE. 2008-08-26 12:07:41 +02:00
Stefan Dösinger
e8b9f167d6 wined3d: Fix the texcoord size mask.
There is room for 8 texture coordinates, not just 4.
2008-08-26 12:07:41 +02:00
David Adam
acaeb92042 d3d8/d3d9: Remove unconsistent tests for SetMaterial. 2008-08-22 11:32:09 +02:00
Stefan Dösinger
b692e86104 wined3d: De-pickify the texbem test. 2008-08-21 13:34:06 +02:00
Stefan Dösinger
a901f0966d d3d9: Make the bumpmap test less picky. 2008-08-21 13:33:58 +02:00
Stefan Dösinger
bbf313e76a d3d9: Test for fixed function value clamping. 2008-08-21 13:27:58 +02:00
Stefan Dösinger
6a24b28b75 wined3d: Support YUV formats with GL_APPLE_ycbcr_422. 2008-08-20 12:25:00 +02:00
Stefan Dösinger
e178ddd9e1 wined3d: Use a swapchain for GDI surfaces.
This is a long-needed cleanup aimed at removing the ddraw_primary,
ddraw_window, ddraw_width and ddraw_height members from
IWineD3DDeviceImpl, which just do not belong there.  Destination
window and screen handling is supposed to be done by swapchains.
2008-08-19 12:21:32 +02:00
Rob Shearman
30cd9b473e d3d9: Remove unneeded local variable in IDirect3DDevice9Impl_SetFVF. 2008-08-18 17:15:57 +02:00
Rob Shearman
320aac97e4 d3d9: Fix variable type in IDirect3DDevice9Impl_GetSoftwareVertexProcessing.
IWineD3DDevice_GetSoftwareVertexProcessing returns a BOOL, not an HRESULT.
2008-08-18 17:15:56 +02:00
Stefan Dösinger
ef647c9ad9 d3d9: Skip gracefully if A16R16G16B16 is not supported. 2008-08-04 13:12:20 +02:00
Francois Gouget
2592687321 d3d9: Add an API documentation stub to make winapi_check happy. 2008-08-04 13:04:39 +02:00