[PATCH v2 3/6] d3d9: Use wined3d_stateblock_get_state() in d3d9_device_GetRenderState().

Matteo Bruni matteo.mystral at gmail.com
Tue Dec 10 02:35:35 CST 2019


On Tue, Dec 10, 2019 at 9:34 AM Matteo Bruni <matteo.mystral at gmail.com> wrote:
>
> On Thu, Nov 28, 2019 at 6:54 AM Zebediah Figura <z.figura12 at gmail.com> wrote:
> >
> > Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
> > ---
> >  dlls/d3d9/device.c | 4 +++-
> >  1 file changed, 3 insertions(+), 1 deletion(-)
> >
> > diff --git a/dlls/d3d9/device.c b/dlls/d3d9/device.c
> > index 2d66c569938..51b7f4d6f59 100644
> > --- a/dlls/d3d9/device.c
> > +++ b/dlls/d3d9/device.c
> > @@ -2329,6 +2329,7 @@ static HRESULT WINAPI d3d9_device_GetRenderState(IDirect3DDevice9Ex *iface,
> >          D3DRENDERSTATETYPE state, DWORD *value)
> >  {
> >      struct d3d9_device *device = impl_from_IDirect3DDevice9Ex(iface);
> > +    const struct wined3d_stateblock_state *device_state;
> >      struct wined3d_color factor;
> >
> >      TRACE("iface %p, state %#x, value %p.\n", iface, state, value);
> > @@ -2344,7 +2345,8 @@ static HRESULT WINAPI d3d9_device_GetRenderState(IDirect3DDevice9Ex *iface,
> >      }
> >
> >      wined3d_mutex_lock();
> > -    *value = wined3d_device_get_render_state(device->wined3d_device, state);
> > +    device_state = wined3d_stateblock_get_state(device->state);
> > +    *value = device_state->rs[state];
> >      wined3d_mutex_unlock();
> >
> >      return D3D_OK;
>
> Just a couple of comments WRT potential future improvements. Obviously
> they apply to the other d3d* versions too.
>
> The state for the stateblock isn't going to change from underneath so
> it could be stored in the d3d9 device once and for all instead of
> getting it from wined3d every time it's needed. It doesn't matter a
> lot I guess (and it's certainly not urgent anyway), especially for
> those Get*() methods, but it would be one less inter-module function
> call per API call.

I guess it was just one comment, after all...



More information about the wine-devel mailing list