Commit Graph

268 Commits

Author SHA1 Message Date
Valentin Gabriel Mitrea 970009fed7 d3dx9: Fix D3DCompile() call.
When using D3DCompile() with an fx profile, the entry point
parameter is not used. So, it should be set to NULL.

Signed-off-by: Valentin Gabriel Mitrea <mitrea.valentin@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-04-24 18:15:09 +02:00
Matteo Bruni f956200775 d3dx9: Allow passes argument to Begin() to be NULL.
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-04-18 21:26:00 +02:00
Matteo Bruni 01e278a309 d3dx9: Fix FindNextValidTechnique() when no previous technique is specified.
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-28 23:05:04 +02:00
Matteo Bruni afef57f872 d3dx9: Disentangle ID3DXEffectCompiler implementation from struct d3dx9_base_effect.
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-22 22:06:00 +01:00
Matteo Bruni c3342644e4 d3dx9: Implement FindNextValidTechnique().
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-22 22:05:56 +01:00
Matteo Bruni f5b888a708 d3dx9: Fix handling of includes in D3DXCreateEffectFromFileExW().
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-22 22:05:52 +01:00
Matteo Bruni 1bba7c5705 d3dx9: Implement ID3DXEffect::OnLostDevice().
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-21 10:14:11 +01:00
Matteo Bruni f335932a81 d3dx9: Introduce a parameter rbtree to speed up get_parameter_by_name().
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-21 10:14:06 +01:00
Sebastian Lackner 1c8c9308e7 d3dx9: Adjust ID3DXEffect interface based on DLL version.
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-14 22:39:13 +01:00
Matteo Bruni 972dc565ed d3dx9: Skip AddRef + Release if SetValue is called with the old texture.
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-14 22:38:46 +01:00
Nikolay Sivov c3f92419e8 d3dx9: Improve argument validation in CloneEffect().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-05 06:58:45 -06:00
Matteo Bruni 3a5688a795 d3dx9: Use the D3DCOMPILE_ENABLE_BACKWARDS_COMPATIBILITY flag when compiling ASCII effects.
Some manual testing shows that the behavior changed with d3dx9_37.

Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-12-08 10:16:57 +01:00
Paul Gofman 0778f1c294 d3dx9: Fix zero object_id handling in d3dx9_base_effect_get_pass_desc().
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-09-08 07:56:19 +02:00
Paul Gofman 07cc9acc9f d3dx9: Return E_FAIL from ValidateTechnique() for techniques with unsupported shaders.
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-09-08 07:56:15 +02:00
Paul Gofman 6c7c511a27 d3dx9: Do not fail effect creation if a shader cannot be created.
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-09-01 07:34:15 +02:00
Paul Gofman e06b7693d6 d3dx9: Use bitmask instead of BOOL array for light_updated.
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-08-31 20:15:32 +02:00
Paul Gofman 847f772fe1 d3dx9: Use distinct structure for top level parameters.
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-08-04 09:28:37 +02:00
Paul Gofman 3a10679b7a d3dx9: Move referenced_param definition from d3dx_parameter to d3dx_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>
2017-08-04 09:28:32 +02:00
Paul Gofman f09bf52d5d d3dx9: Return NULL for child parameter's annotation in get_parameter_by_name().
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-08-04 09:28:29 +02:00
Paul Gofman ec199c9e0e d3dx9: Remove case for annotation in get_parameter_element_by_name().
Elements or struct members can't have annotations.

Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-08-04 09:28:25 +02:00
Paul Gofman 4b11a99108 d3dx9: Support skip_constants parameter for effect.
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-07-18 20:43:34 +02:00
Paul Gofman 518b2f27cf d3dx9: Fail effect creation when parameter evaluator creation fails.
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-07-18 20:43:34 +02:00
Paul Gofman 57de7e9919 d3dx9: Factor out is_parameter_used() function.
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-07-10 22:40:58 +02:00
Paul Gofman 8f9bbdf9ad d3dx9: Support arrays of samplers.
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-07-05 20:26:27 +02:00
Paul Gofman 174ea70bf3 d3dx9: Use pass update version for detecting updated FXLC parameter.
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-05-22 13:45:48 +02:00
Paul Gofman 454a2c5c21 d3dx9: Match native out of bounds array selector index handling.
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-05-18 19:56:39 +02:00
Paul Gofman a179584844 d3dx9: Use versioned parameter updates instead of 'dirty' flags.
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-05-18 19:47:26 +02:00
Józef Kucia 1bef693767 d3dx9: Fix compilation on systems that don't support nameless unions.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-05-11 10:17:50 -05:00
Paul Gofman d1ac3b8e72 d3dx9: Support setting strings in effect.
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-05-07 16:19:31 -05:00
Paul Gofman a79da9689d d3dx9: Do not set active pass if BeginPass() failed.
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-05-07 16:19:27 -05:00
Paul Gofman b7198efd42 d3dx9: Return shader functions in d3dx9_base_effect_get_pass_desc().
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-05-05 00:19:45 +02:00
Paul Gofman 1817f63a51 d3dx9: Don't call get_parameter_by_name() from get_valid_parameter() if D3DXFX_LARGEADDRESSAWARE flag is set.
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-05-03 22:58:00 +02:00
Paul Gofman a52a2d1aab d3dx9: Store effect creation flags in struct d3dx_base_effect.
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-05-03 22:58:00 +02:00
Paul Gofman 0750e758cc d3dx9: Downgrade unknown DWORD FIXMEs() to WARN() messages.
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-28 09:15:02 +02:00
Paul Gofman f0e9dea59c d3dx9: Remove unused parameter 'effect' from d3dx9_get_param_value_ptr().
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-28 09:15:00 +02:00
Paul Gofman 6f99cf01e1 d3dx9: Support parameters sharing in effect.
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-26 20:33:58 +02:00
Paul Gofman 9043ff030e d3dx9: Reference effect pool implementation in d3dx9_base_effect structure.
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-26 20:33:51 +02:00
Paul Gofman bb52c5983d d3dx9: Factor out free_parameter_data() function.
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-25 20:53:07 +02:00
Paul Gofman 1bd3cc24af d3dx9: Fix IsParameterUsed() for the case when state references child parameter.
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-25 20:53:06 +02:00
Paul Gofman 2be74048d6 d3dx9: Reference top level parameter instead of dirty flag.
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-25 20:53:06 +02:00
Paul Gofman c30b91d382 d3dx9: Compare parameter definition instead of parameter handle in IsParameterUsed().
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-19 09:09:35 +02:00
Paul Gofman 5029c2c0fd d3dx9: Use magic number instead of parameter tables for parameter handles.
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-19 09:09:33 +02:00
Paul Gofman 2b18cd4321 d3dx9: Preserve states regardless of state manager presence.
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-10 22:12:45 +02:00
Paul Gofman d6ab655a09 d3dx9: Support effect state manager.
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-10 22:12:44 +02:00
Paul Gofman a844ce7dc4 d3dx9: Don't apply unmodified states in CommitChanges().
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-21 20:52:38 +01:00
Matteo Bruni f68de78d9e d3dx9: Override d3dx9_get_param_value_ptr() return value only on array overflow.
Incidentally this exposes a few test failures (due to not supporting
relative addressing in preshaders) previously masked by the broad
override.

Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-21 20:52:38 +01:00
Paul Gofman af4e4a9af5 d3dx9: Set dirty flag on parameter change.
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-16 10:05:24 +01:00
Matteo Bruni 901c96ef9c d3dx9: Avoid overflowing debug channel buffer when tracing ASCII effect errors.
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-03 10:54:18 +09:00
Andrey Gusev d8641197c0 d3dx9_36: Fix typos in comments.
Signed-off-by: Andrey Gusev <andrey.goosev@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-06-03 23:31:03 +09:00
Paul Gofman fe1a89d14f d3dx9: Implement IsParameterUsed function in effect.
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-05-31 11:31:26 +09:00