Commit Graph

142 Commits

Author SHA1 Message Date
Robin Kertels 625622ad41 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>
2020-07-10 00:04:31 +02:00
Alistair Leslie-Hughes bb222133a8 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>
2020-04-14 11:20:00 +02:00
Christian Costa 06918ba76b d3dx9: Support D3DFMT_X8L8V8U8 in DDS files.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-11 19:45:40 +01:00
Matteo Bruni 9069913dbb d3dx9: Fix pitch passed to DXTn [de]compression functions.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=47862
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-10-02 23:48:25 +02:00
Matteo Bruni f934ef1a14 d3dx9: Compute the correct source rect in D3DXLoadSurfaceFromFileInMemory().
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-09-27 22:43:07 +02:00
Matteo Bruni 536fce7f3b d3dx9: Don't pass the D3DLOCK_DISCARD flag when mapping a texture.
We aren't necessarily rewriting the whole surface (e.g. rect smaller than
the whole surface, color key).

Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-09-27 22:43:05 +02:00
Matteo Bruni a838e144dc d3dx9: Implement DXTn compression for offset destination rect.
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-09-27 22:43:02 +02:00
Matteo Bruni 88d8ae3839 d3dx9: Handle non-zero source rect position in D3DXLoadSurfaceFromMemory().
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=41936
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-09-27 22:43:00 +02:00
Matteo Bruni a9c158b72a d3dx9: Move the source rect alignment check into the condition for simple copy.
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-09-27 22:42:57 +02:00
Matteo Bruni 376182062f d3dx9: Handle compressed surfaces in D3DXLoadSurfaceFromMemory.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=24983
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-09-26 21:04:39 +02:00
Matteo Bruni 1f9243c757 d3dx9: Add traces to filtering functions.
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-09-26 21:03:26 +02:00
Matteo Bruni e371085aaf d3dx9: Relax a block alignment check.
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-09-24 22:41:55 +02:00
Matteo Bruni b744a309ac d3dx9: Simplify unsupported format check.
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-09-24 22:41:50 +02:00
Matteo Bruni eadc7b3128 d3dx9: Get rid of unused unlock_surface() argument.
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-08-05 21:22:47 +02:00
Paul Gofman 378204527e d3dx9: Pass rectangle to {lock|unlock}_surface().
This fixes regressions introduced by commits
65956ae50a, 092c14b9d8.
Surface source or destination rectangles were left behind.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=47546
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-08-05 21:22:36 +02:00
Alexandre Julliard 9fb5745a79 d3dx9: Build with msvcrt.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-30 20:20:09 +02:00
Matteo Bruni 8bed853c43 d3dx9: Fix argument type in convert_dib_to_bmp().
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-04-04 17:24:14 +02:00
Nikolay Sivov 77c3761ad4 d3dx9: Use wincodecs directly without initializing COM system.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-01-28 22:22:37 +01:00
Paul Gofman 65956ae50a d3dx9: Use {lock|unlock}_surface() in D3DXLoadSurfaceFromMemory().
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-01-23 16:31:46 +01:00
Paul Gofman 092c14b9d8 d3dx9: Use temporary surface in D3DXSaveSurfaceToFileInMemory() for unmappable textures.
Fixes a regression triggered by commit
949dbbd31f.

Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-01-23 16:31:43 +01:00
Paul Gofman ce09011434 d3dx9: Do not ignore surface map failure in D3DXSaveSurfaceToFileInMemory().
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-01-23 16:31:41 +01:00
Paul Gofman 4e44d74afb d3dx9: Use temporary surface in D3DXFillTexture() for unmappable textures.
Fixes a regression triggered by commit 949dbbd31f.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=46453
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-01-23 16:31:31 +01:00
Paul Gofman 33be8439fc d3dx9: Factor out {lock|unlock}_surface() functions.
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-01-23 16:31:28 +01:00
Henri Verbeet 9ff5aae4c8 d3dx9: Try to use IDirect3DDevice9_StretchRect() in D3DXLoadSurfaceFromSurface().
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-21 17:00:50 +01:00
Henri Verbeet 6c7c777f8d d3dx9: Use intermediate surfaces for loading from unmappable source surfaces in D3DXLoadSurfaceFromSurface().
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-21 17:00:47 +01:00
Henri Verbeet 9ab14dff87 d3dx9: Use a staging texture to update unmappable surfaces in D3DXLoadSurfaceFromMemory().
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-19 22:42:41 +01:00
Paul Gofman 126d3b703b d3dx9: Add FIXME for unlockable source surface in D3DXLoadSurfaceFromSurface().
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-16 16:32:59 +01:00
Michael Stefaniuc f46c96332b d3dx9: Use the available ARRAY_SIZE() macro.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-21 15:31:29 +01:00
Matteo Bruni 84a290c12b d3dx9: Don't forbid supported format conversions.
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-01-30 21:38:49 +01:00
Matteo Bruni 4d1192ad89 d3dx9: Cleanup header includes.
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-15 14:12:29 +09:00
Christian Costa d2307b1ffc d3dx9: Improve generated DDS file header.
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>
2016-01-08 21:37:32 +09:00
Matteo Bruni d71970f658 d3dx9: Don't take the fastpath when converting between texture formats of different type.
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-30 23:16:49 +09:00
Józef Kucia ece3af7855 d3dx9: Use D3DFMT constants instead of MAKEFOURCC codes. 2015-08-25 16:57:55 +09:00
Józef Kucia 853be6e1d8 d3dx9: Fix miplevels handling for DDS file format. 2015-08-25 16:57:55 +09:00
Józef Kucia ba53012fcf d3dx9: Fix typo in DDS_WIDTH define. 2015-08-25 16:57:55 +09:00
Andrey Gusev 07630a9eae d3dx9_36: Assorted spelling and typos fixes. 2015-03-31 00:04:42 +09:00
Matteo Bruni fb9c01f1dc d3dx9: Handle GUID_WICPixelFormat8bppGray format. 2014-11-11 14:21:00 +09:00
Matteo Bruni 807c01727c d3dx9: Avoid reading outside of the allocated surface memory (Valgrind). 2014-08-27 19:23:06 +02:00
Frédéric Delanoy 95ae71f3ab Assorted spelling/grammar fixes. 2014-07-01 13:09:13 +02:00
Matteo Bruni 596557a57a d3dx9: Support skipping mip levels in D3DXCreateTextureFromFileInMemoryEx. 2014-03-05 19:18:17 +01:00
Matteo Bruni df3c573f63 d3dx9: Allow loading DDS volume textures into 2D textures. 2014-03-03 17:53:53 +01:00
Matteo Bruni 8226a187d6 d3dx9: Don't call CoUninitialize if CoInitializeEx failed. 2014-02-25 14:18:07 -06:00
Matteo Bruni fa8a0dc7f6 d3dx9: Allow loading float "FOURCC" DDS files. 2014-02-20 13:25:29 +01:00
Matteo Bruni 950c40b117 d3dx9: Handle pixel formats larger than 32 bits in surface loading / filtering functions. 2014-02-17 20:16:24 +01:00
Matteo Bruni ac5664c879 d3dx9: Trace DDS pixel format. 2014-02-17 20:16:22 +01:00
Henri Verbeet 49a3dbc453 d3dx9: Avoid CONST. 2013-09-20 11:27:49 +02:00
Henri Verbeet 75511e351c d3dx9: Avoid LPCSTR. 2013-09-02 18:02:48 +02:00
Henri Verbeet 2a24b11af5 d3dx9: Avoid LPWSTR. 2013-09-02 18:02:46 +02:00
Henri Verbeet 82710124e3 d3dx9: Avoid LPCWSTR. 2013-08-30 11:19:05 +02:00
Henri Verbeet 9595dd873e d3dx9: Simplify D3DXLoadSurfaceFromResourceW(). 2013-08-28 11:17:09 +02:00