323 Commits

Author SHA1 Message Date
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