Commit Graph

684 Commits

Author SHA1 Message Date
Henri Verbeet 6bd741e3ce d3d8: Add some stateblock tests for device resources. 2009-10-13 11:38:28 +02:00
Henri Verbeet eb9727bbab d3d8: Cleanup the stateblock test callbacks a bit.
This mostly just makes the naming more conistent with what we use in other D3D
code, but also passes the device to the init() and cleanup() callbacks to
allow device resources to be created there. Future tests require this.
2009-10-12 12:35:58 +02:00
Henri Verbeet 1e5c398439 d3d8: Add tests for D3DSBT_PIXELSTATE stateblocks. 2009-10-09 11:50:30 +02:00
Henri Verbeet aa576b3d35 d3d8: Add tests for D3DSBT_VERTEXSTATE stateblocks. 2009-10-09 11:50:29 +02:00
Henri Verbeet 00e7ec9cd6 d3d8: Add some tests for CreateStateBlock(). 2009-10-08 13:53:56 +02:00
Henri Verbeet a5b2721706 d3d8: Don't test D3DRS_DEBUGMONITORTOKEN in the stateblock tests.
It looks like this render state isn't stored in the stateblock but directly in
the device. I doubt a lot of applications depend on that though, so just
disable the test for the moment.
2009-10-08 13:53:34 +02:00
Henri Verbeet d6f4892722 d3d8: Rename abort_stateblock() to delete_stateblock() in the stateblock tests. 2009-10-07 12:24:25 +02:00
Henri Verbeet fb5079815d d3d8: Use separate fields for data to check/apply in the stateblock tests. 2009-10-07 12:24:15 +02:00
Henri Verbeet 17909a0c52 d3d8: Get rid of the unused "return_data_buffer" in the stateblock tests. 2009-10-07 12:24:03 +02:00
Henri Verbeet 6dd6074f60 d3d8: Make the individual stateblock tests responsible for checking data. 2009-10-05 13:46:01 +02:00
Henri Verbeet d818e4edf6 d3d8: Always pass "struct event_data" to "event_fn" in the stateblock tests. 2009-10-05 13:46:01 +02:00
Allan Tong 6792bb8843 d3d8: Don't release the parent device before destroying its children. 2009-09-29 12:05:53 +02:00
Henri Verbeet 47c84f4f7f wined3d: Use the DXGI naming convention for all formats. 2009-09-25 15:15:44 +02:00
Henri Verbeet 906071aa9f d3d8: It's not an error to have a NULL texture bound to a stage. 2009-09-25 15:15:00 +02:00
Henri Verbeet c64da00de7 wined3d: Rename IWineD3DDevice::GetIndices() to IWineD3DDevice::GetIndexBuffer(). 2009-09-25 15:14:52 +02:00
Henri Verbeet 60e32659a7 wined3d: Rename IWineD3DDevice::SetIndices() to IWineD3DDevice::SetIndexBuffer(). 2009-09-25 15:14:44 +02:00
Henri Verbeet 27723affc9 d3d8: Set the vertex declaration's shader handle in vertexdeclaration_init(). 2009-09-25 15:14:09 +02:00
Henri Verbeet 789372afa8 wined3d: Don't free D3D pixel shaders until the wined3d pixel shader is destroyed. 2009-09-24 13:24:53 +02:00
Henri Verbeet 717419da11 d3d8: Add a separate function for pixel shader initialization. 2009-09-24 13:24:47 +02:00
Henri Verbeet ca05ef5dd0 wined3d: Don't free D3D vertex shaders until the wined3d vertex shader is destroyed. 2009-09-24 13:24:19 +02:00
Henri Verbeet afed6a3f77 d3d8: Add a separate function for vertex shader initialization. 2009-09-24 13:24:11 +02:00
Henri Verbeet 66a7236590 wined3d: Don't free D3D vertex declarations until the wined3d vertex declaration is destroyed. 2009-09-23 12:36:28 +02:00
Henri Verbeet b6d422446b d3d8: Add a separate function for vertex declaration initialization from an FVF. 2009-09-23 12:35:42 +02:00
Henri Verbeet f394dfc0f8 d3d8: Add a separate function for vertex declaration initialization. 2009-09-23 12:35:08 +02:00
Henri Verbeet 93b0600829 wined3d: Don't free D3D buffers until the wined3d buffer is destroyed. 2009-09-18 08:55:25 -05:00
Henri Verbeet b1bf50d751 d3d8: Add a separate function for vertex buffer initialization. 2009-09-18 08:55:18 -05:00
Henri Verbeet 0201ddf264 d3d8: Add a separate function for index buffer initialization. 2009-09-18 08:55:11 -05:00
Henri Verbeet a8e8f763bf wined3d: Don't free D3D textures until the wined3d texture is destroyed. 2009-09-18 08:54:34 -05:00
Henri Verbeet 76c61cf536 d3d8: Add a separate function for texture initialization. 2009-09-17 10:10:16 -05:00
Henri Verbeet de3bd86fb6 wined3d: Don't free D3D cube textures until the wined3d cube texture is destroyed. 2009-09-17 10:09:44 -05:00
Henri Verbeet b5b58e423d d3d8: Add a separate function for cube texture initialization. 2009-09-17 10:09:33 -05:00
Henri Verbeet d84e2fa747 d3d8: Mark internal symbols hidden. 2009-09-17 10:09:21 -05:00
Henri Verbeet a286646f51 wined3d: Don't free D3D volume textures until the wined3d volume texture is destroyed. 2009-09-16 13:06:06 -05:00
Henri Verbeet eedfc95eef d3d8: Add a separate function for volume texture initialization. 2009-09-16 13:05:58 -05:00
Henri Verbeet e9000d2e6c wined3d: Don't free D3D volumes until the wined3d volume is destroyed. 2009-09-16 13:05:20 -05:00
Henri Verbeet ff923245e1 d3d8: Add a separate function for volume initialization. 2009-09-16 13:05:06 -05:00
Henri Verbeet a5214c306f wined3d: Don't free D3D surfaces until the wined3d surface is destroyed.
This prevents for example a d3d9 depth stencil from being destroyed when it
has no external references but is still in use by the device/stateblock. A
nice side effect is that it simplifies handling of "implicit" surfaces like
the frontbuffer and backbuffers, as well as the forwarding of reference counts
for surfaces that are part of a texture.
2009-09-16 13:04:32 -05:00
Henri Verbeet e02f7b2062 d3d8: Add a separate function for surface initialization. 2009-09-15 14:32:30 -05:00
Henri Verbeet 2b2fc827ce wined3d: Remove unused parameters to drawPrimitive(). 2009-09-11 12:09:14 +02:00
Henri Verbeet fecbf7b416 d3d8: Remove trailing spaces. 2009-08-31 12:41:21 +02:00
Michael Stefaniuc ebe5219c6b d3d8: Release the lock instead of locking a second time (Smatch). 2009-08-26 12:10:27 +02:00
Henri Verbeet f9c791f9ca d3d8: Use a wined3d cs for wined3d locking.
We will need this for d3d10, where both dxgi and d3d10core are making wined3d
calls. Right now d3d8/d3d9 also use this to protect their own data, but
eventually we should push this down into wined3d itself and use something a
bit more fine-grained. There's no good reason that doing e.g. a vertex buffer
upload in some thread should block all of wined3d.
2009-08-25 11:12:17 +02:00
Henri Verbeet 4d1379f6a9 d3d8: Remove stray tabs. 2009-08-25 11:09:52 +02:00
Stefan Dösinger 6f5a1d9a15 wined3d: Filter WINED3DSTENCILCAPS_TWOSIDED in d3d8. 2009-08-07 14:56:48 +02:00
Stefan Dösinger 296573caae d3d: Filter R8G8B8 in d3d8 and d3d9. 2009-08-07 14:56:40 +02:00
Henri Verbeet 699f68cdee wined3d: Get rid of some pointers in WINED3DADAPTER_IDENTIFIER.
This also avoids some unchecked strcpy() calls.
2009-07-07 11:50:30 +02:00
Henri Verbeet 7d3beb6b79 d3d: Add a test for releasing the device after destroying the window. 2009-06-29 12:30:32 +02:00
Henri Verbeet f0e8307566 d3d8/tests: Make sure the device is released properly. 2009-06-23 11:48:02 +02:00
Henri Verbeet a25947fa7e d3d8: Add WINED3DFMT_W11V11U10 <=> D3DFMT_W11V11U10 conversion. 2009-06-19 13:52:42 +02:00
Paul Vriens 91e306579b d3d8/tests: Fix some tests (logical || with non-zero constant). 2009-06-19 13:52:32 +02:00
Henri Verbeet 7dd5cc8749 d3d8: Add tests for deleting invalid shader handles. 2009-06-16 13:36:59 +02:00
Henri Verbeet 1bbc65b155 d3d8: Deleting an invalid pixel shader handle should return D3D_OK. 2009-06-16 13:36:54 +02:00
Henri Verbeet dc3958c079 d3d8: Do some more verification on handles. 2009-06-16 13:36:48 +02:00
Henri Verbeet 88162fabb8 wined3d: Get rid of the pointers in WINED3DSURFACE_DESC. 2009-06-15 13:42:29 +02:00
Henri Verbeet 4bc6b376e0 wined3d: Remove the useless "resource_type" parameter from IWineD3DDevice::CreateSurface(). 2009-06-12 17:33:15 +02:00
Henri Verbeet 621da64245 wined3d: Get rid of the silly pointers in WINED3DVOLUME_DESC. 2009-06-09 17:01:14 +02:00
Henri Verbeet 13a05caa97 wined3d: Remove the "declaration" parameter to IWineD3DDeviceImpl_CreateVertexShader().
Once upon a time this was used for creating fake vertex shader
attribute semantics for d3d8 shaders. We don't need this anymore since
device_stream_info_from_declaration() will use the vertex
declaration's output slot to load the data, if present. That also
avoids the potentially expensive matching of attribute semantics
between vertex shader and declaration for d3d8.
2009-05-28 12:42:18 +02:00
Henri Verbeet f0e303b0f2 wined3d: Add the output signature to IWineD3DDevice_CreateVertexShader(). 2009-05-26 13:49:55 +02:00
Henri Verbeet 9a579a43b1 wined3d: Use the output signature to map SM4 pixel shader outputs to the appropriate register. 2009-05-11 12:43:00 +02:00
Stefan Dösinger 9f1731edb6 d3d: Limit d3d8 and d3d9 vshader constants to 256.
DX10 cards support 512(ATI) or 1024(Nvidia) vertex shader constants in
GL. The dx9 DXCapsViewer shows that dx10 windows drivers only claim
256 constants on Windows, so we can and should do the same.
2009-04-27 13:23:36 +02:00
David Adam 33eb939390 wined3d: SetDepthStencilSurface is always called when AutoDepthStencil is enabled. 2009-04-24 11:51:27 +02:00
Henri Verbeet 6f33b97c94 wined3d: Get rid of the shared_handle parameter.
I don't expect us to support this in the near future, and right now it's just
dead code.
2009-04-23 14:22:06 +02:00
David Adam 458902b5b2 d3d8: Add tests for IDirect3D8Device_Reset. 2009-04-22 12:55:45 +02:00
Stefan Dösinger cb1c9dcda9 d3d: Remove the format from index buffers. 2009-04-09 16:28:25 +02:00
Stefan Dösinger f0efa97413 wined3d: Remove the buffer fvf. 2009-04-09 16:28:10 +02:00
Stefan Dösinger ff16f30677 d3d8: Store the fvf in the d3d8 vertex buffer. 2009-04-09 16:27:43 +02:00
Stefan Dösinger 513a493f00 wined3d: Merge IWineD3DIndexBuffer and IWineD3DBuffer. 2009-04-08 11:37:29 +02:00
Stefan Dösinger 3ed94329a3 wined3d: Use Map and Unmap for index buffers.
Just a change in name to prepare for the next patch
2009-04-08 11:36:18 +02:00
Stefan Dösinger dc80a3ede5 d3d: Unify WINED3DVERTEXBUFFER_DESC and WINED3DINDEXBUFFER_DESC. 2009-04-08 11:36:02 +02:00
Stefan Dösinger bc07ad0579 d3d8, d3d9: Don't rely on the wined3d buffer type. 2009-04-08 11:35:29 +02:00
Henri Verbeet 4434d00f84 wined3d: Unify vertex and texture formats.
Some fields should be redundant now, eg. gl_vtx_type and glType. I'll leave
that for a different patch to fix though.
2009-03-27 15:51:25 +01:00
Henri Verbeet 6f206c75ec wined3d: Don't create an END element for wined3d vertex declarations.
Wined3d doesn't need it since it already has the element count.
2009-03-27 15:51:25 +01:00
Henri Verbeet 41ea1e1df7 d3d8: Fix some indentation. 2009-03-26 14:47:21 +01:00
Henri Verbeet c0cefb3501 d3d8: Cleanup the vertexshader handling code a bit. 2009-03-24 12:56:50 +01:00
Henri Verbeet 4131135a9f d3d8: Cleanup the pixelshader handling code a bit.
This mostly just reduces the nesting to something more sane.
2009-03-24 12:56:33 +01:00
Henri Verbeet 3f559f26d6 d3d8: Properly handle unsetting the pixelshader in SetPixelShader(). 2009-03-24 12:56:25 +01:00
Henri Verbeet 775ea907a3 d3d8: Fix locking. 2009-03-23 14:08:03 +01:00
Henri Verbeet 72b5378758 d3d8: Get rid of resource.c. 2009-03-23 14:08:03 +01:00
Henri Verbeet 7c0931b7c2 d3d8: Get rid of basetexture.c. 2009-03-23 14:08:03 +01:00
Michael Stefaniuc d4c2a387c8 d3d8/tests: Use ULONG instead of unsigned long. 2009-03-23 12:41:08 +01:00
Henri Verbeet 24100cd026 d3d8: Release the d3d8 shader once we're done with it in IDirect3DDevice8Impl_GetPixelShader(). 2009-03-13 11:28:35 +01:00
Henri Verbeet f9d82ed1de d3d8: Handles aren't supposed to be pointers.
This might even make d3d8 a bit more 64-bit safe.
2009-03-10 12:08:58 +01:00
Henri Verbeet cbc8630019 d3d8: Make the shader handle table a bit more generic. 2009-03-10 12:08:32 +01:00
Henri Verbeet 954c3e22e1 d3d8: Don't call Release() in a while loop.
There should only ever be a single reference to these objects, since only
their handle is exposed outside d3d8. Should there be more references than
that, calling Release() in a while loop probably isn't the right approach.
2009-03-10 12:07:59 +01:00
Henri Verbeet 57d971121a d3d8: Fix some sign compare warnings. 2009-03-10 12:07:41 +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
Paul Vriens 1dc4d5caae d3d8/tests: Use win_skip() and skip() where appropriate. 2009-03-02 12:29:01 +01:00
Paul Vriens a1ca18eaf8 d3d8/tests: Fix a test failure on some boxes. 2009-02-25 14:05:36 +01:00
Paul Vriens b6263f6664 d3d8/tests: Fix a test failure on VMware. 2009-02-25 14:05:31 +01:00
Francois Gouget bd14f24b69 d3d8/tests: Use win_skip() to skip over unimplemented functionality. 2009-02-25 12:49:25 +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 d575b5fecb d3d8: Explicitly convert between D3DFORMAT and WINED3DFORMAT values. 2009-02-20 11:09:54 +01:00
Ge van Geldorp ae79b02ca6 d3d8/tests: Make tests pass on a W2K8 VM. 2009-01-27 11:30:03 +01:00
Francois Gouget 1f601015cd d3d8: Make some device_parent_*() functions static. 2009-01-26 15:13:29 +01:00
Henri Verbeet b5eaca542e d3d8: Properly test for dynamic usage in device_parent_CreateSurface(). 2009-01-16 13:29:52 +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
Michael Stefaniuc 357c3f4a2c d3d8: Remove superfluous pointer casts. 2009-01-14 13:51:01 +01:00