[PATCH v2 1/1] d3drm: Implement IDirect3DRMFrame{1/2/3}::SetSceneBackgroundImage

Zebediah Figura zfigura at codeweavers.com
Tue Jun 21 17:27:54 CDT 2022


On 6/21/22 17:12, Alistair Leslie-Hughes wrote:
> 
> 
> On 22/6/22 04:37, Zebediah Figura wrote:
>> On 6/21/22 06:53, Alistair Leslie-Hughes wrote:
>>> From: Alistair Leslie-Hughes <leslie_alistair at hotmail.com>
>>>
>>> Signed-off-by: Alistair Leslie-Hughes <leslie_alistair at hotmail.com>
>>> ---
>>>   dlls/d3drm/d3drm_private.h |  1 +
>>>   dlls/d3drm/frame.c         | 38 +++++++++++++++++++++++++++++++-------
>>>   2 files changed, 32 insertions(+), 7 deletions(-)
>>>
>>
>> In general I'm concerned about these commits adding state tracking 
>> code that's never actually used. Most notably, it means we can't test 
>> anything but the state tracking, and while there's not *likely* to be 
>> anything wrong with the state tracking as it is, it's not impossible 
>> either.
>>
>> It's also going to make it harder to implement the real workhorse 
>> methods. Once you finally get to the point where you need to implement 
>> IDirect3DRMViewport::Render() [and, although it hasn't been stated, 
>> I'm guessing you're dealing with a d3drm application that is 
>> eventually going to call it], you'll have a whole lot of state that 
>> you'll suddenly need to implement, or else basically have methods that 
>> silently return success without doing anything useful, which is not 
>> good for debugging.
> Yes, IDirect3DRMViewport::Render will be the have to be implemented at 
> some point and I understand the point your making.
> 
> For reference: Star Wars Rebellion
> 
> Currently this just crashes when starting a battle.  If I just fixed the 
> crash (have a patch for it already), then it displays a dialog for every 
> function that doesn't return success.  There is about 9 more patches to 
> stop all the scenarios, and in my opinion the crash is just as bad as 9+ 
> MessageBox's every render cycle.
> 
> My thought was to implement the infrastructure as much as possible 
> first, then take on Render. Maybe starting to implement Render next 
> might be good idea.

Sure, that kind of iteration is probably fine for local debugging, i.e. 
stub things out until you have a good idea of what all is going to be 
necessary. For upstream I think it's probably better to get to a state 
where we can properly render things, and then start implementing other 
states.

I recognize that implementing the entire workhorse parts of d3drm is 
probably a much more daunting task than filling out the state tracking. 
Accordingly please don't hesitate to reach out for assistance :-)



More information about the wine-devel mailing list