Commit Graph

386 Commits

Author SHA1 Message Date
Matteo Bruni 514bac00cc d3dx9: Build with nameless unions.
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-18 22:10:47 +01:00
Zebediah Figura cfb1d2058f d3dx9: Implement ID3DXEffect::CloneEffect().
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=44635
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-14 21:47:00 +01:00
Zebediah Figura f170677724 d3dx9: Separate out d3dx9_effect_init_from_dxbc().
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-14 21:46:49 +01:00
Zebediah Figura 8c40c413b9 d3dx9: Do not use d3dx_effect_cleanup() in D3DXCreateEffectEx().
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-14 21:46:46 +01:00
Zebediah Figura 47351a609d d3dx9: Don't mark annotation variables as dirty.
This fixes a crash when trying to set their value.

Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-09 18:37:33 +01:00
Zebediah Figura b3b6d8c99e d3dx9: Pass the "flags" argument to D3DXFXCreateEffectEx() as compiler flags, not effect flags.
And strip D3DXFX_* creation flags from them.

Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-09 18:37:33 +01:00
Zebediah Figura b6062279b8 d3dx9: Return D3DERR_INVALIDCALL from ID3DXEffect::BeginPass() if the effect is not started.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-09 18:37:33 +01:00
Nikolay Sivov 60a3e01062 d3dx9/effect: Reset output handle for next after last technique in FindNextValidTechnique().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-17 23:09:05 +02:00
Paul Gofman aab980a162 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>
2020-03-27 21:16:12 +01:00
Paul Gofman 2b5b069dd7 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>
2020-03-25 22:30:40 +01:00
Matteo Bruni cfc533b40d 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>
2020-03-24 19:43:38 +01:00
Francois Gouget 0611e27caf d3dx9_36: Fix the spelling of a TRACE() message.
Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-28 20:45:46 +01:00
Paul Gofman e28888c9fe d3dx9: Implement d3dx_effect_ApplyParameterBlock().
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-11-20 23:03:21 +01:00
Paul Gofman 7d512a1e0e d3dx9: Implement recording parameters to parameter block.
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-11-20 23:03:21 +01:00
Paul Gofman 07562f1e39 d3dx9: Factor out free_parameter_object_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>
2019-11-18 23:18:00 +01:00
Paul Gofman 4020a38259 d3dx9: Factor out set_value() 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>
2019-11-18 23:18:00 +01:00
Paul Gofman f65e4854e3 d3dx9: Implement d3dx_effect_DeleteParameterBlock().
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-11-18 23:18:00 +01:00
Paul Gofman fd47b68448 d3dx9: Implement d3dx_effect_EndParameterBlock().
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-11-18 23:18:00 +01:00
Paul Gofman e281ba4db6 d3dx9: Implement d3dx_effect_BeginParameterBlock().
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-11-18 23:18:00 +01:00
Paul Gofman 6aced396ba d3dx9: Avoid double freeing 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>
2019-11-18 23:18:00 +01:00
Michael Stefaniuc a0a5c64bd5 d3dx9: Remove redundant NULL check before heap_free().
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-13 17:32:00 +01:00
Paul Gofman aef11864a4 d3dx9: Correctly handle NULL constant state for objects on 64 bit arch.
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-11-06 16:01:47 +01:00
Matteo Bruni 5b66442bc9 d3dx9: Turn unimplemented interface ERR into a WARN.
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-10-30 11:30:23 +01:00
Alexandre Julliard 9fb5745a79 d3dx9: Build with msvcrt.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-30 20:20:09 +02:00
Sven Baars 7dc42119b4 d3dx9: Always free samplers (Valgrind).
Signed-off-by: Sven Baars <sven.wine@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-27 20:40:46 +02:00
Sven Baars 63443f249f d3dx9: Release the full parameter name when a parameter is released (Valgrind).
Signed-off-by: Sven Baars <sven.wine@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-27 20:40:43 +02:00
Piotr Caban 5c5a8ae23f d3dx9: Don't use strcasecmp.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-04-09 19:33:41 +02:00
Michael Stefaniuc cd3e5020e4 d3dx9: Secure against unsafe iface to COM object transitions.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-22 19:53:04 +01:00
Michael Stefaniuc 3b951b77f8 d3dx9: Get rid of struct d3dx9_base_effect.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-22 19:53:02 +01:00
Michael Stefaniuc 7f16670edc d3dx9: Move flags out of struct d3dx9_base_effect.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-22 19:52:59 +01:00
Michael Stefaniuc c56906599c d3dx9: Avoid using This in d3dx_effect_Clone().
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-22 19:52:57 +01:00
Michael Stefaniuc ef974e5985 d3dx9: Merge the two pool fields of struct d3dx_effect.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-22 19:52:55 +01:00
Michael Stefaniuc 3bd0fc3d6a d3dx9: Avoid using 'This' in d3dx_effect_GetPool().
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-22 19:52:53 +01:00
Matteo Bruni 9a121f5115 d3dx9: Simplify effect init.
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-21 22:57:51 +01:00
Matteo Bruni 009279845d d3dx9: Simplify effect cleanup.
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-21 22:57:51 +01:00
Michael Stefaniuc 5fa06bbc30 d3dx9: Move techniques out of struct d3dx9_base_effect.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-21 19:32:52 +01:00
Michael Stefaniuc 4c134a66b0 d3dx9: Move parameters out of struct d3dx9_base_effect.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-21 19:32:49 +01:00
Michael Stefaniuc 9438d03127 d3dx9: Use get_version_counter_ptr() instead of open coding it.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-21 19:32:47 +01:00
Michael Stefaniuc 074e3232ee d3dx9: Move technique_count out of struct d3dx9_base_effect.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-21 19:32:45 +01:00
Michael Stefaniuc 92d2f6d994 d3dx9: Pass a struct d3dx_effect to d3dx9_create_object().
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-21 19:32:43 +01:00
Michael Stefaniuc de59a12971 d3dx9: Don't pass a struct d3dx9_base_effect to d3dx9_base_effect_init().
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-21 19:32:41 +01:00
Michael Stefaniuc baf4aaa359 d3dx9: Don't expose struct d3dx9_base_effect outside effect.c.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-19 18:31:38 +01:00
Michael Stefaniuc 09770370c0 d3dx9: Pass a struct d3dx_effect to get_parameter_element_by_name().
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-19 18:31:36 +01:00
Michael Stefaniuc 0c63453229 d3dx9: Move full_name_tmp_size out of struct d3dx9_base_effect.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-19 18:31:33 +01:00
Michael Stefaniuc 3779ff07b0 d3dx9: Move full_name_tmp out of struct d3dx9_base_effect.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-19 18:31:31 +01:00
Michael Stefaniuc adc1b5a8bc d3dx9: Move param_tree out of struct d3dx9_base_effect.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-19 18:31:28 +01:00
Matteo Bruni cffe35488d d3dx9: Avoid double free on effect initialization failure.
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-18 21:43:11 +01:00
Michael Stefaniuc 2f16d2f4ca d3dx9: Pass a struct d3dx_effect to d3dx9_base_effect_cleanup().
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-18 21:41:35 +01:00
Michael Stefaniuc 7738fec56b d3dx9: Pass a struct d3dx_effect to get_annotation_by_name().
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-18 21:41:33 +01:00
Michael Stefaniuc 62a26e1ad0 d3dx9: Pass a struct d3dx_effect to add_param_to_tree().
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-03-18 21:41:31 +01:00