Commit Graph

2730 Commits

Author SHA1 Message Date
Zhiyi Zhang 079caeaa8d ddraw: Get new window size from the primary output after display mode changes.
MonitorFromWindow() may return a different monitor if switching to a
smaller display mode.

Fix Railroad Tycoon II crashes.

Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-28 20:18:32 +02:00
Paul Gofman f02b0226ca wined3d: Allow setting user memory for mipmapped textures in wined3d_texture_update_desc().
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49105
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-14 23:12:31 +02:00
Zhiyi Zhang d3e088cc00 wined3d: Specify a wined3d output for swapchain creation.
As tests showed, DirectDraw, Direct3D 8 and 9 always use the adapter
specified in the device creation parameters regardless of the device
window position when creating a swapchain. Whereas DXGI uses the device
window position to determine which DXGI output to use.

Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-13 22:07:32 +02:00
Zhiyi Zhang 248b5d7427 ddraw/tests: Add get display mode tests.
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-11 21:24:58 +02:00
Zhiyi Zhang 5f0608396c ddraw/tests: Test window position.
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-11 21:24:58 +02:00
Zebediah Figura 616585d7fb ddraw: Implement DDENUMSURFACES_CANBECREATED.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=17233
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-05 20:53:02 +02:00
Zebediah Figura 8e8e0f48c4 ddraw: Properly compare DDENUMSURFACES_NOMATCH to TRUE.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-05 20:53:02 +02:00
Zebediah Figura 2389fae064 ddraw/tests: Add more tests for EnumSurfaces().
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-05 20:53:02 +02:00
Zebediah Figura b95fe88ff5 ddraw/tests: Test vtbl protection.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-27 19:41:31 +02:00
Alistair Leslie-Hughes 0b55384f0d ddraw: Make palette and remaining surface vtbls writable.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=46949
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-27 19:41:27 +02:00
Michael Müller 100ca51805 ddraw: Make ddraw1_vtbl and ddraw_surface1_vtbl writable.
Wine-Bug: <https://bugs.winehq.org/show_bug.cgi?id=39534>
Signed-off-by: Michael Müller <michael@fds-team.de>
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-27 19:41:24 +02:00
Zhiyi Zhang dc6af98c11 ddraw: Handle more cases in hr_ddraw_from_wined3d().
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-21 21:51:07 +02:00
Chip Davis 42e932e63f wined3d: Remove WINED3D_RS_EDGEANTIALIAS.
Handle this render state similarly to D3DRS_ZFUNC, by mapping it in the
client DLLs.

As far as I can tell, save for the fact that it's only supposed to apply
to lines forming a convex outline, it's roughly equivalent to
D3DRS_ANTIALIASEDLINEENABLE. We definitely handled it the same way.

Curiously, even though we supported the render state, we didn't set the
corresponding capability bit. Do that now.

Signed-off-by: Chip Davis <cdavis@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-17 19:40:26 +02:00
Paul Gofman c24551cae8 ddraw/tests: Test system memory surface with lost device for ddraw1.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-17 19:40:21 +02:00
Paul Gofman 47e777d6ea ddraw/tests: Test system memory surface with lost device for ddraw2.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-17 19:40:19 +02:00
Paul Gofman f2ba4d78d3 ddraw/tests: Test system memory surface with lost device for ddraw4.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-17 19:40:14 +02:00
Paul Gofman 3acc26dc22 ddraw: Check surface flags when marking surface as lost.
Fixes a regression triggered by 530a3d94de.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48923
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-17 19:40:04 +02:00
Paul Gofman e1a79d4d7c ddraw: Convert BOOL flags to bitfields in ddraw_surface.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-17 19:40:01 +02:00
Zhiyi Zhang f91dd56ccd wined3d: Do not clip the cursor after changing display modes.
DirectDraw should clip the cursor to the primary monitor only when the
cooperative level is DDSCL_EXCLUSIVE. For Direct3D 8, 9 and DXGI,
changing display modes shouldn't clip the cursor as tests showed.

Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-09 21:04:04 +02:00
Zhiyi Zhang 5a2e6f5e58 ddraw/tests: Test cursor clipping.
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-09 21:04:04 +02:00
Akihiro Sagawa 62e13708d0 ddraw: Allow to create managed textures with DDSCAPS_TEXTURE|DDSCAPS_3DDEVICE caps.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48844
Signed-off-by: Akihiro Sagawa <sagawa.aki@gmail.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-02 12:56:37 +02:00
Akihiro Sagawa 8bb3ebced4 ddraw/tests: Add more managed texture tests.
Signed-off-by: Akihiro Sagawa <sagawa.aki@gmail.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-02 12:56:32 +02:00
Chip Davis 7dce36c8f5 ddraw: Introduce a helper to convert ddraw stateblock types to wined3d types.
Signed-off-by: Chip Davis <cdavis@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-31 17:25:05 +02:00
Chip Davis 02d03a66a5 ddraw: Introduce a helper to convert ddraw primitive types to wined3d types.
Signed-off-by: Chip Davis <cdavis@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-31 17:25:02 +02:00
Chip Davis 67d71cb2d0 ddraw: Introduce a helper to convert ddraw transform states to wined3d states.
Signed-off-by: Chip Davis <cdavis@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-31 17:24:56 +02:00
Chip Davis c07fdf8a90 ddraw: Introduce a helper to convert ddraw render states to wined3d states.
Signed-off-by: Chip Davis <cdavis@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-31 17:24:53 +02:00
Paul Gofman d0ff5e66a7 ddraw: Reserve extra space for video memory surfaces in compatibility mode.
Some old apps write surface data past the end of locked space. That
used to work on early ddraw hardware as locked surface provided
direct access to video memory mapped to CPU address space and such
access could often go without issues. Currently ddraw on Windows
allocates bigger buffers for video memory surfaces when 8 or 16 bit
display mode is requested.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48788
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-31 15:53:54 +02:00
Chip Davis d5f25c2cd7 ddraw/tests: Introduce compare_uint().
Analogous to compare_float().

Signed-off-by: Chip Davis <cdavis@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-30 23:10:07 +02:00
Paul Gofman 792dc34978 ddraw/tests: Test locking lost surface for ddraw1.
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-26 18:34:50 +01:00
Paul Gofman 98b8f680b1 ddraw/tests: Test locking lost surface for ddraw2.
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-26 18:34:50 +01:00
Paul Gofman d79f5a2a9f ddraw/tests: Test locking lost surface for ddraw4.
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-26 18:34:50 +01:00
Paul Gofman 530a3d94de ddraw: Deny locking lost surfaces.
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-26 18:34:50 +01:00
Paul Gofman 62ff00b066 ddraw: Factor out ddraw_surface_lock_ddsd() function.
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-26 18:34:50 +01:00
Paul Gofman d36a45e553 ddraw: Factor out ddraw_surface_is_lost() function.
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-26 18:34:50 +01:00
Zhiyi Zhang b07e8b3edb wined3d: Remove device_name and device_name_size from struct wined3d_adapter_identifier.
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-25 20:33:56 +01:00
Zhiyi Zhang 5dae33dc3c wined3d: Refactor wined3d_get_output_desc() to wined3d_output_get_desc().
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-19 20:24:56 +01:00
Matteo Bruni 140186b0c3 ddraw: Store primary stateblock state pointer in the device.
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-18 16:53:00 +01:00
Stefan Dösinger d6917dee9d ddraw/tests: Don't print uninitialized l in test_compressed_surface_stretch.
Signed-off-by: Stefan Dösinger <stefan@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-16 21:31:46 +01:00
Stefan Dösinger bc4ad3ca4d ddraw/tests: Re-init for every test_surface_discard iteration.
Signed-off-by: Stefan Dösinger <stefan@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-16 21:31:37 +01:00
Zhiyi Zhang e6368b9c10 wined3d: Pass a struct wined3d_adapter pointer to wined3d_get_device_caps().
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-16 21:30:58 +01:00
Zhiyi Zhang c9f0d862b5 wined3d: Pass a struct wined3d_adapter pointer to wined3d_calculate_format_pitch().
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-11 15:55:16 +01:00
Zhiyi Zhang f2a850c844 wined3d: Pass a struct wined3d_adapter pointer to wined3d_check_device_format().
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-11 15:55:13 +01:00
Zhiyi Zhang 591068cec0 wined3d: Refactor wined3d_get_adapter_identifier() to wined3d_adapter_get_identifier().
wined3d_adapter_get_identifier() uses a struct wined3d_adapter pointer
as parameter.

Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-11 15:55:05 +01:00
Zhiyi Zhang a8072e0841 wined3d: Pass a struct wined3d_adapter pointer to wined3d_device_create().
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-11 15:55:00 +01:00
Zhiyi Zhang 2e7db80bad wined3d: Refactor wined3d_get_adapter_raster_status() to wined3d_output_get_raster_status().
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-09 12:10:52 +01:00
Zhiyi Zhang aa177f6afc wined3d: Refactor wined3d_get_adapter_display_mode() to wined3d_output_get_display_mode().
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-06 17:54:06 +01:00
Zhiyi Zhang 7161e01ad8 wined3d: Refactor wined3d_set_adapter_display_mode() to wined3d_output_set_display_mode().
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-06 17:54:02 +01:00
Zhiyi Zhang a0dbb1e469 wined3d: Refactor wined3d_enum_adapter_modes() to wined3d_output_get_mode().
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-05 19:49:33 +01:00
Zhiyi Zhang ca9b5f6748 wined3d: Introduce wined3d_adapter_get_output().
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-03 20:01:25 +01:00
Zebediah Figura 194b1234a9 ddraw: Stop setting the device state in d3d_device7_SetLight() and d3d_device7_LightEnable().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-03 20:00:45 +01:00