Commit graph

147 commits

Author SHA1 Message Date
Jérôme Gardou
c004b53d77 Apply suggestions from code review
Style fixes

Co-authored-by: Hermès BÉLUSCA - MAÏTO <hermes.belusca-maito@reactos.org>
Co-authored-by: Victor Perevertkin <victor@perevertkin.ru>
2020-10-20 21:44:54 +02:00
Jérôme Gardou
68dcd87d38 [WINED3D] Fix build with lower optimization levels 2020-10-15 11:36:01 +02:00
Amine Khaldi
139a3d6661
[CMAKE] Implement PCH builds with target_precompile_headers. CORE-16905 2020-06-06 21:58:41 +03:00
Victor Perevertkin
7e069ccdb2
[CMAKE] Replace custom functions to built-in ones
add_target_compile_definitions -> target_compile_definitions
add_target_compile_flags -> target_compile_options
add_target_include_directories -> target_include_directories
2020-04-16 15:59:38 +03:00
Oleg Dubinskiy
56aa5137e7
[QCAP] Import qcap.dll from Wine Staging 3.3. CORE-16350 (#2421)
Fix also MSVC build.

[DOC] Add qcap entry in README.WINE

Co-Authored-By: Thomas Faber <18138474+ThFabba@users.noreply.github.com>
2020-04-03 23:59:12 +02:00
Hervé Poussineau
5ed1867632 [CMAKE] Add some -D__ROS_LONG64__ to please gcc x64
We can now pass a UINT* to a function wanting a DWORD*
2020-03-26 16:39:16 +01:00
winesync
8c7529df7e [WINESYNC] d3dx9_36: Implement ID3DXSkinInfoImpl_UpdateSkinnedMesh.
This patch fixes last problem of bug 32572.

wine-staging patch by Christian Costa <titan.costa@gmail.com>
2020-02-26 18:19:18 +01:00
winesync
69a02efd33 [WINESYNC] d3dx9_36: Align texture dimensions to block size for compressed textures in D3DXCheckTextureRequirements.
wine-staging patch by Christian Costa <titan.costa@gmail.com>
2020-02-26 18:19:18 +01:00
winesync
b7a4b73b65 [WINESYNC] d3dx9_36: No need to fail if we don't support vertices reordering in D3DXMESHOPT_ATTRSORT
A non optimized mesh does not prevent rendering as long as we return valid data to the application.
In our case we provided an identity remapping array when no vertices reordering is done.

Avencast demo works perfectly well (using native effects functions).

wine-staging patch by Christian Costa <titan.costa@gmail.com>
2020-02-26 18:19:18 +01:00
winesync
e362e098a3 [WINESYNC] d3dx9_36: Filter out D3DCompile warning messages that are not present with D3DCompileShader. (try 4)
This patch fixes vertex processing issue of bug 33770.

The problem comes from the fact that even if the call succeeds,
the game interprets a non null error_messages pointer as an error.

By calling D3DCompile we use a newer version of the compiler which is more
strict and generates the following warning.
  - warning X3206: 'dot': implicit truncation of vector type
  - warning X3206: implicit truncation of vector type
  - warning X3206: 'mul': implicit truncation of vector type
D3DCompileShader does not generate such warnings.

These is confirmed in the DX SDK release note:
New Warning X3206: Implicit Truncation of Vector Type
Beginning in the August 2009 release of the DirectX SDK, the compiler will warn
when an implicit truncation of a vector type occurs.

The warnings cannot be disable so this patch filters out these strings in D3DCompileShader
and reset the error messages pointer if the resulting buffer is empty.

Try 2:
  - only filter out lines containing "X3206:" in case d3dcompiler_43 has localization

Try 3:
  - use move in place instead of copying the buffer

Try 4:
  - filter simplification by Sebastian and remove 'mul' testing left-out in search string

wine-staging patch by Christian Costa <titan.costa@gmail.com>
2020-02-26 18:19:18 +01:00
winesync
7b8f79e550 [WINESYNC] d3dx9_36: Return dummy skininfo interface in D3DXLoadSkinMeshFromXof when skin information is unavailable.
wine-staging patch by Michael Müller <michael@fds-team.de>
2020-02-26 18:19:18 +01:00
winesync
58d515ea16 [WINESYNC] d3dx9_36: ID3DXFont_DrawText calc_rect can be null
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>

wine-staging patch by Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
2020-02-26 18:19:18 +01:00
winesync
f9c6d6e396 [WINESYNC] d3dx9_36: Support NULL terminated strings in ID3DXFont_DrawText
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>

wine-staging patch by Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
2020-02-26 18:19:18 +01:00
winesync
5b56f3d681 [WINESYNC] d3dx9_36: Fix horizontal centering in ID3DXFont_DrawText.
Fix remaining text issues in Air Strike.
Should fix text placement in Stronghold Kingdoms.

wine-staging patch by Christian Costa <titan.costa@gmail.com>
2020-02-26 18:19:18 +01:00
winesync
cbed631506 [WINESYNC] d3dx9_36: Implement ID3DXFontImpl_DrawText.
Changes by Sebastian Lackner <sebastian@fds-team.de>:
* Use pitch value for locked buffer instead of assuming that pitch = width * bytesperpixel
* Avoid one for loop to simplify code
* Ensure that DrawText doesn't dereference a NULL pointer when count != 0.

Changes by Christian Costa <titan.costa@gmail.com>
* Use dedicated variables for text width & height instead of reusing rect.right and rect.bottom
* Remove useless test in pixel conversion
* Remove left over 'partial stub' in fixme

Changes by Sebastian Lackner <sebastian@fds-team.de>:
* Replace code to convert text from ascii to widechar
* Strip terminating NULL chars before drawing text

wine-staging patch by Christian Costa <titan.costa@gmail.com>
2020-02-26 18:19:18 +01:00
winesync
83d1420b3c [WINESYNC] d3dx9_36: add DXTn support
wine-staging patch by Christian Costa <titan.costa@gmail.com>
2020-02-26 18:19:18 +01:00
winesync
de19dd3e38 [WINESYNC] d3dx9_36: Improve D3DXSaveTextureToFile to save simple texture to dds file.
wine-staging patch by Christian Costa <titan.costa@gmail.com>
2020-02-26 18:19:18 +01:00
winesync
6e7150ee67 [WINESYNC] d3dx9_36: Add support for FOURCC surface to save_dds_surface_to_memory.
wine-staging patch by Christian Costa <titan.costa@gmail.com>
2020-02-26 18:19:18 +01:00
winesync
5ba697c68b [WINESYNC] d3dx9: Implement D3DXComputeTangent
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>

wine-staging patch by Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
2020-02-26 18:19:18 +01:00
winesync
e131c1834d [WINESYNC] d3dx9_*: Add D3DXSHProjectCubeMap stub
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=46284

wine-staging patch by Andrey Gusev <andrey.goosev@gmail.com>
2020-02-26 18:19:18 +01:00
winesync
54e07d18d5 [WINESYNC] d3dx9_36: Add semi-stub for D3DXOptimizeVertices.
wine-staging patch by Christian Costa <titan.costa@gmail.com>
2020-02-26 18:19:18 +01:00
winesync
afbc458a7f [WINESYNC] d3dx9_36: Implement D3DXDisassembleShader. (v2)
Changes in v2 (by Christian Costa):
  * More generic code for D3DXDisassembleShader.

wine-staging patch by Christian Costa <titan.costa@gmail.com>
2020-02-26 18:19:18 +01:00
winesync
4e6848d18a [WINESYNC] d3dx9_36: Improve stub for ID3DXEffectImpl_CloneEffect.
wine-staging patch by Sebastian Lackner <sebastian@fds-team.de>
2020-02-26 18:19:18 +01:00
winesync
77cb466268 [WINESYNC] d3dx9_36: Add format description for X8L8V8U8 for format conversions.
wine-staging patch by Christian Costa <titan.costa@gmail.com>
2020-02-26 18:19:18 +01:00
winesync
9c4185cb30 [WINESYNC] d3dx9_36: Recognize bump luminance X8L8V8U8 when loading dds file.
wine-staging patch by Christian Costa <titan.costa@gmail.com>
2020-02-26 18:19:18 +01:00
winesync
7e60f0ec68 [WINESYNC] d3dx9: Return D3DFMT_A8R8G8B8 in D3DXGetImageInfoFromFileInMemory for 32 bpp BMP with alpha.
wine-staging patch by Christian Costa <titan.costa@gmail.com>
2020-02-26 18:19:18 +01:00
winesync
4e1377665e [WINESYNC] d3dx9: Use parameter data for the first constant only in d3dx_set_shader_const_state().
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id f72204abd6037e59ba1bf500a3a9d0316e65a024 by Paul Gofman <gofmanp@gmail.com>
2020-02-26 18:19:18 +01:00
winesync
523edfe3eb [WINESYNC] d3dx9: Handle short parameter in d3dx_set_shader_const_state().
The issue is spotted in https://bugs.winehq.org/show_bug.cgi?id=46553,
while fixing it alone is reported not to affect the bug.

Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id b3e91c3408797da72fdd5066e983d8861d9271ea by Paul Gofman <gofmanp@gmail.com>
2020-02-26 18:19:18 +01:00
Jérôme Gardou
8cc1ec1b82 [WINESYNC]: revert wine-staging patchset for d3dx9 2020-02-26 18:19:18 +01:00
Jérôme Gardou
c3ad01e3b2 [REACTOS] Exclude some wine modules from clang-format 2020-02-26 18:19:18 +01:00
winesync
692992f2bf [WINESYNC]d3dx9_36: Implement ID3DXSkinInfoImpl_UpdateSkinnedMesh.
This patch fixes last problem of bug 32572.

wine-staging patch by Christian Costa <titan.costa@gmail.com>
2020-02-26 18:19:18 +01:00
winesync
81c78a0a6b [WINESYNC]d3dx9_36: Align texture dimensions to block size for compressed textures in D3DXCheckTextureRequirements.
wine-staging patch by Christian Costa <titan.costa@gmail.com>
2020-02-26 18:19:18 +01:00
winesync
afac88c50e [WINESYNC]d3dx9_36: No need to fail if we don't support vertices reordering in D3DXMESHOPT_ATTRSORT
A non optimized mesh does not prevent rendering as long as we return valid data to the application.
In our case we provided an identity remapping array when no vertices reordering is done.

Avencast demo works perfectly well (using native effects functions).

wine-staging patch by Christian Costa <titan.costa@gmail.com>
2020-02-26 18:19:18 +01:00
winesync
f6c4f5e79c [WINESYNC]d3dx9_36: Filter out D3DCompile warning messages that are not present with D3DCompileShader. (try 4)
This patch fixes vertex processing issue of bug 33770.

The problem comes from the fact that even if the call succeeds,
the game interprets a non null error_messages pointer as an error.

By calling D3DCompile we use a newer version of the compiler which is more
strict and generates the following warning.
  - warning X3206: 'dot': implicit truncation of vector type
  - warning X3206: implicit truncation of vector type
  - warning X3206: 'mul': implicit truncation of vector type
D3DCompileShader does not generate such warnings.

These is confirmed in the DX SDK release note:
New Warning X3206: Implicit Truncation of Vector Type
Beginning in the August 2009 release of the DirectX SDK, the compiler will warn
when an implicit truncation of a vector type occurs.

The warnings cannot be disable so this patch filters out these strings in D3DCompileShader
and reset the error messages pointer if the resulting buffer is empty.

Try 2:
  - only filter out lines containing "X3206:" in case d3dcompiler_43 has localization

Try 3:
  - use move in place instead of copying the buffer

Try 4:
  - filter simplification by Sebastian and remove 'mul' testing left-out in search string

wine-staging patch by Christian Costa <titan.costa@gmail.com>
2020-02-26 18:19:18 +01:00
winesync
8931e12659 [WINESYNC]d3dx9_36: Return dummy skininfo interface in D3DXLoadSkinMeshFromXof when skin information is unavailable.
wine-staging patch by Michael Müller <michael@fds-team.de>
2020-02-26 18:19:18 +01:00
winesync
33f33c9387 [WINESYNC]d3dx9_36: ID3DXFont_DrawText calc_rect can be null
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>

wine-staging patch by Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
2020-02-26 18:19:18 +01:00
winesync
219ef2e81f [WINESYNC]d3dx9_36: Support NULL terminated strings in ID3DXFont_DrawText
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>

wine-staging patch by Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
2020-02-26 18:19:18 +01:00
winesync
54240ccee0 [WINESYNC]d3dx9_36: Fix horizontal centering in ID3DXFont_DrawText.
Fix remaining text issues in Air Strike.
Should fix text placement in Stronghold Kingdoms.

wine-staging patch by Christian Costa <titan.costa@gmail.com>
2020-02-26 18:19:18 +01:00
winesync
dead753d8f [WINESYNC]d3dx9_36: Implement ID3DXFontImpl_DrawText.
Changes by Sebastian Lackner <sebastian@fds-team.de>:
* Use pitch value for locked buffer instead of assuming that pitch = width * bytesperpixel
* Avoid one for loop to simplify code
* Ensure that DrawText doesn't dereference a NULL pointer when count != 0.

Changes by Christian Costa <titan.costa@gmail.com>
* Use dedicated variables for text width & height instead of reusing rect.right and rect.bottom
* Remove useless test in pixel conversion
* Remove left over 'partial stub' in fixme

Changes by Sebastian Lackner <sebastian@fds-team.de>:
* Replace code to convert text from ascii to widechar
* Strip terminating NULL chars before drawing text

wine-staging patch by Christian Costa <titan.costa@gmail.com>
2020-02-26 18:19:18 +01:00
winesync
30328cab07 [WINESYNC]d3dx9_36: add DXTn support
wine-staging patch by Christian Costa <titan.costa@gmail.com>
2020-02-26 18:19:18 +01:00
winesync
fad6fb021d [WINESYNC]d3dx9_36: Improve D3DXSaveTextureToFile to save simple texture to dds file.
wine-staging patch by Christian Costa <titan.costa@gmail.com>
2020-02-26 18:19:18 +01:00
winesync
ea80aaf8ad [WINESYNC]d3dx9_36: Add support for FOURCC surface to save_dds_surface_to_memory.
wine-staging patch by Christian Costa <titan.costa@gmail.com>
2020-02-26 18:19:18 +01:00
winesync
71c6a60ad4 [WINESYNC]d3dx9: Implement D3DXComputeTangent
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>

wine-staging patch by Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
2020-02-26 18:19:18 +01:00
winesync
98cd28be0d [WINESYNC]d3dx9_*: Add D3DXSHProjectCubeMap stub
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=46284

wine-staging patch by Andrey Gusev <andrey.goosev@gmail.com>
2020-02-26 18:19:18 +01:00
winesync
24b51d5a07 [WINESYNC]d3dx9_36: Add semi-stub for D3DXOptimizeVertices.
wine-staging patch by Christian Costa <titan.costa@gmail.com>
2020-02-26 18:19:18 +01:00
winesync
0ab0dc096d [WINESYNC]d3dx9_36: Implement D3DXDisassembleShader. (v2)
Changes in v2 (by Christian Costa):
  * More generic code for D3DXDisassembleShader.

wine-staging patch by Christian Costa <titan.costa@gmail.com>
2020-02-26 18:19:18 +01:00
winesync
6311935980 [WINESYNC]d3dx9_36: Improve stub for ID3DXEffectImpl_CloneEffect.
wine-staging patch by Sebastian Lackner <sebastian@fds-team.de>
2020-02-26 18:19:18 +01:00
winesync
fea73b02ee [WINESYNC]d3dx9_36: Add format description for X8L8V8U8 for format conversions.
wine-staging patch by Christian Costa <titan.costa@gmail.com>
2020-02-26 18:19:18 +01:00
winesync
f7b86ac3b1 [WINESYNC]d3dx9_36: Recognize bump luminance X8L8V8U8 when loading dds file.
wine-staging patch by Christian Costa <titan.costa@gmail.com>
2020-02-26 18:19:18 +01:00
winesync
90e8c4a5db [WINESYNC]d3dx9: Return D3DFMT_A8R8G8B8 in D3DXGetImageInfoFromFileInMemory for 32 bpp BMP with alpha.
wine-staging patch by Christian Costa <titan.costa@gmail.com>
2020-02-26 18:19:18 +01:00