Commit Graph

374 Commits

Author SHA1 Message Date
Henri Verbeet 80dbeb9699 ddraw: Introduce a ddraw_texture structure as parent for textures. 2013-11-12 14:15:10 +01:00
Henri Verbeet 8aae165fc2 ddraw: Verify that the surface is not a depth buffer in SetRenderTarget().
This check is even more inconsistent between versions. Notice how the v2
interface is particularly broken because it never AddRef()'s the new iface.
This check also seems to be the original source for the questionable behaviour
in d3d_device_set_render_target() of storing the new iface before checking the
result of the wined3d_device_set_render_target(). (In particular,
SetRenderTargetTest() in tests/d3d.c tests for this behavious.)
2013-09-19 19:48:44 +02:00
Henri Verbeet c70376af63 ddraw: Verify that the surface is in video memory in SetRenderTarget().
This is where things become a bit of a mess, because the error checking is
inconsistent between versions.
2013-09-19 19:48:41 +02:00
Henri Verbeet ed92369316 ddraw: Verify that the surface is a render target in d3d_device_set_render_target(). 2013-09-19 19:48:35 +02:00
Henri Verbeet 2cc421f59d ddraw: Verify that surfaces with an indexed format have a palette attached in d3d_device_set_render_target(). 2013-09-18 13:11:21 +02:00
Henri Verbeet 4f89957161 ddraw: Verify that the surface is in video memory in d3d_device_create(). 2013-09-18 13:11:18 +02:00
Henri Verbeet c69cd599a3 ddraw: Verify that surfaces with an indexed format have a palette attached in d3d_device_create(). 2013-09-18 13:11:15 +02:00
Henri Verbeet d2d0c42b6d ddraw: Verify that the surface is a render target in d3d_device_create(). 2013-09-17 12:01:23 +02:00
Henri Verbeet df01e8d6cc ddraw: Fix render target refcount handling.
Similar to AddAttachedSurface() / DeleteAttachedSurface(), we should Release
the interface version that we stored. (And actually store the interface that
we AddRef.)
2013-09-17 12:01:18 +02:00
Henri Verbeet 3c6d11706f ddraw: Just set the render target to NULL in d3d_device_inner_Release().
The wined3d front buffer is not a render target.
2013-09-12 10:59:21 +02:00
Henri Verbeet 1a78667862 wined3d: Allow the first render target to be set to NULL.
Note that it still isn't necessarily safe to render in this case, because
there are places where we assume the first render target is always non-NULL in
order to determine e.g. framebuffer dimensions. It's now the responsibility of
the caller to ensure that doesn't happen.
2013-09-12 10:59:18 +02:00
Henri Verbeet 4735690dc2 ddraw: Introduce a helper function for initializing a D3DDEVICEDESC structure from a D3DDEVICEDESC7 structure. 2013-09-06 12:00:22 +02:00
Stefan Dösinger 22fc22d28b ddraw: Enumerate DXT2 and DXT4. 2013-09-05 17:56:24 +02:00
Stefan Dösinger c0faf86fff ddraw: Fix double to float conversion warnings. 2013-08-01 20:43:42 +02:00
Stefan Dösinger c1663c5583 ddraw: Device2 and Device3 do not have a lighting render state. 2013-06-20 22:14:36 +02:00
Stefan Dösinger 669611b4be ddraw: Send device2_Draw* through device3_Draw*. 2013-06-20 22:14:36 +02:00
Stefan Dösinger 05de3f8cee ddraw: SPECULARENABLE defaults to true in IDirect3DDevice2. 2013-06-20 22:14:36 +02:00
Henri Verbeet 29c43e2efc ddraw: Rename PixelFormat_WineD3DtoDD() to ddrawformat_from_wined3dformat(). 2013-06-07 11:58:29 +02:00
Henri Verbeet e4816996c3 ddraw: Handle the "DirectDrawRenderer" registry key in wined3d. 2013-05-30 10:57:08 +02:00
Stefan Dösinger 57ab0363f5 ddraw: Don't check for NULL in GetCurrentViewport. 2013-01-29 11:48:13 +01:00
Stefan Dösinger 06ff1c710e ddraw: Unset the viewport if the current vp is deleted. 2013-01-29 11:48:05 +01:00
Stefan Dösinger 0209b0a96c ddraw: AddViewport holds a reference to the viewport. 2013-01-29 11:48:00 +01:00
Stefan Dösinger 351730e2d6 ddraw: Check for NULL pointers in SetCurrentViewport. 2013-01-29 11:47:55 +01:00
Stefan Dösinger 8e6e420a9d ddraw: Check for NULL pointers in DeleteViewport. 2013-01-29 11:47:47 +01:00
Stefan Dösinger b822c259fd ddraw: Delete viewports when destroying the device. 2013-01-29 11:47:43 +01:00
Stefan Dösinger 9a0b2a5100 ddraw: device::GetCurrentViewport returns an error if no viewport is set. 2013-01-29 11:47:37 +01:00
Stefan Dösinger d7e5189cc2 ddraw: Implement DrawIndexedPrimitiveStrided with regular draws. 2013-01-25 11:29:28 +01:00
Stefan Dösinger 7e62acc62e ddraw: Implement DrawPrimitiveStrided with regular draws. 2013-01-25 11:29:24 +01:00
Henri Verbeet 1249976eb6 wined3d: Get rid of the surface_type parameter to wined3d_check_device_format(). 2013-01-17 12:22:01 +01:00
Stefan Dösinger d3520ef465 ddraw: Don't discard buffers that haven't been used in draws. 2013-01-10 16:05:34 +01:00
Stefan Dösinger 3b197749f9 ddraw: Align user vertex data. 2012-12-18 12:37:00 +01:00
Stefan Dösinger 09d44a1967 ddraw: Handle DrawIndexedPrimitive via dynamic buffers. 2012-12-18 12:36:54 +01:00
Stefan Dösinger 94388ed6c2 ddraw: Handle DrawPrimitive with a dynamic vertex buffer. 2012-12-18 12:36:47 +01:00
Stefan Dösinger 6deaa02fda ddraw: Move the index buffer growing code to a separate function. 2012-12-18 12:36:40 +01:00
Stefan Dösinger a61f68fc5a ddraw: Properly use the index buffer as a dynamic buffer. 2012-11-28 20:14:58 +01:00
Stefan Dösinger 108fcb691c ddraw: Make the index buffer write only. 2012-11-28 20:14:58 +01:00
Stefan Dösinger 4b95487bdd ddraw: Don't create a wastefully large index buffer. 2012-11-28 20:14:57 +01:00
Henri Verbeet 8e24dbb60a wined3d: wined3d_stateblock_apply() never fails. 2012-10-08 11:28:37 +02:00
Henri Verbeet b69545c7da wined3d: wined3d_stateblock_capture() never fails. 2012-10-08 11:28:32 +02:00
Henri Verbeet f9d494294a wined3d: Just return the texture from wined3d_device_get_texture(). 2012-09-27 13:10:43 +02:00
Henri Verbeet c0a83b1d96 wined3d: wined3d_device_get_texture_stage_state() never fails. 2012-09-26 14:40:35 +02:00
Henri Verbeet 26c0714009 wined3d: wined3d_device_set_texture_stage_state() never fails. 2012-09-26 14:40:33 +02:00
Henri Verbeet 01918d05ed wined3d: wined3d_device_set_vertex_declaration() never fails. 2012-09-21 10:53:06 +02:00
Henri Verbeet 62670c7ba5 wined3d: wined3d_device_get_sampler_state() never fails. 2012-09-19 13:04:52 +02:00
Henri Verbeet 0d96be2c20 wined3d: wined3d_device_set_sampler_state() never fails. 2012-09-19 13:04:48 +02:00
Henri Verbeet 343974e2fd wined3d: wined3d_device_get_material() never fails. 2012-09-18 10:18:51 +02:00
Henri Verbeet 2669feeb8c wined3d: wined3d_device_set_material() never fails. 2012-09-18 10:18:42 +02:00
Henri Verbeet 90bd04c6b6 wined3d: wined3d_device_multiply_transform() never fails. 2012-09-14 15:43:20 +02:00
Henri Verbeet 706ece827b wined3d: wined3d_device_get_transform() never fails. 2012-09-12 12:46:12 +02:00
Henri Verbeet f79bbc767d wined3d: wined3d_device_set_transform() never fails. 2012-09-12 12:46:07 +02:00
Henri Verbeet d601a0dede wined3d: wined3d_device_get_render_state() never fails. 2012-09-11 18:03:57 +02:00
Henri Verbeet 75cec973d5 wined3d: wined3d_device_set_render_state() never fails. 2012-09-11 18:03:53 +02:00
Henri Verbeet 3569b6ccd2 wined3d: wined3d_device_get_viewport() never fails. 2012-09-10 11:40:19 +02:00
Henri Verbeet 64aae8cf02 wined3d: wined3d_device_set_viewport() never fails. 2012-09-10 11:40:14 +02:00
Henri Verbeet a3e28f6ce5 wined3d: wined3d_device_set_index_buffer() never fails. 2012-09-06 15:45:32 +02:00
Henri Verbeet 2c8834dffd d3d9: Implement d3d9_GetAdapterDisplayModeEx(). 2012-06-28 01:39:27 +02:00
Henri Verbeet 220a55c36c ddraw: Use wined3d_get_adapter_display_mode() in d3d_device2_EnumTextureFormats(). 2012-06-21 19:52:33 +02:00
Henri Verbeet 339ef6c252 ddraw: Use wined3d_get_adapter_display_mode() in d3d_device7_EnumTextureFormats(). 2012-06-21 19:52:29 +02:00
Henri Verbeet 4905773baf ddraw: Only initially enable color keying for version 1 devices. 2012-05-24 20:08:48 +02:00
Henri Verbeet e3ecfa5974 wined3d: Store user clip planes as 4-component float vectors. 2012-05-22 18:07:02 +02:00
Henri Verbeet fae3a6430d ddraw: Get rid of IDirect3DVertexBufferImpl. 2012-04-12 20:36:53 +02:00
Henri Verbeet 4d1a659c3a ddraw: Get rid of IDirect3DExecuteBufferImpl. 2012-04-11 18:14:41 +02:00
Henri Verbeet daedd0077d ddraw: Get rid of IDirect3DDeviceImpl. 2012-04-10 16:21:25 +02:00
Henri Verbeet 96fa113513 ddraw: Properly retrieve an interface pointer in IDirect3DDeviceImpl_7_GetTexture(). 2012-04-10 16:21:25 +02:00
Henri Verbeet cf30899f1a ddraw: Version 1 devices are aggregated by the surface that created them. 2012-04-06 20:11:17 +02:00
Henri Verbeet e13de0adf8 ddraw: Fix querying device interfaces in IDirect3DDeviceImpl_7_QueryInterface().
Version 7 devices can only return the version 7 interface. The other versions
can only return earlier interfaces.
2012-04-06 20:11:13 +02:00
Henri Verbeet 1a98c339ca ddraw: Remove some interfaces from IDirect3DDeviceImpl_7_QueryInterface(). 2012-04-04 17:22:30 +02:00
Henri Verbeet cd8508a915 ddraw: Replace an ERR in IDirect3DDeviceImpl_7_QueryInterface() with a WARN. 2012-04-04 17:22:23 +02:00
Henri Verbeet 4f91eb3fe1 ddraw: Keep track of the ddraw version used to create a device.
This also obsoletes the "from_surface" device field.
2012-04-04 17:22:19 +02:00
Henri Verbeet fefb5a943d ddraw: Get rid of IDirect3DMaterialImpl. 2012-03-16 11:09:07 +01:00
Henri Verbeet 0c11c316bb ddraw: Get rid of IDirect3DViewportImpl. 2012-03-15 19:52:05 +01:00
Henri Verbeet 9157006fc1 ddraw: Don't return a pointer to the implementation in IDirect3DDeviceImpl_7_QueryInterface(). 2012-03-14 11:48:32 +01:00
Henri Verbeet 5f43cd2631 ddraw: Get rid of IDirectDrawSurfaceImpl. 2012-03-12 10:44:01 +01:00
Henri Verbeet 1cee1891fd ddraw: Get rid of IDirectDrawImpl. 2012-03-09 11:32:35 +01:00
Henri Verbeet 3769afa33d wined3d: Get rid of the WINED3DSURFTYPE typedef. 2012-01-20 13:31:33 +01:00
Henri Verbeet e53a277305 wined3d: Get rid of the WINED3DPOOL typedef. 2012-01-18 12:37:38 +01:00
Henri Verbeet 6a5a098b23 wined3d: Get rid of the WINED3DRESOURCETYPE typedef. 2012-01-18 12:37:38 +01:00
Henri Verbeet cf636cc3b3 ddraw: Allow querying the surface interface if a device was created from a surface. 2012-01-18 12:37:38 +01:00
Henri Verbeet e70990041b wined3d: Get rid of the WINED3DTEXTUREFILTERTYPE typedef. 2012-01-13 17:34:31 +01:00
Henri Verbeet f38e94af7c wined3d: Get rid of the WINED3DTRANSFORMSTATETYPE typedef. 2012-01-12 12:37:18 +01:00
Henri Verbeet b6431d9493 wined3d: Get rid of the WINED3DTEXTUREOP typedef. 2012-01-11 17:47:22 +01:00
Henri Verbeet 43fcbcb36e wined3d: Get rid of the WINED3DTEXTURESTAGESTATETYPE typedef. 2012-01-10 10:47:27 +01:00
Henri Verbeet 08545dc739 wined3d: Get rid of the WINED3DSAMPLERSTATETYPE typedef. 2012-01-09 12:22:12 +01:00
Henri Verbeet 00096c82fd wined3d: Get rid of the WINED3DZBUFFERTYPE typedef. 2011-12-22 10:08:48 +01:00
Henri Verbeet 4a30db74b1 ddraw: Handle the Direct3D clipspace transformation.
Direct3D3 and earlier have an extra transformation to scale clipspace. It's
controlled by the extra viewport parameters in those versions.
2011-12-22 10:07:59 +01:00
Henri Verbeet 3082c1a9de wined3d: Get rid of the WINED3DRENDERSTATETYPE typedef. 2011-12-20 10:11:47 +01:00
Henri Verbeet 67bca436ee wined3d: Get rid of the WINED3DDEVTYPE typedef. 2011-12-13 18:58:58 +01:00
Henri Verbeet 52231bc467 wined3d: Get rid of the WineDirect3DVertexStridedData typedef. 2011-12-08 10:27:50 +01:00
Henri Verbeet 4c3dfa1bca wined3d: Get rid of the WineDirect3DStridedData typedef. 2011-12-07 17:49:56 +01:00
Stefan Dösinger d4f504c698 ddraw/tests: Add a IDirect3DDevice7 GetCaps test. 2011-12-05 17:40:11 +01:00
Stefan Dösinger cc06d182fb ddraw: Size handling fixes for IDirect3DDevice::GetCaps. 2011-12-05 17:40:04 +01:00
Henri Verbeet 22d41e2c3f ddraw: Rename the wineD3D field in IDirectDrawImpl to wined3d. 2011-11-29 13:23:00 +01:00
Henri Verbeet 0f10ac9358 ddraw: Create the wined3d swapchain when setting the cooperative level. 2011-11-29 13:22:54 +01:00
Henri Verbeet 21bd722c46 ddraw: Set the render target to the wined3d frontbuffer on D3D device cleanup.
We don't need any specific render target here, since without a D3D device we
can't do any rendering anyway. We just want to avoid pointing to something
that was free'd.
2011-11-24 17:09:48 +01:00
Matteo Bruni ca83e14aba ddraw: Reorder formats in EnumTextureFormats. 2011-11-23 09:13:28 +01:00
Henri Verbeet be8917cd91 wined3d: Get rid of the WINED3DVIEWPORT typedef. 2011-11-22 10:52:40 +01:00
Henri Verbeet 02bb70fc3b wined3d: Get rid of the WINED3DMATERIAL typedef. 2011-11-21 11:01:02 +01:00
Henri Verbeet f597359727 wined3d: Get rid of the WINED3DLIGHT typedef. 2011-11-21 11:00:57 +01:00
Henri Verbeet 37a0f7ad65 wined3d: Get rid of the WINED3DMATRIX typedef. 2011-11-18 14:26:16 +01:00
Henri Verbeet 18a7653c78 wined3d: Get rid of the WINED3DDISPLAYMODE typedef. 2011-11-17 11:37:26 +01:00