Commit graph

489 commits

Author SHA1 Message Date
Jérôme Gardou
236b5f77ab [WINESYNC]: d3dx9 is now in sync with wine-staging wine-6.0-rc5 2021-02-04 16:37:07 +01:00
winesync
0e1975b6aa [WINESYNC] d3dx9_36: Implement ID3DXSkinInfoImpl_UpdateSkinnedMesh.
This patch fixes last problem of bug 32572.

wine-staging patch by Christian Costa <titan.costa@gmail.com>
2021-02-04 16:37:07 +01:00
winesync
489e520163 [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>
2021-02-04 16:37:07 +01:00
winesync
7a7364d0ad [WINESYNC] d3dx9_36: Improve D3DXSaveTextureToFile to save simple texture to dds file.
wine-staging patch by Christian Costa <titan.costa@gmail.com>
2021-02-04 16:37:07 +01:00
winesync
959c06f9b3 [WINESYNC] d3dx9_36: Add support for FOURCC surface to save_dds_surface_to_memory.
wine-staging patch by Christian Costa <titan.costa@gmail.com>
2021-02-04 16:37:07 +01:00
winesync
181ffe0779 [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>
2021-02-04 16:37:07 +01:00
winesync
1dfb089b4b [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>
2021-02-04 16:37:07 +01:00
winesync
5687b22005 [WINESYNC] d3dx9_36: Add semi-stub for D3DXOptimizeVertices.
wine-staging patch by Christian Costa <titan.costa@gmail.com>
2021-02-04 16:37:07 +01:00
winesync
81b6936ac8 [WINESYNC] d3dx9_36/tests: Add additional tests for special cases.
wine-staging patch by Christian Costa <titan.costa@gmail.com>
2021-02-04 16:37:07 +01:00
winesync
51b19f6605 [WINESYNC] d3dx9_36/tests: Add initial tests for D3DXDisassembleShader.
wine-staging patch by Sebastian Lackner <sebastian@fds-team.de>
2021-02-04 16:37:07 +01:00
winesync
7e6d9c5b39 [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>
2021-02-04 16:37:07 +01:00
winesync
62f40620f1 [WINESYNC] d3dx9_36: Improve stub for ID3DXEffectImpl_CloneEffect.
wine-staging patch by Sebastian Lackner <sebastian@fds-team.de>
2021-02-04 16:37:07 +01:00
winesync
7c02c861b1 [WINESYNC] d3dx9_36: Add format description for X8L8V8U8 for format conversions.
wine-staging patch by Christian Costa <titan.costa@gmail.com>
2021-02-04 16:37:07 +01:00
winesync
7a64c4dcc9 [WINESYNC] d3dx9: Return D3DFMT_A8R8G8B8 in D3DXGetImageInfoFromFileInMemory for 32 bpp BMP with alpha.
wine-staging patch by Christian Costa <titan.costa@gmail.com>
2021-02-04 16:37:07 +01:00
winesync
93a4e84feb [WINESYNC] d3dx9: Avoid closing invalid handles.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50373
Signed-off-by: Akihiro Sagawa <sagawa.aki@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id e27a95e92097a601baa9b0e9dd6fcc5013c863fa by Akihiro Sagawa <sagawa.aki@gmail.com>
2021-02-04 16:37:07 +01:00
winesync
1f6645eb19 [WINESYNC] d3dx9: Correctly handle sprites array reallocation.
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 34c0055cfcb84e32d13556b7ec841d01acf5fe96 by Matteo Bruni <mbruni@codeweavers.com>
2021-02-04 16:37:07 +01:00
winesync
d7f9f9f6e8 [WINESYNC] d3dx9: Remove unreachable DT_SINGLELINE handling from ID3DXFont_DrawText.
Signed-off-by: Sven Baars <sbaars@codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id a097f54ea1e7e75b78842ceb835f5db5f08fea06 by Sven Baars <sbaars@codeweavers.com>
2021-02-04 16:37:07 +01:00
winesync
06bd040614 [WINESYNC] d3dx9: Implement clipping of glyphs in ID3DXFont_DrawText.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49546
Signed-off-by: Sven Baars <sbaars@codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 84cbf6a49dfe75b9fd497b2c3ef7e922857bb618 by Sven Baars <sbaars@codeweavers.com>
2021-02-04 16:37:07 +01:00
winesync
9567bb87bd [WINESYNC] d3dx9: Fully initialize the glyph position.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49376
Signed-off-by: Sven Baars <sbaars@codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 2481e617bbd529a297266ad53b1afe1d96e9af89 by Sven Baars <sbaars@codeweavers.com>
2021-02-04 16:37:07 +01:00
winesync
31f063ffbf [WINESYNC] d3dx9: Don't release textures when D3DXSPRITE_DO_NOT_ADDREF_TEXTURE is specified.
Signed-off-by: Sven Baars <sbaars@codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 9eda5c043047fd117441473651b2089b80a4ed80 by Sven Baars <sbaars@codeweavers.com>
2021-02-04 16:37:07 +01:00
winesync
fe25fbb5fe [WINESYNC] d3dx9/tests: Use wide-char string literals.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id bffe111672972cb26c319c029ca469520742c720 by Michael Stefaniuc <mstefani@winehq.org>
2021-02-04 16:37:07 +01:00
winesync
868f57e6b2 [WINESYNC] d3dx9: Simplify D3DXSphereBoundProbe() a bit.
Spurred by a patch by Alex Henrie.

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

wine commit id 18ae539c914a9b5a89f63d8cf9c2a21273eccc6c by Matteo Bruni <mbruni@codeweavers.com>
2021-02-04 16:37:07 +01:00
winesync
4c48bb18fd [WINESYNC] d3dx9/tests: Add a few D3DXLoadSurfaceFromSurface() tests with different rects.
Signed-off-by: Robin Kertels <robin.kertels@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id ea7cf679150f790d2e375d99ee226ea4881b490a by Robin Kertels <robin.kertels@gmail.com>
2021-02-04 16:37:07 +01:00
winesync
a5f345390c [WINESYNC] d3dx9: Ignore filter in D3DXLoadSurfaceFromSurface() when rects match.
This allows us to use IDirect3DDevice9_StretchRect
and avoid GPU synchronization.
It massively improves performance in Dead Space 1 which
calls LoadSurfaceFromSurface every frame before presenting.

Signed-off-by: Robin Kertels <robin.kertels@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 625622ad4182061ee3111032ab0ae4a494b74e73 by Robin Kertels <robin.kertels@gmail.com>
2021-02-04 16:37:07 +01:00
winesync
4d0164c0a0 [WINESYNC] d3dx9: Implement ID3DXSkinInfo_Clone().
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48779
Signed-off-by: Gijs Vermeulen <gijsvrm@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 35a4093eff75e5bf7fee0dc8d2a708d960b03768 by Gijs Vermeulen <gijsvrm@gmail.com>
2021-02-04 16:37:06 +01:00
winesync
bbb79195a5 [WINESYNC] d3dx9: Use BitScanReverse in make_pow2.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 22970932d014f024fcf7f0f98b1a5384b1b1eb99 by Jacek Caban <jacek@codeweavers.com>
2021-02-04 16:37:06 +01:00
winesync
48f365863f [WINESYNC] d3dx9/tests: Remove useless '\n' within some ok() messages.
Signed-off-by: Vijay Kiran Kamuju <infyquest@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id c1cf13a7512387885616684130b605a7640f5187 by Christian Costa <titan.costa@gmail.com>
2021-02-04 16:37:06 +01:00
winesync
20ea1bf125 [WINESYNC] d3dx9: Add support for D3DFMT_P8 in DDS files.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48731
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id bb222133a81581622c88c0d34534bc88a556f1f2 by Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
2021-02-04 16:37:06 +01:00
winesync
4ff131d352 [WINESYNC] d3dx9: Handle horizontal alignment in ID3DXFont_DrawText.
Signed-off-by: Sven Baars <sbaars@codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id d511853d45bc3302b2a4501b1aa0097a4e78b3d9 by Sven Baars <sbaars@codeweavers.com>
2021-02-04 16:37:06 +01:00
winesync
69ca9a5852 [WINESYNC] d3dx9: Handle vertical alignment in ID3DXFont_DrawText.
Signed-off-by: Sven Baars <sbaars@codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id fd9808b45af4bf4c6771fe2932e3169cb193bf44 by Sven Baars <sbaars@codeweavers.com>
2021-02-04 16:37:06 +01:00
winesync
841a23759e [WINESYNC] d3dx9: Add a helper for computing the bounding rectangle in ID3DXFont_DrawText.
Signed-off-by: Sven Baars <sbaars@codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 53769e7bde9cfb808e26cf67057314c2ca03345a by Sven Baars <sbaars@codeweavers.com>
2021-02-04 16:37:06 +01:00
winesync
4f3d8e9fbf [WINESYNC] d3dx9: Switch character count to unsigned int in the DrawText implementation.
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id b5df43b9118074485a1f4a917b16d37bc068839d by Matteo Bruni <mbruni@codeweavers.com>
2021-02-04 16:37:06 +01:00
winesync
1697b87434 [WINESYNC] d3dx9/tests: Introduce compare_uint().
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 9bcb1f5195d1e65e0e7afb288d36fee716fe3a60 by Henri Verbeet <hverbeet@codeweavers.com>
2021-02-04 16:37:06 +01:00
winesync
67c812be35 [WINESYNC] d3dx9: Use stricmp() instead of _strnicmp(..., -1).
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 aab980a16253ff6bb6286572576899bfc0f83945 by Paul Gofman <gofmanp@gmail.com>
2021-02-04 16:37:06 +01:00
winesync
51b2c71b54 [WINESYNC] d3dx9: Validate state operation in d3dx_parse_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 2b5b069dd70ba328dc0ce660861ad802feae912c by Paul Gofman <gofmanp@gmail.com>
2021-02-04 16:37:06 +01:00
winesync
777269ea64 [WINESYNC] d3dx9: Use an assert() to validate access to const_tbl[].
This check is essentially validating that the hardcoded state_table[]
has reasonable values for the shader constant states. Use ARRAY_SIZE()
to avoid warnings if the compiler chooses an unsigned integer to back
enum SHADER_CONSTANT_TYPE.

Based on an idea by Henri Verbeet.

Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id cfc533b40d2d1426a8f05501152b28aa1ec78f07 by Matteo Bruni <mbruni@codeweavers.com>
2021-02-04 16:37:06 +01:00
winesync
e6e305520c [WINESYNC] d3dx9: Remove a recursive call to ID3DXFont_DrawTextW when no rect is specified.
Signed-off-by: Sven Baars <sbaars@codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 9796bdc966a89cd31829f3a094bb37ec71e21871 by Sven Baars <sbaars@codeweavers.com>
2021-02-04 16:37:06 +01:00
winesync
cf5abba9d8 [WINESYNC] d3dx9: Add two more DT_SINGLELINE tests.
Signed-off-by: Sven Baars <sbaars@codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 787d98f47ce7254dda7f644fa6d033fe1776ae38 by Sven Baars <sbaars@codeweavers.com>
2021-02-04 16:37:06 +01:00
winesync
0319347754 [WINESYNC] d3dx9: Handle DT_CALCRECT in ID3DXFont_DrawText.
Signed-off-by: Sven Baars <sbaars@codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 143a2a30f89dfc79cc2a49cd34af6fd587ce3f69 by Sven Baars <sbaars@codeweavers.com>
2021-02-04 16:37:06 +01:00
winesync
1dfbf16fa6 [WINESYNC] d3dx9: Handle DT_SINGLELINE in ID3DXFont_DrawText.
Signed-off-by: Sven Baars <sbaars@codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 333687f522730befb8c64d297dc52f654e53a744 by Sven Baars <sbaars@codeweavers.com>
2021-02-04 16:37:06 +01:00
winesync
806fe486fb [WINESYNC] d3dx9: Handle word breaks in ID3DXFont_DrawText.
Signed-off-by: Sven Baars <sbaars@codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id e6a1116c2a3b196dea496f77747209f67982652c by Sven Baars <sbaars@codeweavers.com>
2021-02-04 16:37:06 +01:00
winesync
818c9f88b0 [WINESYNC] d3dx9: Handle clipping in ID3DXFont_DrawText.
Signed-off-by: Sven Baars <sbaars@codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 6da3e904a1efc921030fdbe34070b981bf57524c by Sven Baars <sbaars@codeweavers.com>
2021-02-04 16:37:06 +01:00
winesync
9363eac228 [WINESYNC] d3dx9: Handle newlines in ID3DXFont_DrawText.
Signed-off-by: Sven Baars <sbaars@codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 330c3f9108191feb6eb888384befb5cb54645233 by Sven Baars <sbaars@codeweavers.com>
2021-02-04 16:37:06 +01:00
winesync
928ed97d6c [WINESYNC] d3dx9: Add a very basic ID3DXFont_DrawText implementation.
Based on a patch by Tony Wasserka.

Signed-off-by: Sven Baars <sbaars@codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 316a8d0ae11ae1a9654bc731d2c9dc23febc7a2d by Sven Baars <sbaars@codeweavers.com>
2021-02-04 16:37:05 +01:00
winesync
aa86f68321 [WINESYNC] d3dx9: Implement ID3DXFont_PreloadText.
Based on a patch by Tony Wasserka.

Signed-off-by: Sven Baars <sbaars@codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id cc03400e322edea97f0e425c04cd9069f77b4c9f by Sven Baars <sbaars@codeweavers.com>
2021-02-04 16:37:05 +01:00
winesync
6f6f4d1501 [WINESYNC] d3dx9: Implement ID3DXFont_PreloadCharacters.
Based on a patch by Tony Wasserka.

Signed-off-by: Sven Baars <sbaars@codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 21fc1f37e76eaced9228eaf62a45489a2bf8ac11 by Sven Baars <sbaars@codeweavers.com>
2021-02-04 16:37:05 +01:00
winesync
ea944e7a9e [WINESYNC] d3dx9: Implement ID3DXFont_GetGlyphData.
Based on a patch by Tony Wasserka.

Signed-off-by: Sven Baars <sbaars@codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id e9ea8a05e54f1c950e5c15979d1393ad013402b1 by Sven Baars <sbaars@codeweavers.com>
2021-02-04 16:37:05 +01:00
winesync
541dbf1b36 [WINESYNC] d3dx9: Implement ID3DXFont_PreloadGlyphs.
Based on a patch by Tony Wasserka.

Signed-off-by: Sven Baars <sbaars@codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id ac5687463700b070fc1eecca67c4a46ec15127fa by Sven Baars <sbaars@codeweavers.com>
2021-02-04 16:37:05 +01:00
winesync
9cb965ea9b [WINESYNC] d3dx9: Reimplement make_pow2() in d3dx9_private.h.
Signed-off-by: Sven Baars <sbaars@codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 1b0ad92db1c21d5052c45be2291759d60553476c by Sven Baars <sbaars@codeweavers.com>
2021-02-04 16:37:05 +01:00
winesync
921935dfd6 [WINESYNC] d3dx9/tests: Add more ID3DXFont_DrawTextW tests.
Signed-off-by: Sven Baars <sbaars@codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id e0ce80561bf046c9dc7837e1c7f3c999f18b0361 by Sven Baars <sbaars@codeweavers.com>
2021-02-04 16:37:05 +01:00